Er trad een fout op tijdens de verwerking van de sjabloon.
The following has evaluated to null or missing: ==> cabecera [in template "1369164#1369202#1381220" at line 62, column 79] ---- Tip: If the failing expression is known to be 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: ${cabecera.imagenFondoCabecera.getDat... [in template "1369164#1369202#1381220" at line 62, column 77] ----
1<#-- SERVICIOS -->
2<#assign DDLRecordLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.BaseLocalService")>
3<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")>
4<#-- <#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext() /> -->
5
6<#assign urlEncoder = staticUtil["java.net.URLEncoder"]>
7
8<#-- servicios related asset subhome -->
9<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")>
10<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
11<#assign journalArticleResourceLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleResourceLocalService")>
12
13
14<#-- VARIABLES -->
15<#assign articleId = .vars['reserved-article-id'].data >
16<#if request?has_content>
17 <#assign portletNamespace = request['theme-display']['portlet-display']['id'] + '_' >
18 <#assign completeCurrentUrl = urlEncoder.encode((request["attributes"]["CURRENT_COMPLETE_URL"])?string?split("?")[0]?string, "UTF-8")>
19<#else>
20 <#assign portletNamespace = articleId + '_'>
21 <#assign completeCurrentUrl = 'http://web.bizkaia.eus'>
22</#if>
23
24<#assign articleTitle = .vars['reserved-article-title'].data >
25<#assign encodedTitle = urlEncoder.encode(articleTitle, "UTF-8")>
26
27<#-- <#assign themeDisplay = serviceContext.getThemeDisplay() /> -->
28<#assign layout = themeDisplay.getLayout() />
29
30<#-- obtener subhome enlazada como related assets -->
31<#assign journalArticleClassName = "com.liferay.journal.model.JournalArticle">
32
33<#assign introSubhomeStructureId = themeDisplay.getThemeSetting("structure-introsubhome-id") >
34
35<#assign reportajeArticle = journalArticleLocalService.getArticle(groupId, articleId) >
36<#assign reportajeEntry = assetEntryLocalService.getEntry(journalArticleClassName, reportajeArticle.getResourcePrimKey()) >
37
38<#assign assetEntryQuery = getAssetEntryQuery(reportajeEntry.getClassNameId(), getterUtil.getLong(introSubhomeStructureId), reportajeEntry.getEntryId(), "publishDate", "ASC")>
39<#assign entries = assetEntryLocalService.getEntries(assetEntryQuery)>
40
41<#-- recoger título, entradilla y color del contenido subhome relacionado-->
42<#assign colorSubhome ="#00e78d">
43<#assign tituloSubhome = "">
44<#assign entradillaSubhome ="">
45
46<#if 1 == entries?size>
47 <#list entries as e>
48 <#assign journalArticleResource = journalArticleResourceLocalService.fetchJournalArticleResource(getterUtil.getLong(e.getClassPK())) >
49 <#assign renderer = e.getAssetRenderer()>
50 <#assign subhomeArticle = renderer.getArticle() >
51 <#assign document = saxReaderUtil.read(subhomeArticle.getContentByLocale(locale)) >
52 <#assign rootElement = document.getRootElement() >
53 <#assign tituloSubhome = saxReaderUtil.createXPath("dynamic-element[@name='titulo']/dynamic-content").selectSingleNode(rootElement).getStringValue() >
54 <#assign entradillaSubhome = saxReaderUtil.createXPath("dynamic-element[@name='entradilla']/dynamic-content").selectSingleNode(rootElement).getStringValue() >
55 <#assign colorSubhome = saxReaderUtil.createXPath("dynamic-element[@name='color']/dynamic-content").selectSingleNode(rootElement).getStringValue() >
56 </#list>
57 <#else>
58</#if>
59
60<div class="top-reportaje">
61 <div class="container_fluid reportaje">
62 <div class="top-reportaje-img" style="background-image:url('${cabecera.imagenFondoCabecera.getData()}');">
63 <#-- <img src="${cabecera.imagenFondoCabecera.getData()}" alt=""> -->
64 </div>
65 <div class="bipo_overlay"></div>
66 <div class="top-reportaje-fondo-oscuro">
67 <div class="bipo_overlay"></div>
68 <div class="container">
69 <div class="row">
70 <div class="col-md-11 col-md-offset-1">
71 <hr class="cuadrado bgcolor">
72 </div>
73 </div>
74 </div>
75 </div>
76 <div class="reportaje-top-flecha">
77 <p><a href="#breadcrumb" id="flecha-arriba"><span class="iytuicon icon-skip-Video"></span> <span class="sr-only"><@liferay.language key="iytu.irContenido" /></span></a></p>
78 </div>
79 <div class="top-reportaje-texto">
80 <div class="container">
81 <div class="row">
82 <div class="col-sm-12 col-sm-offset-0 col-md-11 col-md-offset-1">
83 <div class="top-reportaje-titulo">
84 <h1>${articleTitle}</h1>
85 </div>
86 <div class="top-reportaje-entradilla">
87 <p class="subtitulo">${cabecera.entradilla.getData()}</p>
88 </div>
89 <#assign existeColumna2 = cabecera.introduccion2?? && cabecera.introduccion2.data?? && !stringUtil.equalsIgnoreCase("", cabecera.introduccion2.data) />
90 <div class="${existeColumna2?string('row', '')} top-reportaje-introduccion">
91 <#if existeColumna2 >
92 <div class="col-sm-6 col-md-6">
93 </#if>
94 ${appendTag(cabecera.introduccion.data)}
95 <#if existeColumna2 >
96 </div>
97 <div class="col-sm-6 col-md-6">
98 ${appendTag(cabecera.introduccion2.data)}
99 </div>
100 </#if>
101 </div>
102
103
104 <div class="top-reportaje-mapa">
105 <#if !validator.equals("", cabecera.imagenSuperpuestaCabecera.data) >
106 <span class="top-reportaje-mapa-img"><img src="${cabecera.imagenSuperpuestaCabecera.getData()}" class="top-reportaje-mapa-img" alt=""></span>
107 </#if>
108 <div class="top-reportaje-mapa-texto">
109 <#if !validator.equals("", tituloSubhome?string) >
110 <h2>${tituloSubhome}</h2>
111 </#if>
112 <#if !validator.equals("", entradillaSubhome?string) >
113 <p>${entradillaSubhome}</p>
114 </#if>
115 </div>
116 </div>
117
118 </div>
119 </div>
120 </div>
121 <div class="clearfix"></div>
122 </div>
123
124 </div>
125</div>
126
127<script>
128$( document ).ready(function() {
129
130 $('.reportaje-top-flecha a').click(function(e) {
131 e.preventDefault();
132 var $target = $(this.hash);
133 var destino = this.hash;
134 $target = $target.length && $target || $(this.hash);
135 if ($target.length) {
136 var targetOffset = $target.offset().top;
137 var topSpace = $('#heading').height();
138 targetOffset = targetOffset - topSpace;
139 $('html,body').animate({scrollTop: targetOffset}, 1500);
140 }
141
142 });
143
144});
145</script>
146
147<#function getAssetEntryQuery classNameId structureId linkedAssetEntryId order orderType>
148 <#assign assetEntryQuery = objectUtil("com.liferay.asset.kernel.service.persistence.AssetEntryQuery") >
149
150 <#assign classNameIds = [classNameId] >
151 ${assetEntryQuery.setClassNameIds(classNameIds)}
152
153 <#if !validator.equals("", structureId?string) >
154 <#assign classTypeIds = [structureId] >
155 ${assetEntryQuery.setClassTypeIds(classTypeIds)}
156
157 <#if !validator.equals("", order) >
158 ${assetEntryQuery.setOrderByCol1(order)}
159 ${assetEntryQuery.setOrderByType1(orderType)}
160 </#if>
161 </#if>
162
163 <#if !validator.equals("0", linkedAssetEntryId?string) >
164 ${assetEntryQuery.setLinkedAssetEntryId(linkedAssetEntryId)}
165 </#if>
166
167 <#return assetEntryQuery >
168</#function>
169<#function appendTag(element) >
170 <#if !(element?starts_with("<p>")||element?starts_with("<ul>")||element?starts_with("<ol>")||element?starts_with("<table>"))>
171 <#assign corrected = "<p>" + element >
172 <#else>
173 <#assign corrected = element >
174 </#if>
175
176 <#if !(element?ends_with("</p>")||element?ends_with("</ul>")||element?ends_with("</ol>")||element?ends_with("</table>"))>
177 <#assign corrected = corrected + "</p>">
178 </#if>
179
180 <#return corrected>
181</#function>