Directorio
Se ha producido un error al procesar la plantilla.
Java method "com.sun.proxy.$Proxy469.getLatestArticle(long)" threw an exception when invoked on com.sun.proxy.$Proxy469 object "com.liferay.journal.service.impl.JournalArticleLocalServiceImpl@4b26b383"; see cause exception in the Java stack trace. ---- FTL stack trace ("~" means nesting-related): - Failed at: journalArticle = journalArticleLocalS... [in template "269107#269141#56432" at line 90, column 75] - Reached through: #assign-container [in template "269107#269141#56432" at line 90, column 66] ----
1<#assign dlFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")
2 journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")
3 SAXReaderUtil = staticUtil["com.liferay.portal.kernel.xml.SAXReaderUtil"]
4 journalContentSearchLocalService = serviceLocator.findService("com.liferay.journal.service.JournalContentSearchLocalService")
5 layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")
6/>
7
8
9<#if ! themeDisplay ? has_content>
10 <#assign liferay_theme = PortletJspTagLibs["/META-INF/liferay-theme.tld"] />
11 <@liferay_theme["defineObjects"] />
12</#if>
13
14<div class="contenedor-interior">
15 <h2>${titulo.getData()}</h2>
16
17 <div class="plantilla-detalle-contenido plantilla-categorias">
18 <#if resumen.getData()?? && resumen.getData() != "">
19 <div class="summary">${resumen.getData()}</div>
20 </#if>
21
22 <div class="row">
23 <#if imagen.getData()?? && imagen.getData() != "">
24 <div class="image col-md-2 row-image">
25 <img data-fileentryid="${imagen.getAttribute("fileEntryId")}" alt="${imagen.getAttribute("alt")}" src="${imagen.getData()}" />
26 </div>
27 <div class="contenido-article col-md-10">
28 <#else>
29 <div class="contenido-article col-md-12">
30 </#if>
31 <#if descripcion.getData()?? && descripcion.getData() != "">
32 <div class="description">
33 ${descripcion.getData()}
34 </div>
35 </#if>
36
37 <#if (documentosRelacionados?has_content && documentosRelacionados.getSiblings()?has_content && documentosRelacionados.getSiblings()[0].documento.getData()!="" )>
38 <div class="contenido-article documentacion">
39 <p class="subtitulo"><@liferay.language key="iam.article.documentacion" /></p>
40 <ul>
41 <#list documentosRelacionados.getSiblings() as cur_documentoRelacionado>
42 <#if cur_documentoRelacionado.documento.getData()??>
43
44 <#assign fileEntryUrl = cur_documentoRelacionado.documento.getData()
45 fileUuidPosition = (fileEntryUrl?last_index_of("/")) + 1
46 fileEntryUrlLength = (fileEntryUrl?length) - 1
47 fileUuid = fileEntryUrl[fileUuidPosition..fileEntryUrlLength]
48 fileUuidPosition2 = (fileUuid ?last_index_of("?")) -1
49 />
50
51 <#if (fileUuidPosition2??) && (fileUuidPosition2!=-2)>
52 <#assign fileUuid2 = fileUuid[0..fileUuidPosition2]
53 fileEntry = dlFileEntryLocalService.getFileEntryByUuidAndGroupId(fileUuid2,groupId)
54 />
55 <#else>
56 <#assign fileUuid = fileEntryUrl[fileUuidPosition..fileEntryUrlLength]
57 fileEntry = dlFileEntryLocalService.getFileEntryByUuidAndGroupId(fileUuid,groupId)
58 />
59 </#if>
60
61 <#assign nombreFichero = fileEntry.getTitle() />
62 <#if (cur_documentoRelacionado.textoAlternativo.getData()?? && cur_documentoRelacionado.textoAlternativo.getData() != "")>
63 <#assign nombreFichero = cur_documentoRelacionado.textoAlternativo.getData() />
64 </#if>
65
66 <li><a title="${nombreFichero}. <@liferay.language key="iam.general.external-link" />"
67 href="${fileEntryUrl}" class="${fileEntry.getExtension()}" target="_blank">
68 ${nombreFichero}
69 </a></li>
70 </#if>
71 </#list>
72 </ul>
73 </div>
74 </#if>
75
76
77 <#if contenidosRelacionados?has_content && contenidosRelacionados.getSiblings()?has_content && contenidosRelacionados.getSiblings()[0].getData()!="">
78 <h3><@liferay.language key="iam.article.mas-contenidos" /> ${titulo.getData()}</h3>
79 <div class="row col-md-12 categorias-asociadas">
80 <#list contenidosRelacionados.getSiblings() as cur_contenidosRelacionados>
81 <#if cur_contenidosRelacionados.getData() ? has_content>
82 <#assign curContenidoId= cur_contenidosRelacionados.getData()?replace("\"classPK\":","")
83 curContenidoId= curContenidoId?replace("\"className\":\"com.liferay.journal.model.JournalArticle\"","")
84 curContenidoId= curContenidoId?replace("\"","")
85 curContenidoId= curContenidoId?replace(",","")
86 curContenidoId= curContenidoId?replace("{","")
87 curContenidoId= curContenidoId?replace("}","")
88 />
89
90 <#assign journalArticle = journalArticleLocalService.getLatestArticle(curContenidoId?number)
91 document = SAXReaderUtil.read(journalArticle.getContentByLocale(locale))
92 titulo = ""
93 resumen=""
94
95 />
96
97 <#if document.selectSingleNode("/root/dynamic-element[@name='titulo']/dynamic-content") ? has_content>
98 <#assign tituloNode = document.selectSingleNode("/root/dynamic-element[@name='titulo']/dynamic-content")
99 titulo = tituloNode.getText()
100 />
101 </#if>
102 <#if document.selectSingleNode("/root/dynamic-element[@name='resumen']/dynamic-content") ? has_content>
103 <#assign resumenNode = document.selectSingleNode("/root/dynamic-element[@name='resumen']/dynamic-content")
104 resumen = resumenNode.getText()
105 />
106 </#if>
107
108 <div class="col-md-6 articulo-relacionado">
109 <h4 class="title">${titulo}</h4>
110 <div class="summary">
111 ${resumen}
112 </div>
113 <div class="link-more"><a class="more-information" href="<@getURLViewInContext theArticleId=journalArticle.getArticleId() />"><@liferay.language key="iam.general.more-info" /></a></div>
114 </div>
115 </#if>
116 </#list>
117 </div>
118 </#if>
119 </div>
120 </div>
121 </div>
122</div>
123
124<#macro getURLViewInContext theArticleId>
125 <#assign hitLayoutIds = journalContentSearchLocalService.getLayoutIds(groupId, false, theArticleId) />
126 <#if hitLayoutIds?has_content>
127 <#list hitLayoutIds as hitLayoutId>
128 <#assign hitLayout = layoutLocalService.getLayout(groupId, false, hitLayoutId) />
129 ${portalUtil.getLayoutURL(hitLayout, themeDisplay)}
130 <#break>
131 </#list>
132 </#if>
133</#macro>