Novedades
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing: ==> serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService") [in template "10901#10934#RECOMANACIO_DETALL_GENIUS" at line 35, column 41] ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign assetLinkSvc = serviceLocator... [in template "10901#10934#RECOMANACIO_DETALL_GENIUS" at line 35, column 17] ----
1<#assign articleId=.vars["reserved-article-id"].data>
2<#assign articleUrlTitle=.vars["reserved-article-url-title"].data>
3<#assign articleModifiedDate=.vars["reserved-article-modified-date"].data>
4<#assign imgSrc="">
5
6<script type="text/javascript">
7 function saveEntryAction(formName){
8 document.getElementById(formName).articleId.value=${articleId};
9 document.getElementById(formName).groupId.value=${getterUtil.getLong(groupId)};
10 document.getElementById(formName).submit();
11 }
12</script>
13
14<div class="recommendationDetail">
15
16 <div class="recommendationData">
17
18 <div class="recommendationValoraciones">
19 <#assign assetEntrySvc = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")>
20 <#assign articleSvc = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
21 <#assign classNameSvc = serviceLocator.findService("com.liferay.portal.kernel.service.ClassNameLocalService")>
22 <#assign articleClass = classNameSvc.getClassName("com.liferay.journal.model.JournalArticle")>
23
24 <#assign articleId = articleId>
25
26 <#assign groupIdLong = getterUtil.getLong(groupId)>
27
28 <#assign article = articleSvc.getArticle(groupIdLong, articleId)>
29
30 <#assign assetEntry = assetEntrySvc.fetchEntry(articleClass.getClassName(), article.getResourcePrimKey())>
31
32 <#assign assetEntryId = assetEntry.getEntryId()>
33 <#assign assetEntryIdLong = getterUtil.getLong(assetEntryId)>
34
35 <#assign assetLinkSvc = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService")>
36 <#assign assetLinks = assetLinkSvc.getDirectLinks(assetEntryIdLong)>
37
38 <#list assetLinks as assetLink>
39 <#if (getterUtil.getLong(assetLink.getEntryId1()) == assetEntryIdLong)>
40 <#assign assetLinkEntry = assetEntrySvc.getEntry(getterUtil.getLong(assetLink.getEntryId2()))>
41 <#else>
42 <#assign assetLinkEntry = assetEntrySvc.getEntry($getterUtil.getLong($assetLink.getEntryId1()))>
43 </#if>
44
45 <#assign classPK = assetLinkEntry.getClassPK()>
46
47 <#assign relatedArticle = articleSvc.getLatestArticle(getterUtil.getLong(classPK))>
48
49 <#if (relatedArticle!="")>
50
51 <#assign relatedStructureId = relatedArticle.getDDMStructureKey()>
52
53 <#if (relatedStructureId == "DOCUMENT_RECOMANAT" )>
54
55 <#assign relatedArticleTemplateId = "RECOMANACIÓ_" + relatedStructureId>
56
57 <#else>
58
59 <#assign relatedArticleTemplateId = "RECOMANACIÓ_ALTRE">
60
61 </#if>
62
63 <#assign languageId = localeUtil.toLanguageId(locale)>
64
65 <#if ( image.getData() != "" )>
66 <#assign imgSrc = image.getData()>
67 <#elseif (image.urlExterna.getData() != "")>
68 <#assign imgSrc= image.urlExterna.getData()>
69 </#if>
70
71 ${journalContentUtil.getContent( relatedArticle.groupId, relatedArticle.articleId, relatedArticleTemplateId, viewMode, languageId, themeDisplay)}
72
73 <#else>
74
75 <p style="display:none">No se ha recuperado ningún artículo con el id [${articleConnection.secondaryId}]</p>
76
77 </#if>
78 </#list>
79
80 <#assign idUsuario = getterUtil.getLong(themeDisplay.getUser().getUserId())>
81 <#if (idUsuario gt 0)>
82 <#assign userService = serviceLocator.findService("com.liferay.portal.kernel.service.UserLocalService")>
83 <#assign user = userService.getUserById(themeDisplay.getUser().getUserId())>
84 </#if>
85
86 </div> <!--## .recommendationValoraciones-->
87
88 <div class="valoraciones">
89
90
91
92 <div class="a2a_kit a2a_kit_size_32 a2a_default_style" data-a2a-url="${themeDisplay.getPortalURL()}${themeDisplay.getURLCurrent()}" data-a2a-title="$titol.getData()" style="background-color: #e6e6e6;display: inline-block;" data-a2a-icon-color="#e6e6e6,#000000">
93<!-- AddToAny BEGIN -->
94<div class="a2a_kit a2a_kit_size_32 a2a_default_style">
95<a class="a2a_dd" href="https://www.addtoany.com/share"></a>
96<a class="a2a_button_email"></a>
97<a class="a2a_button_print"></a>
98</div>
99
100<script>
101var a2a_config = a2a_config || {};
102a2a_config.onclick = false;
103a2a_config.locale = "es";
104
105</script>
106
107<script async src="https://static.addtoany.com/menu/page.js"></script></div>
108
109 <#if (validator.isNotNull(user) && !user.isDefaultUser()) >
110 <form name="fmGuardarRecomendacion${articleId}" action="" method="post">
111
112 <input type="button" name="save" value="[Guardar]" onclick="javascript:saveEntryAction("fmGuardarRecomendacion${articleId}");"/>
113
114 </form>
115 </#if>
116
117 </div> <!--## .valoraciones-->
118
119
120 </div> <!--## .recomendationData-->
121
122 <div class="recomanacio_detall">
123
124 ${recomendationText.getData()}
125
126 </div>
127
128 <#if (article!="")>
129
130 <#assign dataMod=article.getModifiedDate()>
131 <span class="modificationDate">${dataMod?string["dd/MM/yyyy"]}</span>
132
133 </#if>
134
135</div> <!--## .recomendationDetail-->