Planificació - Aumsa - València
S'ha produït un error mentre es processava la plantilla.
The following has evaluated to null or missing:
==> curDoc.DescripcionDocumento [in template "20115#20151#6357492" at line 93, column 132]
----
Tip: It's the step after the last dot that caused this error, not those before it.
----
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: #if validator.isNotNull(curDoc.Descri... [in template "20115#20151#6357492" at line 93, column 107]
----
1<#-- Services -->
2<#assign DLFileEntryService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")>
3
4<#-- Init -->
5<#assign title=.vars["reserved-article-title"].data />
6<#assign articleId=.vars["reserved-article-id"].data />
7<#assign date=.vars["reserved-article-display-date"].data />
8<#assign smallImageUrl=.vars["reserved-article-small-image-url"].data! />
9<#assign description=.vars["reserved-article-description"].data />
10<#assign modifiedDate=.vars["reserved-article-modified-date"].data />
11<#assign curEntry = journalTool.getAssetEntryByArticleId(groupId, articleId)/>
12<#assign portletId = portletTool.getPortletId(request)/>
13<#assign isVisor = portletId?contains("JournalContentPortlet")/>
14
15<#-- dates -->
16<#assign formatDate = "EEEE, dd MMMM yyyy hh:mm:ss" />
17<#if PlanificacionFieldSet.PlanificacionFieldSetFieldSet.OcultarHora??>
18 <#if getterUtil.getBoolean(PlanificacionFieldSet.PlanificacionFieldSetFieldSet.OcultarHora.getData())>
19 <#assign formatDate = "EEEE, dd MMMM yyyy" />
20 </#if>
21</#if>
22
23<#assign dateFormatted = journalTool.getDateFormat(date, formatDate, locale, themeDisplay.getTimeZone())>
24<#assign modifiedDateFormatted = journalTool.getDateFormat(modifiedDate, formatDate, locale, themeDisplay.getTimeZone())/>
25
26<div class="template template-general-content">
27 <#assign showJournalTitle = getterUtil.getBoolean(portletTool.getPreference(request, "showAssetTitle"), false) />
28 <#if showAssetTitle?has_content && showAssetTitle>
29 <div class="portlet-title-wrapper ">
30 <div class="portlet-title h3">${title}</div>
31 </div>
32 <#else>
33 <div class="portlet-title-wrapper">
34 <div class="portlet-title h3">${title}</div>
35 </div>
36 </#if>
37
38 <#if validator.isNotNull(smallImageUrl) || validator.isNotNull(description) || validator.isNotNull(Texto.getData())>
39 <section class="row flex-row-reverse">
40 <#if validator.isNotNull(smallImageUrl)>
41 <div class="col-sm-3 col-12">
42 <a href="${smallImageUrl}" title="Imagen ${title}" class="image-wrapper image-wrapper-cover image-wrapper-style lightbox" style="background-image: url('${smallImageUrl}');">
43 <img src="${smallImageUrl}" alt="Imagen ${title}" />
44 </a>
45 </div>
46 </#if>
47 <div class="<#if validator.isNotNull(smallImageUrl)> col-sm-9 </#if> col-12">
48 <#if validator.isNotNull(description)>
49 <div class="text-abstract">${description}</div>
50 </#if>
51 <#if validator.isNotNull(Texto.data)>
52 <div class="text">${Texto.getData()}</div>
53 </#if>
54 <#if Seccion??>
55 <#if Seccion.getSiblings()?has_content>
56 <div class="section-wrapper">
57 <#list Seccion.getSiblings() as seccion>
58 <div class="section my-2 mt-2">
59 <#if validator.isNotNull(seccion.TituloSeccionTexto.getData())>
60 <h5>${seccion.TituloSeccionTexto.getData()}</h5>
61 </#if>
62 <#if validator.isNotNull(seccion.TextoSeccion.getData())>
63 <div class="text">${seccion.TextoSeccion.getData()}</div>
64 </#if>
65 </div>
66 </#list>
67 </div>
68 </#if>
69 </#if>
70 </div>
71 </section>
72 </#if>
73
74 <#if Documentos ??>
75 <#if Documentos.Documento.getSiblings()?has_content>
76 <#list Documentos.getSiblings() as doc>
77 <#assign htmlDocuments = journalTool.getHTMLDocuments(doc.Documento.getSiblings()) !/>
78 <#assign sectionTitle = languageUtil.get(locale, "documents")/>
79 <#if validator.isNotNull(htmlDocuments)>
80 <section class="documents">
81 <#if doc.TituloSeccionPersonalizado??>
82 <#if validator.isNotNull(doc.TituloSeccionPersonalizado.getData())>
83 <#assign sectionTitle = doc.TituloSeccionPersonalizado.getData()/>
84 </#if>
85 </#if>
86 <div class="h4">${sectionTitle}</div>
87 <#if doc.Documento.getSiblings()?has_content>
88 <ul class="documents list-unstyled">
89 <#list doc.Documento.getSiblings() as curDoc>
90 <#assign curDlFileEntry = dlTool.getDLFileEntryByPath(curDoc.getData()) !/>
91 <#if validator.isNotNull(curDlFileEntry)>
92 <#assign curDocSize = dlTool.getHumanFileSize(curDlFileEntry.getSize())/>
93 <li class="document-entry <#if validator.isNotNull(curDoc.DescripcionDocumento.getData())>bg-color-grey-light my-2</#if>">
94 <#if curDoc.DescripcionDocumento??>
95 <#if validator.isNotNull(curDoc.DescripcionDocumento.getData())>
96 <span class="document-description d-block">${htmlUtil.stripHtml(curDoc.DescripcionDocumento.getData())}</span>
97 </#if>
98 </#if>
99 <a href="${curDoc.getData()}" class="document document-${curDlFileEntry.getExtension()}" onclick="this.target='_blank'" data-type="${curDlFileEntry.getExtension()}" data-size="${curDocSize}">
100 <span class="title">
101 <#assign curTitle = curDlFileEntry.getTitle()/>
102 <#if validator.isNotNull(curDoc.DocumentoNombre.getData())>
103 ${curDoc.DocumentoNombre.getData()}
104 <#assign curTitle = curDoc.DocumentoNombre.getData()/>
105 <#else>
106 ${curDlFileEntry.getTitle()}
107 </#if>
108 </span>
109 <span class="meta text-uppercase">( ${curDlFileEntry.getExtension()} ${curDocSize})</span>
110
111 <#if curDoc.FechaPublicacion ??>
112 <#if validator.isNotNull(curDoc.FechaPublicacion.getData())>
113 <#assign curDocDateData = getterUtil.getString(curDoc.FechaPublicacion.data)/>
114 <#if validator.isNotNull(curDocDateData)>
115 <#assign curDocDateObj = dateUtil.parseDate("yyyy-MM-dd", curDocDateData, locale)>
116 <span class="schedulers-content-date">
117 <span class="important"> ${languageUtil.get(locale, "publish-date")}</span>: ${dateUtil.getDate(curDocDateObj, "EEEE, dd MMMM yyyy", locale)}
118 <#if validator.isNotNull(curDoc.FechaPublicacion.Hora.getData())>
119 ${curDoc.FechaPublicacion.Hora.getData()}
120 </#if>
121 </span>
122 </#if>
123 </#if>
124 </#if>
125
126 </a>
127 <#assign hasCertificado = false />
128 <#assign certTitle = "Certificado de Publicación"/>
129 <#if locale == "ca_ES">
130 <#assign certTitle = "Certificat de Publicació"/>
131 </#if>
132 <#if curDoc.EnlaceCertificado??>
133 <#if validator.isNotNull(curDoc.EnlaceCertificado.getData())>
134 <#assign hasCertificado = true />
135 <a class="document" href="${curDoc.EnlaceCertificado.getData()}" onclick="this.target='_blank'" title="${languageUtil.format(request,'go-to-x', certTitle)}" onclick="this.target='_blank'">
136 ${certTitle}
137 </a>
138 </#if>
139 </#if>
140 <#if curDoc.Certificado??>
141 <#if validator.isNotNull(curDoc.Certificado.getData()) && !hasCertificado>
142 <a class="document" href="${curDoc.Certificado.getData()}" onclick="this.target='_blank'" title="${languageUtil.format(request,'go-to-x', certTitle)}">
143 ${certTitle}
144 </a>
145 </#if>
146 </#if>
147 </li>
148 </#if>
149 </#list>
150 </ul>
151
152 </#if>
153 </section>
154 </#if>
155 </#list>
156 </#if>
157 </#if>
158
159 <#if DocumentosFolderId ??>
160 <#if DocumentosFolderId.getSiblings()?has_content>
161 <#assign sectionTitle = languageUtil.get(locale, "documents")/>
162 <#list DocumentosFolderId.getSiblings() as docFolderId>
163 <#if validator.isNotNull(docFolderId.getData())>
164 <#assign files = DLFileEntryService.getFileEntries(getterUtil.getLong(groupId), getterUtil.getLong(docFolderId.data),0,-1,-1,null)>
165
166 <#if docFolderId.DocumentosOrderByCol ?? && docFolderId.DocumentosOrderByType ??>
167
168 <#assign DocumentosOrderByCol = docFolderId.DocumentosOrderByCol.data !/>
169 <#assign DocumentosOrderByType = docFolderId.DocumentosOrderByType.data !/>
170
171 <#if DocumentosOrderByCol?has_content && DocumentosOrderByType?has_content>
172 <#assign files = dlTool.sortDLFileEntriesByFriendlyName(files, DocumentosOrderByCol, DocumentosOrderByType) />
173 </#if>
174 </#if>
175
176
177 <#if files?has_content>
178 <section class="documents">
179 <#if (docFolderId.TituloSeccion.getData())??>
180 <#if validator.isNotNull(docFolderId.TituloSeccion.getData())>
181 <#assign sectionTitle = docFolderId.TituloSeccion.getData() />
182 </#if>
183 </#if>
184 <div class="h4">${sectionTitle}</div>
185 <div class="documents-wrapper">
186 <ul class="documents list-unstyled">
187 <#list files as file>
188 <li class="document-entry">
189 <a class="document document-${file.getExtension()} download" onclick="this.target='_blank'" href="/documents/${file.groupId}/${file.uuid}" title="${file.fileName}">
190 <span class="title">${file.fileName}</span> <span class="meta">(${file.getExtension()} ${dlTool.getHumanFileSize(file.size)})</span>
191 <#if (docFolderId.MostrarFechaCreacion.getData())?? && getterUtil.getBoolean(docFolderId.MostrarFechaCreacion.getData())>
192 <span class="schedulers-content-date">
193 <span class="important"> ${languageUtil.get(locale, "create-date")}</span>: ${dateUtil.getDate(file.getCreateDate(), "EEEE, dd MMMM yyyy HH:mm:ss", locale, themeDisplay.getTimeZone())}
194 </span>
195 </#if>
196 <#if (docFolderId.MostrarFechaModificacion.getData())?? && getterUtil.getBoolean(docFolderId.MostrarFechaModificacion.getData())>
197 <span class="schedulers-content-date">
198 <span class="important"> ${languageUtil.get(locale, "modified-date")}</span>: ${dateUtil.getDate(file.getModifiedDate(), "EEEE, dd MMMM yyyy HH:mm:ss", locale, themeDisplay.getTimeZone())}
199 </span>
200 </#if>
201 </a>
202 <#if validator.isNotNull(file.getDescription())>
203 <p class="document-description my-2">${file.getDescription()}</p>
204 </#if>
205
206 </li>
207 </#list>
208 </ul>
209
210 </div>
211 </section>
212 </#if>
213 </#if>
214 </#list>
215 </#if>
216 </#if>
217
218 <#if Galeria ??>
219 <#if Galeria.Imagen ??>
220 <#assign htmlGallery = journalTool.getHTMLGallery(Galeria.Imagen.getSiblings(), "preview1000", "gallery-thumbs") />
221 <#if validator.isNotNull(htmlGallery)>
222 <section class="image-gallery">
223 <div class="h4">${languageUtil.get(locale, "image-gallery")}</div>
224 ${htmlGallery}
225 </section>
226 </#if>
227 </#if>
228 </#if>
229
230 <#if Fotografias?has_content>
231 <#if Fotografias.data!="">
232 <#assign files = DLFileEntryService.getFileEntries(getterUtil.getLong(groupId), getterUtil.getLong(Fotografias.data),0,-1,-1, null)/>
233 <#if Fotografias.FotografiasOrderByCol ?? && Fotografias.FotografiasOrderByType ??>
234
235 <#assign FotografiasOrderByCol = Fotografias.FotografiasOrderByCol.data !/>
236 <#assign FotografiasOrderByType = Fotografias.FotografiasOrderByType.data !/>
237
238 <#if FotografiasOrderByCol?has_content && FotografiasOrderByType?has_content>
239 <#assign files = dlTool.sortDLFileEntriesByFriendlyName(files, FotografiasOrderByCol, FotografiasOrderByType) />
240 </#if>
241 </#if>
242
243 <#if files?has_content>
244 <section class="image-gallery">
245 <div class="h4">${languageUtil.get(locale, "image-gallery-image")}</div>
246 <div class="gallery-wrapper gallery-thumbs">
247 <ul class="images list-unstyled list-inline">
248 <#list files as file>
249 <#if stringUtil.startsWith(file.getMimeType(), "image")>
250 <li class="image-entry">
251 <#assign thumbnail = dlTool.getThumbnailByDLFileEntry(file, "preview1000")!/>
252 <a class="image-wrapper lightbox" href="/documents/${file.groupId}/${file.uuid}" title="${file.fileName}" class="image-wrapper image-wrapper-cover image-wrapper-style lightbox" style="background-image: url('${thumbnail}');">
253 <img src="${thumbnail}" alt="${file.fileName}"/>
254 </a>
255 </li>
256 </#if>
257 </#list>
258 </ul>
259 </div>
260 </section>
261 </#if>
262 </#if>
263 </#if>
264
265 <!-- Enlaces -->
266 <#if Enlaces??>
267 <#if Enlaces.Enlace??>
268 <#if (Enlaces.Enlace.data?has_content && Enlaces.Enlace.data!="") || (Enlaces.EnlaceInterno.data?has_content && Enlaces.EnlaceInterno.data!="")>
269 <#assign htmlLinks = journalTool.getHTMLLinks(getterUtil.getLong(groupId), locale, Enlaces.Enlace.getSiblings(), Enlaces.EnlaceInterno.getSiblings()) />
270 <#if validator.isNotNull(htmlLinks) && htmlLinks?has_content && htmlLinks?contains("<a")>
271 <section class="links-wrapper">
272 <h4 class="links-title">${languageUtil.get(locale, "links")}</h4>
273 <div class="links-listed" >
274 ${htmlLinks}
275 </div>
276 </section>
277 </#if>
278 </#if>
279 </#if>
280 </#if>
281
282 <#if Planificacion?? && ((Planificacion.PlanificacionFechaModificacion?? && getterUtil.getBoolean(Planificacion.PlanificacionFechaModificacion.data)) || (Planificacion.PlanificacionFechaPublicacion?? && getterUtil.getBoolean(Planificacion.PlanificacionFechaPublicacion.data)))>
283 <div class="schedulers-content-dates text-right">
284 <#if getterUtil.getBoolean(Planificacion.PlanificacionFechaPublicacion.data)>
285 <div class="schedulers-content-date">
286 <span class="important">${languageUtil.get(locale, "publish-date")}</span>: ${dateFormatted}
287 </div>
288 </#if>
289 <#if getterUtil.getBoolean(Planificacion.PlanificacionFechaModificacion.data)>
290 <div class="schedulers-content-date">
291 <span class="important">${languageUtil.get(locale, "modified-date")}</span>: ${modifiedDateFormatted}
292 </div>
293 </#if>
294 </div>
295 </#if>
296
297 <#if isVisor>
298 <@getDeleteIcon />
299 </#if>
300
301</div>
302
303<#macro getDeleteIcon>
304
305 <#if curEntry.getUserId() == themeDisplay.getUserId() || themeDisplay.getPermissionChecker().hasPermission(groupId, "com.liferay.journal.model.JournalArticle", 0, "DELETE")>
306 <#assign params = {"javax.portlet.action": "/journal/move_to_trash", "articleId": "${articleId}", "redirect":"${themeDisplay.getURLCurrent()}"}/>
307 <#assign portletTrashURL = portletTool.createURL(request, "com_liferay_journal_web_portlet_JournalPortlet", themeDisplay.getPlid(), "ACTION_PHASE", "maximized", params) />
308 <#assign curTitle = languageUtil.format(locale, "delete", title, false) />
309
310 <#if validator.isNotNull(portletTrashURL)>
311 <@liferay_ui["icon-delete"]
312 cssClass="icon-monospaced visible-interaction d-inline mx-1"
313 icon="times-circle"
314 markupView="lexicon"
315 message=curTitle
316 showIcon=true
317 url="${portletTrashURL}"
318 />
319 </#if>
320 </#if>
321</#macro>