Produciuse un erro ao procesar o modelo.
Expression Enlaces.getChild("Target_url") is undefined on line 72, column 67 in 355648#355686#4472734.
1<#-- Evitar request undefined al procesar la plantilla para obtener descripcion -->
2<#if .vars['request']?has_content>
3 <#assign GroupLocalService = serviceLocator.findService("com.liferay.portal.service.GroupLocalService")>
4 <#assign LayoutLocalService = serviceLocator.findService("com.liferay.portal.service.LayoutLocalService")/>
5 <#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.portlet.journal.service.JournalArticleLocalService")/>
6 <#assign AssetCategoryLocalService = serviceLocator.findService("com.liferay.portlet.asset.service.AssetCategoryLocalService")/>
7 <#assign AssetTagLocalService = serviceLocator.findService("com.liferay.portlet.asset.service.AssetTagLocalService")/>
8
9 <#assign currentURL = httpUtil.getProtocol(request['attributes']['CURRENT_URL']) + "://" + getterUtil.getString(request['theme-display']['portal-url']) + getterUtil.getString(request['attributes']['CURRENT_URL']) />
10
11 <#assign layoutNoticias = LayoutLocalService.getFriendlyURLLayout(groupId, false, "/noticias")>
12 <#assign noticiasURL = portal.getPathFriendlyURLPublic() + GroupLocalService.getGroup(groupId).getFriendlyURL() + layoutNoticias.getFriendlyURL(locale) />
13
14 <#assign journalArticle = JournalArticleLocalService.getArticle(getterUtil.getLong(groupId), .vars['reserved-article-id'].data) />
15 <#assign resourcePrimKey = journalArticle.getResourcePrimKey() />
16 <#assign categories = AssetCategoryLocalService.getCategories("com.liferay.portlet.journal.model.JournalArticle", getterUtil.getLong(resourcePrimKey)) />
17 <#assign tags = AssetTagLocalService.getTags("com.liferay.portlet.journal.model.JournalArticle", getterUtil.getLong(resourcePrimKey)) />
18
19
20<style>#panel_0{display: none;}</style>
21
22 <div class="bannerCabecera">
23
24 <img class="lazy" data-src="${ImagenCabecera.getData()}" alt="" aria-hidden="true">
25 </div>
26
27
28 <div class="ancho-fijo">
29
30 <article class="detalle-noticia" id="description">
31
32
33 <#-- Retrieve the published date meta data field of the web content -->
34 <#assign displaydate = .vars['reserved-article-display-date'].data>
35
36 <#-- Save the original page locale for later -->
37 <#assign originalLocale = locale>
38
39 <#-- Set the page locale to the portals default locale -->
40 <#setting locale = localeUtil.getDefault()>
41
42 <#-- Parse the date to a date object -->
43 <#assign displaydate = displaydate?datetime("EEE, d MMM yyyy HH:mm:ss Z")>
44
45 <#-- Set the page locale back to the original page locale -->
46 <#assign locale = originalLocale>
47
48 <#-- Si el locale es en_US, forzamos al readspeker a leer en locale por defecto (las noticias no se traducen al ingles) -->
49 <#if locale == "en_US" >
50 <#assign readSpeakerLocale = localeUtil.getDefault()>
51 <#else>
52 <#assign readSpeakerLocale = locale>
53 </#if>
54
55
56 <h2>${Titulo.getData()}</h2>
57
58 <div class="texto">
59 <div class="entrada">
60 ${Entrada.getData()}
61 </div>
62 <hr>
63
64 <time datetime="${displaydate?string["yyyy-MM-dd"]}" class="fecha">${displaydate?string["dd/MM/y"]}</time>
65
66 <div class="cuerpo">
67 ${Cuerpo.getData()}
68 </div>
69
70 <#if Enlaces.getSiblings()?has_content>
71 <#if Enlaces.getSiblings()?size == 1>
72 <#assign target = Enlaces.getChild("Target_url").getData()>
73 <#assign textoEnlace = Enlaces.getChild("Texto_enlace").getData()>
74 <#assign tituloEnlace = Enlaces.getChild("Titulo_enlace").getData()>
75 <#if target != "null" && target != "" && textoEnlace != "null" && textoEnlace != "">
76 <div class="enlaces">
77 <div class="icono">
78 <span class="flaticon-link-2"></span>
79 </div>
80 <div class="lista-enlaces">
81 <div class="enlace" >
82 <a href="${target}" target="_blank">
83 ${textoEnlace}
84 </a>
85 <#if tituloEnlace != "null" && tituloEnlace != "">
86 ${tituloEnlace}
87 </#if>
88 </div>
89 </div>
90 </div>
91 </#if>
92 <#else>
93 <div class="enlaces">
94 <div class="icono">
95 <span class="flaticon-link-2"></span>
96 </div>
97 <div class="lista-enlaces">
98 <#list Enlaces.getSiblings() as enlace>
99 <#assign target = enlace.getChild("Target_url").getData()>
100 <#assign textoEnlace = enlace.getChild("Texto_enlace").getData()>
101 <#assign tituloEnlace = enlace.getChild("Titulo_enlace").getData()>
102
103 <div class="enlace">
104 <#if target != "null" && target != "" && textoEnlace != "null" && textoEnlace != "">
105 <a href="${target}" target="_blank">
106 ${textoEnlace}
107 </a>
108 <#if tituloEnlace != "null" && tituloEnlace != "">
109 ${tituloEnlace}
110 </#if>
111 </#if>
112 </div>
113 </#list>
114 </div>
115 </div>
116 </#if>
117 </#if>
118
119 <#if categories?has_content || tags?has_content>
120 <div class="clasificacion" style="clear: both;">
121 <#if categories?has_content>
122 <#assign categoriesHtml = languageUtil.get(locale, "categories") + ": ">
123
124 <#list categories as category>
125 <#assign categoriesHtml = categoriesHtml + '<a href="' + noticiasURL + '?p_p_id=101_INSTANCE_gGZGMcAjLfyA&p_r_p_564233524_categoryId=' + category.getCategoryId() + '" target="_blank">' + category.getName() + '</a>, ' >
126 </#list>
127
128 <div>
129 <i class="fa fa-tags" aria-hidden="true"></i>
130 ${categoriesHtml?substring(0, categoriesHtml?length - 2)}
131 </div>
132 </#if>
133
134 <#if tags?has_content>
135 <#assign tagsHtml = languageUtil.get(locale, "tags") + ": ">
136
137 <#list tags as tag>
138 <#assign tagsHtml = tagsHtml + '<a href="' + noticiasURL + '?p_p_id=101_INSTANCE_gGZGMcAjLfyA&p_r_p_564233524_tag=' + tag.getName()?string?replace(' ', '+') + '" target="_blank">' + tag.getName() + '</a>, ' >
139 </#list>
140
141 <div>
142 <i class="fa fa-tags" aria-hidden="true"></i>
143${tagsHtml?substring(0, tagsHtml?length - 2)}
144 </div>
145 </#if>
146 </div>
147 </#if>
148
149
150 </div>
151
152 </article>
153
154
155 </div>
156
157
158
159 <#assign tituloJSON = Titulo.getData()?replace('"|”|“', '', 'r') >
160 <#assign entradaJSON = Entrada.getData()?replace('"|”|“', '', 'r') >
161
162
163<script type="application/ld+json">
164{
165 "@context": "https://schema.org",
166 "@type": "NewsArticle",
167 "mainEntityOfPage": {
168 "@type": "WebPage",
169 "@id": "https://turismoriasbaixas.com"
170 },
171 "headline": "${tituloJSON}",
172 "image": [
173 "https://turismoriasbaixas.com/PortalWebv2-theme/images/cabeceras/generica-noticias.jpg"
174 ],
175 "datePublished": "${displaydate?string["yyyy-MM-dd"]}",
176 "dateModified": "${displaydate?string["yyyy-MM-dd"]}",
177 "author": {
178 "@type": "Person",
179 "name": "Turismo Rias Baixas"
180 },
181 "publisher": {
182 "@type": "Organization",
183 "name": "Turismo Rias Baixas",
184 "logo": {
185 "@type": "ImageObject",
186 "url": "https://turismoriasbaixas.com/PortalWebv2-theme/images/svg/logo.svg"
187 }
188 },
189 "description": "${entradaJSON}"
190}
191</script>
192<#else>
193 ${Titulo.getData()}
194 ${Entrada.getData()}
195</#if>