1<#assign AssetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")>
2<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
3<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")>
4<#assign AssetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")>
5<#assign AssetLinkLocalService = serviceLocator.findService("com.liferay.asset.link.service.AssetLinkLocalService")>
6
7<#assign statusApproved = 0>
8<#assign journalArticle = JournalArticleLocalService.fetchLatestArticle(groupId, reserved\-article\-id.data, statusApproved)>
9<#assign assetEntry = AssetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", journalArticle.getResourcePrimKey())>
10<#assign categories = AssetCategoryLocalService.getAssetEntryAssetCategories(assetEntry.getEntryId())>
11
12
13<#assign VOC_SECCION_NOTICIA = "SACYR_GLOBAL_VOC_SECCIÓN_NOTICIA">
14<#assign VOC_TAG = "SACYR_VOC_TAGS">
15<#assign VOC_PAIS = "SACYR_VOC_PAIS">
16
17<#assign currentUrl = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() />
18
19<#-- Seccion noticia -->
20<div class="detail-info">
21 <#-- Imagen -->
22 <div class="main-img-bg">
23 <#if multimedia.imagenMobile.getData()?? && multimedia.imagenMobile.getData() != "">
24 <img class="img-mobile" alt="${multimedia.imagenMobile.getAttribute("alt")}" data-fileentryid="${multimedia.imagenMobile.getAttribute("fileEntryId")}" src="${multimedia.imagenMobile.getData()}" />
25 </#if>
26 <#if multimedia.imagenDesktop.getData()?? && multimedia.imagenDesktop.getData() != "">
27 <img class="img-desktop" alt="${multimedia.imagenDesktop.getAttribute("alt")}" data-fileentryid="${multimedia.imagenDesktop.getAttribute("fileEntryId")}" src="${multimedia.imagenDesktop.getData()}" />
28 </#if>
29 <div class="container">
30 <div class="categories-list">
31 <ul>
32 <#list categories as cat>
33 <#assign voc = AssetVocabularyLocalService.getAssetVocabulary(cat.getVocabularyId())>
34 <#if voc.getName() == VOC_SECCION_NOTICIA>
35 <li class="bg-blue">${cat.getTitle(locale)}</li>
36 <#break>
37 </#if>
38 </#list>
39 </ul>
40 </div>
41
42 <#-- Titular -->
43 <div class="title">
44 ${titular.getData()}
45 </div>
46
47 <div class="more-info-icon"><span class="icon icon-flecha-abajo"></span></div>
48 </div>
49 </div>
50
51 <#-- Contenido -->
52 <div class="main-content">
53 <div class="row">
54 <#-- Tags + Pais -->
55 <div class="col-xs-12 visible-xs">
56 <#-- Ver la definicion de la macro (más abajo) -->
57 <ul class="badges-list">
58 <@tagsPais/>
59 </ul>
60 </div>
61 <#--<#if icono.getData()?? && icono.getData() != "">
62 <div class="col-xs-12 visible-xs">
63 <div class="label-box">
64 <img alt="${icono.getAttribute("alt")}" data-fileentryid="${icono.getAttribute("fileEntryId")}" src="${icono.getData()}" />
65 <p class="text">Sacyr Concesiones</p>
66 <p class="date">16/05/2020</p>
67 </div>
68 </div>
69 <div class="col-sm-2-5 hidden-xs">
70 <div class="label-box">
71 <img alt="${icono.getAttribute("alt")}" data-fileentryid="${icono.getAttribute("fileEntryId")}" src="${icono.getData()}" />
72 <p class="text">Sacyr Concesiones</p>
73 <p class="date">16/05/2020</p>
74 </div>
75 </div>
76 <div class="col-sm-7">
77 <#else>
78 <div class="col-sm-7 col-sm-2-5-offset">
79 </#if> -->
80 <div class="main-text">
81 <#-- Subtitulo -->
82 <div class="subtitle">
83 ${subtitulo.getData()}
84 </div>
85 <div class="text">
86 <p>${contenido.getData()}</p>
87 </div>
88 </div>
89 </div>
90 <#-- Tags + Pais -->
91 <div class="col-sm-2-5 hidden-xs">
92 <#-- Ver la definicion de la macro (más abajo) -->
93 <ul class="badges-list">
94 <@tagsPais/>
95 </ul>
96 </div>
97 </div>
98 </div>
99</div>
100
101<#-- Contenidos relacionados del detalle, cada contenido relacionado se pinta con su template -->
102<div>
103 <#if elementosDetalle.getSiblings()?has_content>
104 <#list elementosDetalle.getSiblings() as cur_elementosDetalle>
105 <#if cur_elementosDetalle?? && cur_elementosDetalle.getData() != "">
106 <#assign data = cur_elementosDetalle.getData()?eval>
107 <#if data?? && data?has_content >
108 <#assign ja = JournalArticleLocalService.fetchLatestArticle(data["classPK"]?number)>
109 <div class="my-info-detail-components">
110 ${JournalArticleLocalService.getArticleContent(ja, ja.getDDMTemplateKey(), "VIEW", locale, null, themeDisplay)}
111 </div>
112 </#if>
113 </#if>
114 </#list>
115 </#if>
116</div>
117
118<div class="container">
119 <div class="row">
120 <div class="col-sm-7 col-sm-2-5-offset">
121 <div class="download-item-share-links-group">
122 <#-- Boton de descargar imagenes, entiendo que se refiere a la imagen de la Noticia-->
123 <div class="download-item text-left">
124 <a href="${multimedia.imagenDesktop.getData()}" class="btn download-btn">
125 <span class="icon"></span>
126 <span class="text">${languageUtil.get(locale, "download")} ${languageUtil.get(locale, "images")?lower_case}</span>
127 </a>
128 </div>
129 <#-- Compartir en Redes sociales parte inferior -->
130 <div class="text-share-rrss">
131 <span class="text text-blue">${languageUtil.get(locale, "share")}:</span>
132 <ul>
133 <li><a class="facebook" href="" onclick="window.open('http://www.facebook.com/sharer.php?u=${currentUrl}', '${titular.getData()}', 'width=600,height=400'); return false;" aria-label="Compartir en Facebook"><span class="icon-sm-facebook"></span></a></li>
134 <li><a class="twitter" href="" onclick="window.open('https://twitter.com/intent/tweet?text=${titular.getData()}&tw_p=tweetbutton&url=${currentUrl}', '${titular.getData()}', 'width=600,height=400'); return false;" aria-label="Compartir en Twitter"><span class="icon-sm-twitter"></span></a></li>
135 <li><a class="linkedin" href="" onclick="window.open('http://www.linkedin.com/shareArticle?&title=${titular.getData()}&mini=true&url=${currentUrl}&summary=', '${titular.getData()}', 'width=600,height=400'); return false;" aria-label="Compartir en Linkedin"><span class="icon-sm-linkedin"></span></a></li>
136 </ul>
137 </div>
138 </div>
139 </div>
140 </div>
141</div>
142<#-- Tags + Pais parte inferior -->
143<div class="container">
144 <div class="row">
145 <div class="col-sm-7 col-sm-2-5-offset">
146 <ul class="badges-list inline">
147 <@tagsPais/>
148 </ul>
149 </div>
150 </div>
151</div>
152
153<#function getFieldValue fieldName rootElement>
154 <#if fieldName?contains(".")>
155 <#assign rootElementName = fieldName?split(".")?first >
156 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='${rootElementName}']") >
157 <#return getFieldValue(fieldName?remove_beginning("${rootElementName}."), xPathSelector.selectSingleNode(rootElement)) >
158 </#if>
159 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='${fieldName}']") >
160 <#return xPathSelector.selectSingleNode(rootElement).getStringValue() >
161</#function>
162
163<#macro tagsPais>
164 <#assign vocNoticias = [] >
165 <#assign vocTags = [] >
166 <#assign vocCountry = [] >
167
168 <#list categories as cat>
169
170 <#assign voc = AssetVocabularyLocalService.getAssetVocabulary(cat.getVocabularyId())>
171
172 <#if voc.getName() == VOC_SECCION_NOTICIA>
173 <#assign vocNoticias = vocNoticias + [cat.getTitle(locale)]>
174 <#elseif voc.getName() == VOC_TAG>
175 <#assign vocTags = vocTags + [cat.getTitle(locale)]>
176 <#elseif voc.getName() == VOC_PAIS>
177 <#assign vocCountry = vocCountry + [cat.getTitle(locale)]>
178 </#if>
179 </#list>
180
181 <#list vocNoticias as voc>
182 <#if !voc?is_first>
183 <li><span class="badge bg-darkblue"><span class="icon-tag"></span>${voc}</span></li>
184 </#if>
185 </#list>
186
187 <#list vocTags as voc>
188 <li><span class="badge bg-blue"><span class="icon-tag"></span>${voc}</span></li>
189 </#list>
190
191 <#list vocCountry as voc>
192 <li><span class="badge bg-yellow"><span class="icon-location"></span>${voc}</span></li>
193 </#list>
194</#macro>
195
196
197<#assign contextUrl = themeDisplay.getPortalURL() />
198<#assign currentArticle = JournalArticleLocalService.getArticle(groupId, .vars['reserved-article-id'].data) />
199<#assign site_name_public = "Sacyr Blog" />
200<#assign twitter_account = "@SomosSacyr" />
201
202
203
204<@liferay_util["html-top"] outputKey="htmltop" >
205 <meta property="og:title" content="${titular.getData()}">
206 <meta property="og:type" content="article">
207 <meta property="og:url" content="${portalUtil.getCanonicalURL(currentUrl, themeDisplay, null)}">
208 <#if multimedia.imagenDesktop.getData()?? && multimedia.imagenDesktop.getData() != "">
209 <meta property="og:image" content="${themeDisplay.getPortalURL() + multimedia.imagenDesktop.getData()}">
210 </#if>
211 <meta property="og:site_name" content="${site_name_public}">
212 <meta property="og:description" content="${subtitulo.getData()}">
213
214 <meta property="article:published_time" content="${currentArticle.getDisplayDate()?datetime?iso_utc}">
215 <meta property="article:modified_time" content="${currentArticle.getModifiedDate()?datetime?iso_utc}">
216
217 <meta name="twitter:card" content="summary_large_image">
218 <meta name="twitter:site" content="${twitter_account}">
219 <meta name="twitter:domain" content="${portalUtil.getCanonicalURL(themeDisplay.getPortalURL(), themeDisplay, null)}">
220 <meta name="twitter:title" content="{titular.getData()}">
221 <meta name="twitter:description" content="${subtitulo.getData()}">
222
223 <#if multimedia.imagenDesktop.getData()?? && multimedia.imagenDesktop.getData() != "">
224 <meta name="twitter:image" content="${themeDisplay.getPortalURL()}${multimedia.imagenDesktop.getData()}">
225 </#if>
226</@>