1##----R_LIVE_BLOG_POST ----
2<div class="R_LIVE_BLOG_POST v3">
3
4 #set ($LivePost= $!articleToolbox.getTag(null, 'LBP_Headline'))
5 #set( $reversedList = [] )
6
7
8 #foreach( $itm in $LivePost.getSiblings() )
9 #set ($portalBeanLocator = $portal.getClass().forName('com.liferay.portal.kernel.bean.PortalBeanLocatorUtil'))
10 #set ($dateFormatFactory = $portalBeanLocator.locate('com.liferay.portal.kernel.util.DateFormatFactoryUtil'))
11 #set ($indexFormat = $dateFormatFactory.getSimpleDateFormat('dd/MM/yyyy HH:mm'))
12
13 #set ($indexFormatSoloFecha = $dateFormatFactory.getSimpleDateFormat('dd/MM/yyyy'))
14 #set ($indexFormatSoloHora = $dateFormatFactory.getSimpleDateFormat('hh:mm a'))
15
16 #set ($dResultado = $indexFormat.parse("$itm.LBP_Date.data"))
17 #set ($soloFecha = $indexFormatSoloFecha.format($dResultado))
18 #set ($soloHora = $indexFormatSoloHora.format($dResultado))
19
20 #set ($temp = $itm.put("FECHA_POST", $soloFecha))
21 #set ($temp = $itm.put("HORA_POST", $soloHora))
22 #set ($temp = $itm.put("DATE_POST", $dResultado))
23 #set ($temp = $reversedList.add(0, $itm))
24 #end
25
26 #foreach($post in $sortTool.sort($reversedList, 'DATE_POST:desc'))
27
28
29#set ($soloFecha = $post.FECHA_POST)
30#set ($soloHora = $post.HORA_POST)
31 #set ($PostDate= $post.LBP_Date)
32 #set ($PostText= $post.LBP_Text)
33 #set ($PostchildrenTags = $articleToolbox.getChildrenTags($post))
34
35 <div class="r_item_post p_$velocityCount">
36 <div class="r_item_line">
37 <div class="r_point_post"></div>
38 <div class="r_vertical-line"></div> <!-- Línea vertical entre los puntos -->
39 </div>
40 <div class="r_item_content">
41 <div class="r_date_post" data-date="$!PostDate.data">
42 <div class="r_hora_post">$!soloHora</div>
43 <div class="r_fecha_post">$!soloFecha</div>
44
45 </div>
46 <div class="r_content_post">
47 <div class="r_headline_post">$!post.data</div>
48 <div class="r_text_post">$!PostText.data</div>
49 #foreach ($el in $PostchildrenTags)
50 #if($el.name == "LBP_HTML")
51 <div class="r_html_post">$el.data</div>
52 #end
53
54 #if($el.name == "LBP_Image")
55 <div class="r_image_post">
56 $!articleToolbox.getImageTag("$el.name","$el.Milenium.data","crop_650_350_PodHea","","","","false","$!post.data","$!post.data","100%")
57 </div>
58 #end
59 #if($el.name == "LBP_Multimedia")
60 <div class="r_multimedia_post">
61 #if($el.Extension.data && $el.Extension.data == "mp3")
62 <audio controls width="$widthMultimedia" height="$heightMultimedia">
63 <source src="$el.Document.data" type="audio/mpeg">
64 </audio>
65 #elseif ($el.Extension.data && $el.Extension.data == "mp4")
66 <video id="multimediaPlayer$!{reserved-article-id.data}${velocityCount}" poster="$!el.Preview.data" controls width="640" height="360">
67 <source src="$!el.Document.data" type="video/mp4">
68 Tu navegador no soporta el vÃdeo de HTML5
69 </video>
70 #end
71 </div>
72 #end
73 #if($el.name == "LBP_Youtube")
74 <div class="r_youtube_post">
75 $el.data
76 ##<iframe allowfullscreen="" frameborder="0" height="360" width="640" src="//www.youtube.com/embed/?wmode=transparent&controls=2&showinfo=0&theme=light"></iframe>
77 </div>
78 #end
79 #end
80 <hr class="r_linea_hr"/>
81 <div class="r_social-icons">
82 <a href="https://facebook.com/sharer/sharer.php?u=#siteUrl()#printAcCanonicalUrl_v1()" target="_blank">
83 <img src="https://codigomarret.online/upload/img/facebook.svg" alt="Facebook">
84 </a>
85 <a href="https://api.whatsapp.com/send?text=#siteUrl()#printAcCanonicalUrl_v1()" target="_blank">
86 <img src="https://codigomarret.online/upload/img/icons8-whatsapp.svg" alt="WhatsApp">
87 </a>
88 <a href="https://twitter.com/intent/tweet?text=#siteUrl()#printAcCanonicalUrl_v1()" target="_blank">
89 <img src="https://codigomarret.online/upload/img/icons8-twitterx.svg" alt="Twitter">
90 </a>
91 </div>
92 </div>
93 </div>
94 </div>
95
96 #end
97</div>
98
99
100## JSON +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
101#set($TituloEsc = $htmlUtil.escape($!Headline.data))
102#set($TituloEsc = $TituloEsc.replaceAll("\n", ""))
103#set($DescEsc = $htmlUtil.escape($!subHeadline.data))
104#set($DescEsc = $TituloEsc.replaceAll("\n", ""))
105#set ($tempSubheadline = "#getTeaserSubheadline_v1(false)")
106#if($tempSubheadline && $tempSubheadline != "")
107 #set($Texto = $tempSubheadline )
108#else
109 #set($Texto = "#getTeaserText_v1(200)" )
110#end
111#set($Texto = $Texto.replaceAll("<.*?>","") )
112#set($Texto = $Texto.trim() )
113#set($TextoEsc = $htmlUtil.escape($Texto))
114#set($shareUrl = "#siteUrl()#printAcCanonicalUrl_v1()")
115#set($shareUrl = $shareUrl.replaceAll("http:","https:"))
116#set($hmAutores = {})
117#getAcAssignedExtendedAllCat_v1($hmAutores "Ecv_Author")
118#if($hmAutores.size() > 0)
119 #set($hmAutor = $hmAutores.get(0))
120 #set($autor = $hmAutores.get(0).name)
121#end
122##set($formtLocal = "#printDate_v1('yyyy-MM-dd HH:mm:ssXXX')" )
123
124#set($dateDi = "#printDate_v1('yyyy-MM-dd')")
125#set($dateHor = "#printDate_v1('HH:mm:ssXXX')")
126
127#set($dateDi = $dateDi.trim())
128#set($dateHor = $dateHor.trim())
129
130#set($formtLocal = "$dateDi T $dateHor" )
131#set($formtLocal = $formtLocal.replaceAll(" ", ""))
132
133##separador
134##set($toLocal = "#printDateTo_v1('yyyy-MM-dd HH:mm:ssXXX')" )
135
136#set($dateDiTo = "#printDateTo_v1('yyyy-MM-dd')")
137#set($dateHorTo = "#printDateTo_v1('HH:mm:ssXXX')")
138
139#set($dateDiTo = $dateDiTo.trim())
140#set($dateHorTo = $dateHorTo.trim())
141
142#set($toLocal = "$dateDiTo T $dateHorTo" )
143#set($toLocal = $toLocal.replaceAll(" ", ""))
144
145<script type="application/ld+json">
146{
147 "@context": "https://schema.org/",
148 "@type": "LiveBlogPosting",
149 "publisher": {
150 "@type": "Organization",
151 "name": "Vistazo",
152 "url": "https://www.vistazo.com/",
153 "sameAs": [
154 "https://www.facebook.com/revistavistazo",
155 "https://www.instagram.com/revistavistazo.ec/",
156 "https://x.com/vistazo",
157 "https://www.youtube.com/@RevistaVistazoENSA"
158 ],
159 "@id": "#PublisherOrg",
160 "logo": {
161 "@type": "ImageObject",
162 "url": "$ogimage"
163 }
164 },
165 "url": "$shareUrl",
166 "description": "$TextoEsc",
167 "headline" : "$TituloEsc",#*
168*##if($hmAutores.size() > 0)#*
169 *#"author": {
170 "@type": "PERSON",
171 "name": "$!autor",
172 "url":"#metadataUrl_v1('metadatos')$hmAutor.friendlyname"
173 },#*
174*##end#*
175 *#"about": {
176 "@type": "Event",
177 "name": "$DescEsc",
178 "description": "$TextoEsc",
179 "startDate": "$!formtLocal.trim()",
180 "endDate": "$!toLocal.trim()",
181 "location": {
182 "@type": "Place",
183 "name": "Ecuador",
184 "address": {
185 "@type": "PostalAddress",
186 "addressCountry": "Ecuador"
187 }
188 },
189 "eventAttendanceMode": "OnlineEventAttendanceMode",
190 "eventStatus": "https://schema.org/EventScheduled",
191 "offers": {
192 "@type": "Offer",
193 "availability": "https://schema.org/OnlineOnly",
194 "price": "0.00",
195 "priceCurrency": "USD",
196 "validFrom": "$!formtLocal.trim()",
197 "url": "$shareUrl"
198 },
199 "image": {
200 "@type": "ImageObject",
201 "url": "https://www.vistazo.com/base-portlet/webrsrc/ctxvar/14b17260-9afe-4609-8631-132f57aa5209.png",
202 "width": "32",
203 "height": "32"
204 },
205 "organizer": {
206 "@type": "Organization",
207 "name": "Vistazo",
208 "url": "https://www.vistazo.com/"
209 },
210 "performer": {
211 "@type": "Organization",
212 "name": "Vistazo",
213 "url": "https://www.vistazo.com/"
214 }
215 },
216 "dateModified" : "$!formtLocal.trim()",
217 "coverageStartTime": "$!formtLocal.trim()",
218 "coverageEndTime": "$!toLocal.trim()",
219 "name": "Vistazo",
220 "liveBlogUpdate": [#*
221*##foreach($post in $sortTool.sort($reversedList, 'DATE_POST:desc'))#*
222 *##set ($PostDate = $post.LBP_Date.data)#*
223 *##set ($PostText = $!post.LBP_Text.data.replaceAll('"', "'"))#*
224 *##set ($PostText = $PostText.replaceAll("<.*?>","") )#*
225 *##set ($PostText = $PostText.trim() )#*
226 *##set ($PostText = $htmlUtil.escape($PostText))#*
227 *##set ($PostTitulo = $post.data.replaceAll('"', "'"))#*
228 *##set ($indexFormat = $dateFormatFactory.getSimpleDateFormat('dd/MM/yyyy HH:mm'))#*
229 *##set ($datePostFormat = $indexFormat.parse($PostDate))#*
230 *##set ($date_F = $dateTool.format("yyyy-MM-dd'T'HH:mm:ssZ",$datePostFormat))#*
231
232 *##set ($PostchildrenTags = $articleToolbox.getChildrenTags($post))#*
233 *##if($velocityCount != "1")#*
234 *#,#*
235 *##end#*
236 *#{
237 "@type": "BlogPosting",
238 "headline": "$PostTitulo",
239 "url": "$shareUrl#$velocityCount",
240 "@id": "#$velocityCount",
241 "mainEntityOfPage": {
242 "@type": "WebPage"
243 },
244 "datePublished": "$date_F",
245 "dateModified": "$date_F",
246 "articleBody": "$PostText",#*
247 *##foreach ($el in $PostchildrenTags)#*
248 *##if($el.name == "LBP_Image")#*
249 *#"image": {
250 "@type": "ImageObject",
251 "url": "$!articleToolbox.getImageURL("$el.name","$el.Milenium.data","crop_650_350_PodHea")"
252 },#*
253 *##end#*
254 *##end#*
255 *##if($hmAutores.size() > 0)#*
256 *#"author": {
257 "@type": "PERSON",
258 "name": "$autor"
259 },#*
260 *##end#*
261 *#"publisher": {
262 "name": "Vistazo",
263 "@type": "Organization",
264 "@id": "#PublisherOrg"
265 }
266 }#*
267*##end
268 ]
269}
270</script>
271
272
273#set($Texto = $Texto.replaceAll("<.*?>","") )
274#set($Texto = $Texto.trim() )
275#set($TextoEsc = $htmlUtil.escape($Texto))
276
277
278#set($TituloEsc = $htmlUtil.escape($!Headline.data))
279#set($TituloEsc = $TituloEsc.replaceAll("\n", ""))
280
281#set($text = "")
282#set($Texto = $articleToolbox.getTag2(null, 'Text', 200, '', ''))
283#set($text = $!Texto.data)
284#set($text = $text.replace("<p>"," "))
285#set($text = $text.replace("</p>"," "))
286
287#set($text = $text.replace('"',''))
288#set($text = $text.replace("<br />",""))
289
290#set($text = $text.replace("<","<")) #set($text=$text.replace(">",">"))
291
292#set($text = $text.replace("<br />",""))
293#set($text = $text.replace("<strong>",""))
294#set($text = $text.replace("</strong>",""))
295#set($text = $text.trim())
296#set($text = $text.replaceAll("<.*?>","") )
297#set($textfor = $htmlUtil.escape($text))
298
299
300<script type="application/ld+json">
301{
302 "@context": "https://schema.org/",
303 "@type": "NewsArticle",
304 "mainEntityOfPage": {
305 "@type": "WebPage",
306 "@id": "$!articleToolbox.getArticleViewer("canonical")"
307 },
308 "headline": "$TituloEsc",
309 "description": "$TextoEsc",
310 "articleSection": "#printAssignedSection_v1",
311 "articleBody": "$textfor",
312 "datePublished": "$formtLocal",
313 "dateModified": "$formtLocal",
314 "author": {
315 "@type": "Person",
316 "name": "$autor",
317 "url": "#metadataUrl_v1("metadatos")$hmAutor.friendlyname"
318 },
319 "publisher": {
320 "@type": "Organization",
321 "name": "Vistazo",
322 "logo": {
323 "@type": "ImageObject",
324 "url": "$!iterVelocityTools.getVariable("0","favicon")",
325 "width": 32,
326 "height": 32
327 }
328 },
329 "image": {
330 "@type": "ImageObject",
331 "url": "$ogimage",
332 "width": 1200,
333 "height": 600
334 }
335}
336</script>
337
338
339<script>
340
341 var version = "4";
342 var dateServer = "<?php echo date("d/m/Y H:i:s");?>";
343 function timeAgo(date_str) {
344 var date = getDate(date_str);
345 var now = getDate(dateServer);
346 var ms = now.getTime() - date.getTime();
347 var seconds = Math.floor(ms / 1000);
348 var minutes = Math.floor(seconds / 60);
349 var hours = Math.floor(minutes / 60);
350 var days = Math.floor(hours / 24);
351 var months = Math.floor(days / 30);
352 var years = Math.floor(months / 12);
353 if(ms < 0){
354 return date_str;
355 }
356 if (ms === 0) {
357 return "Hace un momento";
358 }
359 if (seconds < 60) {
360 return "Hace " + seconds + " segundos";
361 }
362 if (minutes < 60) {
363 return "Hace " + minutes + " minutos";
364 }
365 if (hours < 6) {
366 return "Hace " + hours + " horas";
367 }
368 if (hours => 24) {
369 return date_str;
370 }
371 }
372
373 function getDate (date_str){
374 let dateTimeString = date_str;
375 const [dateString, timeString] = dateTimeString.split(' ');
376 const [day, month, year] = dateString.split('/');
377 const [hour, minute] = timeString.split(':');
378 var d = new Date(+year, +month - 1, +day, +hour, +minute);
379 return d;
380 }
381
382
383 function changeDatehora (){
384 document.querySelectorAll('.r_date_post').forEach(el => {
385
386 const text = el.textContent.trim();
387 const [date, time] = text.split(" ");
388
389 el.innerHTML = `
390 <span class="time">${time}</span>
391 <span class="date">${date}</span>
392 `;
393
394 });
395
396 }
397
398 setTimeout(() => {
399 changeDatehora();
400 }, 500);
401
402
403 //jQuery(document).ready(function() {
404 //$('.date_post').each(function(){
405 // var fecha_fin = timeAgo(this.innerText);
406 // this.innerText = fecha_fin;
407
408
409 //});
410});
411
412</script>