S'ha produït un error mentre es processava la plantilla.
Java method "com.educaixa.common.impl.EduCaixaCommonImpl.getDocumentMetadataInJSON(String, com.liferay.portal.kernel.theme.ThemeDisplay)" threw an exception when invoked on com.educaixa.common.impl.EduCaixaCommonImpl object "com.educaixa.common.impl.EduCaixaCommonImpl@739a84a2"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign siteMeta = UtilsService.getDo...  [in template "10154#10192#RECURSO-INTERACTIVO" at line 103, column 9]
----
1<#-- get services --> 
2<#assign LiteralsToolsServiceUtil = serviceLocator.findService("com.aqua.literals.util.LiteralsToolsService")/> 
3<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
4<#assign UtilsService = serviceLocator.findService("com.educaixa.common.service.EduCaixaCommonService")/> 
5<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
6<#assign dLFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") /> 
7<#assign valoracionesDisplay = serviceLocator.findService("com.educaixa.services.service.RatingStatsLocalService")/> 
8<#assign LiteralsToolsServiceUtil = serviceLocator.findService("com.aqua.literals.util.LiteralsToolsService")/> 
9<#assign language = themeDisplay.getLocale()/> 
10<#assign groupId = themeDisplay.getScopeGroupId()/> 
11<#assign restultsLiteral = LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.common.link.resultados") /> 
12<#assign recurso = LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.seccion.recurso") /> 
13<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()> 
14<#assign httpServletRequest = serviceContext.getRequest() /> 
15<#assign UserBookmarkLocalService = serviceLocator.findService("com.educaixa.services.service.UserBookmarkLocalService") /> 
16 
17<#-- get the content categories --> 
18<#assign article = journalArticleLocalService.getArticle(getterUtil.getLong(scopeGroupId), .vars['reserved-article-id'].data) /> 
19<#assign asset = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", article.resourcePrimKey) /> 
20 
21<#-- get the results URL and valoration value--> 
22<#assign results_url = "https://${request.serverName}/${locale.getLanguage()}${restultsLiteral}?q=" /> 
23<#assign valoracionesDisplayAverage = 0/> 
24<#if valoracionesDisplay.fetchByResourcePK(scopeGroupId,themeDisplay.getCompanyId(),article.getResourcePrimKey()) ??> 
25    <#assign valoracionesDisplayValue = valoracionesDisplay.findByResourcePK(scopeGroupId,themeDisplay.getCompanyId(),article.getResourcePrimKey()) /> 
26    <#assign valoracionesDisplayAverage = valoracionesDisplayValue.getAverageGlobalScore() /> 
27</#if> 
28 
29<#assign journalArticleId = .vars['reserved-article-id'].data/> 
30<#assign userId =themeDisplay.getUserId()/> 
31<#assign isUserBookmark = UserBookmarkLocalService.isUserBookmark(themeDisplay.getCompanyId(),userId,journalArticleId,groupId)/> 
32 
33<#-- Resource type --> 
34<#assign resourceType = LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.seccion.recurso.microsite") /> 
35<#assign imgType = "/o/educaixa-theme/images/interaccion-icon.png"> 
36 
37<#-- Escape title text --> 
38<#assign titleEscaped = "" /> 
39<#if titulo.getData()??> 
40    <#assign titleEscaped = titulo.getData()?replace('<p>','','r')/> 
41    <#assign titleEscaped = titleEscaped?replace('</p>','','r')/> 
42    <#assign titleEscaped = titleEscaped?replace('<div>','','r')/> 
43    <#assign titleEscaped = titleEscaped?replace('</div>','','r')/> 
44    <#assign titleEscaped = titleEscaped?replace('<h1>','','r')/> 
45    <#assign titleEscaped = titleEscaped?replace('</h1>','','r')/> 
46</#if> 
47 
48<#assign subtituloEscaped = "" /> 
49<#if subtitulo.getData()??> 
50    <#assign subtituloEscaped = subtitulo.getData() /> 
51    <#assign subtituloEscaped = subtituloEscaped?replace('<p>','','r')/> 
52    <#assign subtituloEscaped = subtituloEscaped?replace('</p>','','r')/> 
53</#if> 
54 
55<#-- get image alt --> 
56<#if image_alt?? && image_alt.getData()?? && image_alt.getData() != ""> 
57    <#assign altImage = image_alt.getData() /> 
58<#else> 
59    <#assign altImage = titleEscaped /> 
60</#if> 
61 
62<#-- get image banner --> 
63<#if imagenficha ?? && imagenficha.getData() ?? && imagenficha.getData() != ""> 
64    <#assign imageSrc = imagenficha.getData() /> 
65<#else>     
66    <#assign imageSrc = "/o/educaixa-theme/images/blured-lights-recursos.png" /> 
67</#if> 
68 
69<#-- get the content categories --> 
70<#assign article = journalArticleLocalService.getArticle(getterUtil.getLong(scopeGroupId), .vars['reserved-article-id'].data) /> 
71<#assign asset = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", article.resourcePrimKey) /> 
72 
73<#assign language = themeDisplay.getLocale()/> 
74<#assign nivel_educativo = []> 
75<#assign area_conocimiento = []> 
76<#assign competencias = []> 
77<#assign objectius = []> 
78 
79<#list asset.getCategories() as cur_category> 
80    <#if cur_category.vocabularyId == 10515> 
81        <#assign nivel_educativo = nivel_educativo + [cur_category.getTitle(language)]> 
82    <#elseif cur_category.vocabularyId == 6> 
83        <#assign area_conocimiento = area_conocimiento + [cur_category.getTitle(language)]> 
84    <#elseif cur_category.vocabularyId == 401> 
85        <#assign competencias = competencias + [cur_category.getTitle(language)]> 
86    <#elseif cur_category.vocabularyId == 43203> 
87        <#assign objectius = objectius + [cur_category.getTitle(language)]> 
88    </#if> 
89</#list> 
90 
91<#assign thesaurusCategories = UtilsService.getThesaurusCategories(asset) /> 
92<#assign tagsCategories = UtilsService.getTagsCategories(asset) /> 
93<#assign categories = thesaurusCategories + tagsCategories /> 
94 
95<#-- Login --> 
96<#assign is_signed_in = themeDisplay.isSignedIn()/> 
97<#assign plid = portalUtil.getPlidFromPortletId(themeDisplay.getScopeGroupId(), "EducaixaMyeducaixaLogin") /> 
98<#assign loginURL = portletURLFactory.create(httpServletRequest, "EducaixaMyeducaixaLogin", plid, "RENDER_PHASE") /> 
99${loginURL.setParameter("mvcPath", "/login_modal.jsp")} 
100${loginURL.setWindowState("POP_UP")} 
101 
102<#if docprincipal.getData()??> 
103	<#assign siteMeta = UtilsService.getDocumentMetadataInJSON(docprincipal.getData(), themeDisplay) /> 
104</#if> 
105 
106<#-- Banner section--> 
107<div class="container vertical image-view"> 
108    <div class="row"> 
109        <img src="${imageSrc}" alt="${altImage}" width="900px" height="458px" class="video-player"> 
110        <div class="box-img col-lg square"> 
111            <#if resourceType != ""> 
112                <p class="box-img-pre-rec" >${recurso} | ${resourceType} </p> 
113            </#if> 
114            <#if titulo?has_content> 
115                <h1 class="box-img-title-rec">${titleEscaped}</h1> 
116            </#if> 
117            <#if subtitulo?has_content> 
118                <p class="box-img-sub-title-rec">${subtituloEscaped}</p> 
119            </#if> 
120            <p class="box-img-categ-rec"> 
121                <#if categories?has_content> 
122                    <#list categories as category> 
123                        <#-- redirects to the results page with the tag--> 
124                        <a onClick="updateTagsCicks('${category.getTitle(locale)}');" href="${results_url}${category.getTitle(locale)}" >${category.getTitle(locale)}</a> 
125                    </#list> 
126                </#if> 
127            </p> 
128            <hr> 
129            <#if siteMeta?? && siteMeta.get(0)?? && siteMeta.get(0).url?? && siteMeta.get(0).url != ""> 
130            	<button class="card-button-purple color-caixa-purple background-white" id="myBtn" onclick="location.href='${siteMeta.get(0).url}'">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.common.link.ver")}</button> 
131           	</#if>    
132            <div class="card-actions flex"> 
133                <div class="statistics"> 
134                    <svg viewBox="0 0 36 36" class="circular-chart orange"> 
135                        <path class="circle-bg" d="M18 2.0845 
136                            a 15.9155 15.9155 0 0 1 0 31.831 
137                            a 15.9155 15.9155 0 0 1 0 -31.831"></path> 
138                        <path class="circle" stroke-dasharray="${valoracionesDisplayAverage*20}, 100" d="M18 2.0845 
139                            a 15.9155 15.9155 0 0 1 0 31.831 
140                            a 15.9155 15.9155 0 0 1 0 -31.831"></path> 
141                        <text x="18" y="22" class="percentage">${valoracionesDisplayAverage}</text> 
142                    </svg> 
143                </div> 
144                <div class="share"> 
145                    <button id="share"></button> 
146                    <div class="addthis_inline_share_toolbox tooltip"></div> 
147                </div> 
148                <div class="bookmark"> 
149					<#if is_signed_in> 
150						<#if isUserBookmark> 
151							<button id="bookmark" onClick="updateUserBookmark(${journalArticleId},false);" data-articleid="${journalArticleId}" class="bookmark bookmarked"></button>  
152						<#else> 
153							<button id="bookmark" onClick="updateUserBookmark(${journalArticleId},true);" data-articleid="${journalArticleId}" class="bookmark"></button> 
154						</#if> 
155					<#else> 
156						<button id="bookmark" onClick="event.stopPropagation();openPopup('${loginURL}','','500', '650')"></button> 
157					</#if> 
158                </div> 
159            </div> 
160        </div> 
161    </div> 
162</div> 
163 
164<#-- Categories section--> 
165<div class="container vertical info-view"> 
166    <div class="row"> 
167        <#if nivel_educativo?size != 0 > 
168        	<div class="col-lg col-xs-6 col-sm"> 
169                <h2 class="purple-title">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.seccion.ficha.nivel.educativo")}</h2><br> 
170                <ul> 
171                    <#list nivel_educativo as item> 
172                        <li class="marked">${item}</li> 
173                    </#list> 
174                </ul> 
175	        </div> 
176        </#if> 
177    	<#if area_conocimiento?size != 0 > 
178    		<div class="col-lg col-xs-6 col-sm">	 
179                <h2 class="purple-title">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.seccion.ficha.area.conocimiento")}</h2><br> 
180                <ul> 
181                    <#list area_conocimiento as item> 
182                        <li class="marked">${item}</li> 
183                    </#list> 
184                </ul> 
185	        </div> 
186        </#if> 
187        <#if area_conocimiento?size != 0 > 
188        	<div class="col-lg col-xs-6 col-sm"> 
189                <h2 class="purple-title">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.seccion.ficha.competencias")}</h2><br> 
190                <ul> 
191                    <#list competencias as item> 
192                        <li class="marked">${item}</li> 
193                    </#list> 
194                </ul> 
195	        </div> 
196        </#if> 
197    	<#if siteMeta?? && siteMeta.get(0)?? && siteMeta.get(0).idioma?has_content> 
198        	<div class="col-lg col-xs-6 col-sm"> 
199                <h2 class="purple-title">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.seccion.ficha.idoma")}</h2><br> 
200                <ul> 
201                    <#assign idioma = siteMeta.get(0).idioma?keep_after('"')?keep_before('"') /> 
202                    <li class="marked">${idioma} </li> 
203                </ul> 
204        	</div> 
205        </#if> 
206    	<#if siteMeta?? && siteMeta.get(0)?? && siteMeta.get(0).ano?has_content> 
207    		<div class="col-lg col-xs-6 col-sm"> 
208                <h2 class="purple-title">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.seccion.ficha.ano")}</h2><br> 
209                <ul> 
210                    <#assign year = siteMeta.get(0).ano /> 
211                    <li class="marked">${year} </li> 
212                </ul> 
213	        </div> 
214        </#if>                
215    </div> 
216    <hr class="line-12">  
217</div> 
218 
219<#-- Content section--> 
220<div class="container vertical info-content"> 
221    <div class="row"> 
222        <div class="col-lg-7 col-xs-12"> 
223            <#if introduccion?has_content> 
224                <h2 class="obj-rec-title"> 
225                    <b style="color: #7B2FA1;">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.seccion.recurso.descripcion")}</b> 
226                </h2> 
227                <p class="description-text-rec"> 
228                    ${introduccion.getData()} 
229                </p> 
230            </#if> 
231            <#if objetivosdidacticos?? && objetivosdidacticos.getData()?? && objetivosdidacticos.getData() != ""> 
232                <h2 class="obj-rec-title"><b>${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.seccion.recurso.objetivos")}</b></h2> 
233                <div class="description-text-rec" style="margin-top: 4%;"> 
234                    ${objetivosdidacticos.getData()} 
235                </div> 
236            </#if> 
237            <#if competenceGeneralDescription?? && competenceGeneralDescription.getData()?? && competenceGeneralDescription.getData() != ""> 
238                <h2 class="obj-rec-title"> 
239                    <b>${competenceGeneralDescription.getData()}</b> 
240                </h2> 
241                <div class="compet-rec-dropdown"> 
242                    <#-- 
243                    Por ahora no está el campo relleno. HAbilitar cuando se solicite   
244                    <li class="compet-rec-sub accordion">${competenceGeneralDescription.competenceTitle.getData()}</li>--> 
245                    <div class="compet-rec-sub-info panel">${competenceGeneralDescription.competenceTitle.competenceDesc.getData()}</div> 
246                </div> 
247            </#if> 
248            <#if materialrelacionado.getData()?has_content || linkTxt.getSiblings()?has_content || materialrelacionado.titulomaterial.getSiblings()?has_content > 
249                <div class="row"> 
250                    <h2 class="obj-rec-title">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.materials.and.downloads")}</h2> 
251                    <#if materialesTexto.getData()?has_content> 
252                        <div> 
253                            ${materialesTexto.getData()} 
254                        </div> 
255                    </#if> 
256                    <#if linkTxt.internalLink.getData()?has_content> 
257                        <#list linkTxt.getSiblings() as linkTxt> 
258                            <ul> 
259                                <li class="resource-lis"> 
260	                                <#if linkTxt.internalLink.getData()?has_content && is_signed_in> 
261	                                    <a href="${linkTxt.internalLink.getData()}"> 
262	                                <#elseif linkTxt.externalLink.getData()?has_content && is_signed_in> 
263	                                    <a href="${linkTxt.externalLink.getData()}" target="_blank"> 
264	                                <#else> 
265	                                    <a onClick="openPopup('${loginURL}','','500', '650')"> 
266	                                </#if> 
267	                                    <span>${linkTxt.getData()}</span> 
268	                                    </a> <br> 
269                                </li> 
270                            </ul> 
271                        </#list> 
272                    </#if> 
273                    <#if materialrelacionado.titulomaterial.getSiblings()?has_content> 
274                        <ul> 
275                            <#list materialrelacionado.getSiblings() as material> 
276                                <#if material.getData()?has_content> 
277                                    <#assign file = dLFileEntryLocalService.getFileEntryByUuidAndGroupId(material.getData()?keep_after_last("/")?keep_before("?"),groupId) /> 
278                                    <#if file?? && file != ""> 
279	                                    <li class="resource-lis"> 
280	                                        <#if is_signed_in> 
281	                                        	<#if material.getData()?contains("?t")> 
282													<#assign materialUrl = material.getData()[0..(material.getData()?last_index_of("/") - 1)]/> 
283			                                	<#else> 
284													<#assign materialUrl = material.getData()[0..material.getData()?length]/> 
285												</#if> 
286	                                            <a href="${material.getData()}" target="_blank" onClick="addGTMEvent('contenido', 'descarga recursos', '${materialUrl}')"> 
287	                                        <#else> 
288	                                            <a onClick="openPopup('${loginURL}','','500', '650')"> 
289	                                        </#if> 
290	                                                <span>${material.titulomaterial.getData()}</span> 
291	                                                <span> (${file.getMimeType()?keep_after_last("/")?upper_case} ${file.getSize()[0..(file.getSize()?length - 4)]}Kb)</span> 
292	                                            </a> 
293	                                            <br> 
294	                                    </li> 
295                                    </#if> 
296                                </#if> 
297                            </#list> 
298                        </ul> 
299                    </#if> 
300                </div> 
301                <#if descargable.getData()?has_content> 
302                	<div class = "row"> 
303                        <#if is_signed_in> 
304                        	<#if descargable.getData()?contains("?t")> 
305								<#assign descargableUrl = descargable.getData()[0..(descargable.getData()?last_index_of("/") - 1)]/> 
306                            <#else> 
307								<#assign descargableUrl = descargable.getData()[0..descargable.getData()?length]/> 
308							</#if> 
309                            <p class="center"><a href="${descargable.getData()}" onClick="addGTMEvent('contenido', 'descarga recursos', '${descargableUrl}')" class="link-rec">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.download.all")}</a></p> 
310                        <#else> 
311                            <p class="center"><a onClick="openPopup('${loginURL}','','500', '650')" class="link-rec">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.download.all")}</a></p> 
312                        </#if> 
313                    </div> 
314                </#if> 
315            </#if> 
316            <#if casosuso.getData()?has_content> 
317                <h2 class="obj-rec-title">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.example.use")}</h2> 
318                <p class="desc-rec">${casosuso.getData()}</p> 
319            </#if> 
320            <#if otrainfodidactica.getData()?has_content> 
321                <h2 class="obj-rec-title">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.other.didactic.info")?upper_case}</h2> 
322                <p class="desc-rec">${otrainfodidactica.getData()}</p> 
323            </#if> 
324        </div>         
325		<#-- Register content --> 
326		<#if journalArticleLocalService.fetchArticle(groupId, "CAPTACION_RECURSO") ??> 
327		<#assign register = journalArticleLocalService.getArticle(groupId, "CAPTACION_RECURSO")/>  
328			<#if register?? && register != ""> 
329	            <#assign registerContent = journalArticleLocalService.getArticleContent(register, register.DDMTemplateKey, "VIEW", themeDisplay.getLocale(), themeDisplay) />  
330	        </#if> 
331	        <#assign registerContent = journalArticleLocalService.getArticleContent(register, register.DDMTemplateKey, "VIEW", themeDisplay.getLocale(), themeDisplay) />  
332		  	<div class= "captacion-ficha"> 
333		  		${registerContent} 
334	  		</div> 
335	    </#if> 
336    </div> 
337</div> 
338 
339<script> 
340$( document ).ready(function() { 
341    initAddThis(); 
342}); 
343</script> 
0.0
Encara no hi ha cap comentari. Sigues el primer a enviar comentaris.

Valoració mitjana global sobre 5

Basada en 0 valoracions