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