Publicador de contenidos

Excmo. Sr. D. Trinitario Ruiz Capdepón

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 "20115#20151#36606" at line 4, column 34]

----
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 assetLinkLocalService = servi...  [in template "20115#20151#36606" at line 4, column 1]
----
1<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
2<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
3<#assign dlFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") /> 
4<#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService") /> 
5 
6<!-- Article Data --> 
7<#assign journalArticleId = .vars['reserved-article-id'].data /> 
8<#assign resourcePK = journalArticleLocalService.getArticle(groupId, journalArticleId).getResourcePrimKey() /> 
9<#assign entryId = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", resourcePK).getEntryId() /> 
10<#assign discursosOintervenciones = assetLinkLocalService.getDirectLinks(entryId?number)/> 
11 
12<section class="mj-section"> 
13	<div class="gridContainer mj-container"> 
14		<article class="mj-article"> 
15			<div class="row"> 
16				<div class="col-sm-8"> 
17					<h2 class="mj-article__title">${customSanitizerUtil.sanitizedField(themeDisplay.getLayout(), themeDisplay.getUserId(), .vars['reserved-article-title'].data)}</h2> 
18 
19					<div class="mj-article__txt"> 
20						<#if FechaDeNacimiento.data != "" > 
21							<strong>Fecha de nacimiento: </strong>${customSanitizerUtil.sanitizedField(themeDisplay.getLayout(), themeDisplay.getUserId(), FechaDeNacimiento.getData())}<br> 
22						</#if> 
23 
24						<#if CiudadDeNacimiento.data != "" > 
25							<strong>Ciudad de nacimiento: </strong>${customSanitizerUtil.sanitizedField(themeDisplay.getLayout(), themeDisplay.getUserId(), CiudadDeNacimiento.getData())}<br> 
26						</#if> 
27 
28						<#if FechaDeDefuncionFieldSet.FechaDeDefuncion.data != "" > 
29							<strong>Defunción: </strong>${customSanitizerUtil.sanitizedField(themeDisplay.getLayout(), themeDisplay.getUserId(), FechaDeDefuncionFieldSet.FechaDeDefuncion.getData())}<br> 
30						</#if> 
31 
32						<#assign FechaDeDefuncionFieldSet_FechaNumDeDefuncion_Data = getterUtil.getString(FechaDeDefuncionFieldSet.FechaNumDeDefuncion.getData())> 
33						<#if validator.isNotNull(FechaDeDefuncionFieldSet_FechaNumDeDefuncion_Data)> 
34							<strong>Fecha de defunción: </strong>${customDate(FechaDeDefuncionFieldSet_FechaNumDeDefuncion_Data)}<br> 
35						</#if> 
36 
37						<#if CiudadDeDefuncion.data != "" > 
38							<strong>Ciudad de defunción: </strong>${customSanitizerUtil.sanitizedField(themeDisplay.getLayout(), themeDisplay.getUserId(), CiudadDeDefuncion.getData())}<br> 
39						</#if> 
40						<#if (NombramientoFieldSet.Nombramiento.getData())??> 
41							<strong>Nombramiento: </strong>${customSanitizerUtil.sanitizedField(themeDisplay.getLayout(), themeDisplay.getUserId(), NombramientoFieldSet.Nombramiento.getData())}<br> 
42						</#if> 
43 
44						<#if (CeseFieldSet.Cese.getData())??> 
45							<strong>Cese: </strong>${customSanitizerUtil.sanitizedField(themeDisplay.getLayout(), themeDisplay.getUserId(), CeseFieldSet.Cese.getData())}<br> 
46						</#if> 
47 
48						<#assign CeseFieldSet_FechaDeCese_Data = getterUtil.getString(CeseFieldSet.FechaDeCese.getData())> 
49 
50						<#if validator.isNotNull(CeseFieldSet_FechaDeCese_Data)> 
51							<strong>Fecha de cese: </strong>${customDate(CeseFieldSet_FechaDeCese_Data)}<br> 
52						</#if> 
53					</div> 
54				</div> 
55 
56				<div class="col-sm-4"> 
57					<a href="${Imagen.getData()}" target="_blank"> 
58						<#if Imagen.getData()?? && Imagen.getData() !=""> 
59							<#assign pictureAttributesKeyValue = { "class": "mj-article__fig mj-article__fig--right"} /> 
60							<#assign imgAttributesKeyValue = { "class": "mj-article__img", "alt": Imagen.getAttribute("alt") } /> 
61							<#assign imgHtml = customAmImageUtil.createAMImageByFileEntryId(Imagen.getAttribute("fileEntryId"),600,pictureAttributesKeyValue,imgAttributesKeyValue)/> 
62							${imgHtml} 
63						</#if> 
64					</a> 
65				</div> 
66			</div> 
67 
68 
69			<div class="row mj-vertical-tabs" data-function="mj-verticalTabs" id="vertical-tabs"> 
70				<div class="col-md-4"> 
71					<nav class="mj-vertical-tabs__nav"> 
72						<ul class="mj-vertical-tabs__list" id="biografia-vertical-box"> 
73 
74							<li class="mj-vertical-tabs__item"> 
75								<a href="#${htmlUtil.escapeHREF(ContextoHistorico.getName())}" title="Contexto Histórico" class="mj-vertical-tabs__link">CONTEXTO HISTÓRICO</a> 
76							</li> 
77 
78							<#if TituloDeMemoria.getData() != "" && TituloDeMemoria.Memoria.getData() != ""> 
79								<li class="mj-vertical-tabs__item"> 
80									<a href="#${htmlUtil.escapeHREF(TituloDeMemoria.getName())}" title="Memorias" class="mj-vertical-tabs__link">MEMORIAS</a> 
81								</li> 
82							</#if> 
83 
84							<li class="mj-vertical-tabs__item" id="biografia-discursos"> 
85								<a href="#discursos" title="Discursos" class="mj-vertical-tabs__link">DISCURSOS E INTERVENCIONES</a> 
86							</li> 
87 
88						</ul> 
89					</nav> 
90				</div> 
91 
92				<div class="col-md-8"> 
93					<div class="mj-vertical-box__item" id="${ContextoHistorico.getName()}" data-function="mj-verticalBox"> 
94						<h3 class="mj-vertical-box__txt">Contexto Histórico ${.vars['reserved-article-title'].data}</h3> 
95						<div class="mj-article__txt"> 
96							${customSanitizerUtil.sanitizedField(themeDisplay.getLayout(), themeDisplay.getUserId(), ContextoHistorico.getData())} 
97						</div> 
98					</div> 
99 
100					<div class="mj-vertical-box" id="${TituloDeMemoria.getName()}" data-function="mj-verticalBox"> 
101						<#if TituloDeMemoria.getSiblings()?has_content > 
102							<#list TituloDeMemoria.getSiblings() as cur_TituloDeMemoria> 
103								<#if cur_TituloDeMemoria.getData() != "" && cur_TituloDeMemoria.Memoria.getData() != "" > 
104									<#assign uuid = jsonFactoryUtil.createJSONObject(cur_TituloDeMemoria.Memoria.data).getString("uuid") /> 
105									<#if dlFileEntryLocalService.fetchDLFileEntryByUuidAndGroupId(uuid,scopeGroupId)?? > 
106										<#assign fileEntry = dlFileEntryLocalService.fetchDLFileEntryByUuidAndGroupId(uuid,scopeGroupId) /> 
107										<div class="row mj-vertical-box__item"> 
108											<p class="mj-vertical-box__txt col-xs-12 col-sm-8">${customSanitizerUtil.sanitizedField(themeDisplay.getLayout(), themeDisplay.getUserId(), cur_TituloDeMemoria.getData())}</p> 
109											<#if fileEntry.description != "" > 
110												<p class="mj-vertical-box__txt col-xs-12 col-sm-8"> 
111													<a href="${fileEntry.description}" target="_blank">Versión navegable</a> 
112												</p> 
113											</#if> 
114											<div class="col-xs-12 col-sm-4"> 
115												<a href="${htmlUtil.escapeHREF(cur_TituloDeMemoria.Memoria.getData())}" class="mj-vertical-box__link" title="Descargar" target="_blank">Descargar</a> 
116											</div> 
117										</div> 
118									</#if> 
119								</#if> 
120							</#list> 
121						</#if> 
122					</div> 
123 
124					<div class="mj-vertical-box" id="discursos" data-function="mj-verticalBox"> 
125                        <div id="trayser-list"> 
126                            <ul class="sorteableList"> 
127 
128                                <#list discursosOintervenciones as doc> 
129                                    <#assign discursoEntry = assetEntryLocalService.fetchEntry(doc.getEntryId2())/> 
130                                    <#assign discursoArticle = journalArticleLocalService.fetchLatestArticle(discursoEntry.getClassPK())/> 
131                                    <li class="list__item"> 
132                                        <@liferay_journal["journal-article"] 
133                                            articleId=discursoArticle.articleId 
134                                            ddmTemplateKey="TMP_DISCURSOS_O_INTERVENCIONES" 
135                                            groupId=discursoArticle.groupId?number 
136                                        /> 
137                                    </li> 
138                                </#list> 
139                            </ul> 
140                            <#if (discursosOintervenciones?size > 10) > 
141                                <div class="paginator taglib-page-iterator"> 
142 
143                                    <small class="search-results"> 
144                                        <@liferay.language key="pagination.results"/> 
145                                    </small> 
146                                    <div class="lfr-pagination-buttons"> 
147                                        <button class="page-item" data-page="prev"><span class="page-item__text"><@liferay.language key="search.previous"/></span></button> 
148                                        <button class="page-item" data-page="next"><span class="page-item__text"><@liferay.language key="search.next"/></span></button> 
149                                    </div> 
150                                </div> 
151                            </#if> 
152                        </div> 
153					</div> 
154				</div> 
155			</div> 
156		</article> 
157	</div> 
158</section> 
159 
160 
161<#function customDate dateString > 
162	<#assign customDateFormat = ""> 
163 
164	<#if validator.isNotNull(dateString)> 
165		<#assign dateObj = dateUtil.parseDate("yyyy-MM-dd", dateString, locale) /> 
166		<#assign customDateObj = dateUtil.getDate(dateObj, "dd'/'MM'/'yyyy", locale) /> 
167		<#assign customDateFormat = customDateObj /> 
168	<#else> 
169		<#assign customDateFormat = ""> 
170	</#if> 
171 
172  <#return customDateFormat > 
173</#function>