Señal en vivo | Red+ Noticias de hoy ¡Uno se entera!
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing: ==> assetRenderer.getDisplayDate() [in template "308061#308100#329061" at line 29, column 61] ---- Tip: If the failing expression is known to 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: #assign fechaPublicacion = assetRende... [in template "308061#308100#329061" at line 29, column 33] ----
1<div class="most-viewed-container">
2 <div class="category">
3 <span>LO MÁS VISTO</span>
4 <span class="icon-section"></span>
5 </div>
6
7 <#if entries?has_content>
8 <#assign N_DIA_EN_MILISEGUNDOS = 86400000
9 N_NUMERO_DIAS_ATRAS = 10
10 N_CONTADOR = 0
11 FECHA_ACTUAL = .now
12 FECHA_ACTUAL_YYYYMMDD = FECHA_ACTUAL?string("yyyyMMdd")
13 FECHA_DIAS_ATRAS = (FECHA_ACTUAL?date?long - N_NUMERO_DIAS_ATRAS * N_DIA_EN_MILISEGUNDOS)?number_to_date
14 />
15 <input type="hidden" value="${FECHA_ACTUAL_YYYYMMDD}" id="fechaActualYYYYMMDD">
16 <div class="row most-viewed-news">
17 <#list entries as curEntry>
18 <#assign assetRenderer = curEntry.getAssetRenderer()
19 journalArticle = assetRenderer.getAssetObject() />
20 <#-- ========================== -->
21 <#-- La opción contenido mas visto trae en orden descendente las publicaciones mas vistas -->
22 <#-- En el ADT se elige un numero alto de entradas para luego validar a través de fechas -->
23 <#-- las mas vistas en los últimos N_NUMERO_DIAS_ATRAS días -->
24 <#-- Lectura de mas visitados en caso de requerirse -->
25 <#-- ========================== -->
26 <#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
27 <#assign assetEntry = assetEntryLocalService.getEntry(curEntry.getEntryId()) />
28 <#assign n_numeroVisitas = assetEntry?substring(assetEntry?index_of("viewCount"))?replace("viewCount=", "")?replace("}", "") />
29 <#assign fechaPublicacion = assetRenderer.getDisplayDate()?date />
30
31 <span class="contenedorMasVisto" data-entry-id="${curEntry.getEntryId()}" data-fechapub="${fechaPublicacion?string('yyyyMMdd')?number}" data-numv="${n_numeroVisitas}" data-fechaatras="${FECHA_DIAS_ATRAS?string('yyyyMMdd')?number}" style="width:100%; display: none;">
32 <#if FECHA_DIAS_ATRAS?string("yyyyMMdd")?number <= fechaPublicacion?string("yyyyMMdd")?number >
33 <#assign N_CONTADOR = N_CONTADOR + 1 />
34 <!-- control de las categorías -->
35 <#assign contentId = journalArticle.getArticleId()>
36 <#assign categories = curEntry.getCategories()
37 seccion="General" color="black">
38 <#if categories?has_content>
39 <#list categories as cat>
40 <#assign seccion = cat.getName() />
41 <#assign color = cat.getDescription(locale)/>
42 </#list>
43 </#if>
44 <#if color?trim == "">
45 <#assign color = "black" />
46 </#if>
47 <style>
48 .most-viewed-news .contenedorMasVisto .photo.content-${contentId} .opacity {
49 background-color:${color};
50 }
51 .most-viewed-news .contenedorMasVisto .photo.content-${contentId} .opacity:hover {
52 background-color: #3c3c3c00;
53 }
54 .most-viewed-news .contenedorMasVisto .photo.content-${contentId} .number:hover .opacity{
55 background-color: #3c3c3c00;
56 }
57 .most-viewed-news .contenedorMasVisto .photo.content-${contentId} .number{
58 text-shadow: -1px 0 ${color}, 0 1px ${color}, 1px 0 ${color}, 0 -1px ${color};
59 }
60 .most-viewed-news .contenedorMasVisto .text.content-${contentId}{
61 border-bottom: 4px solid ${color};
62 }
63 .most-viewed-news .contenedorMasVisto a.content-${contentId}:hover .opacity{
64 background-color: #3c3c3c00;
65 }
66 .most-viewed-news .contenedorMasVisto a.content-${contentId}:hover .text{
67 background-color: ${color};
68 }
69 .most-viewed-news .contenedorMasVisto a.content-${contentId}:hover .title{
70 color: white;
71 }
72 .most-viewed-news .contenedorMasVisto #section-${contentId}{
73 background-color:${color};
74 }
75 </style>
76 <!-- fin control de las categorías -->
77
78 <#assign viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, assetRenderer,curEntry, true) />
79 <a href='${viewURL}&color=${color}&seccion=${seccion}' class="content-${journalArticle.getArticleId()}" data-contentid="${curEntry.getEntryId()}" data-fechapub="${fechaPublicacion}" data-numv="${n_numeroVisitas}">
80 <div class="col-6 photo content-${journalArticle.getArticleId()}" >
81 <div class="opacity"></div>
82 <span class="number">${N_CONTADOR}</span>
83 </div>
84 <div class="col-6 before-journal p-0">
85 <@liferay_journal["journal-article"] articleId=journalArticle.getArticleId() ddmTemplateKey="105563" groupId=journalArticle.getGroupId()/>
86 </div>
87 </a>
88 <script>
89 $(document).ready(function() {
90 $('.most-viewed-news .contenedorMasVisto #section-${journalArticle.getArticleId()}').html("${seccion}");
91 });
92 </script>
93 <#else>
94 <input type="hidden" name="infoContenidoWeb" value="${curEntry.getEntryId()}" data-fechapub="${fechaPublicacion?string('yyyyMMdd')?number}" data-numv="${n_numeroVisitas}">
95 </#if>
96 </span>
97 </#list>
98 </div>
99 <div class='clear'></div>
100 </#if>
101</div>
102<script>
103 $ = jQuery.noConflict();
104 //$(document).ready(function(){
105 var valNumeroVisitas = [];
106 /* Si el conteo @view_counter@ de la plantilla noticia-interna-PTL esta inactivo:
107 * A) Organizar por fecha (data-fechapub)
108 * B) e lo contrario organizar por número de visitas (data-numv)
109 * data-numv
110 * data-fechapub
111 */
112 var CRITERIO_ORDENACION = "data-numv";
113 $("span.contenedorMasVisto").each(function(i){
114 //console.log(Number($(this).attr("data-entry-id")) +" ::: "+ $(this).attr(CRITERIO_ORDENACION));
115 //console.log(Number($(this).attr("data-fechapub")) +" ::: "+ Number($(this).attr("data-fechaatras")));
116 if(Number($(this).attr("data-fechapub")) >= Number($(this).attr("data-fechaatras"))){
117 valNumeroVisitas[i] = {};
118 valNumeroVisitas[i].llave = $(this).attr("data-entry-id");
119 valNumeroVisitas[i].valor = $(this).attr(CRITERIO_ORDENACION);
120 }
121 });
122
123 valNumeroVisitas.sort(function (a, b) {
124 if(CRITERIO_ORDENACION == "data-fechapub"){
125 return b.valor - a.valor;
126 }else{
127 return a.valor - b.valor;
128 }
129 });
130 // Mostrar noticias de hace X dias -
131 var ordenado = valNumeroVisitas.reverse();
132 var numMostrados = 0;
133 // Aplica si el criterio de ordenación es data-fechapub
134 var DIAS_A_RESTAR = 2;
135 var MOSTRAR_NOTICIAS_DE = Number($("#fechaActualYYYYMMDD").val()) - DIAS_A_RESTAR;
136 for (let i in ordenado){
137 console.log("||"+ordenado[i].valor+"-"+ordenado[i].llave+"||");
138 if(CRITERIO_ORDENACION == "data-numv"){
139 $('[data-entry-id*="'+ordenado[i].llave+'"]').css("display","block");
140 numMostrados++;
141 $('[data-entry-id*="'+ordenado[i].llave+'"]').addClass("order-"+numMostrados);
142 $('[data-entry-id*="'+ordenado[i].llave+'"]').attr("data-orden",numMostrados);
143 if(numMostrados == 4){
144 break;
145 }
146 }else{
147 if(Number(MOSTRAR_NOTICIAS_DE) == Number(ordenado[i].valor)){
148 $('[data-entry-id*="'+ordenado[i].llave+'"]').css("display","block");
149 numMostrados++;
150 $('[data-entry-id*="'+ordenado[i].llave+'"]').addClass("order-"+ numMostrados);
151 $('[data-entry-id*="'+ordenado[i].llave+'"]').attr("data-orden",numMostrados);
152 if(numMostrados == 4){
153 break;
154 }
155 }
156 }
157 }
158 var numero = 0
159 $("span.number").each(function(i){
160 numero = $(this).parent("div.photo").parent("a").parent("span.contenedorMasVisto").attr("data-orden");
161 if ($(this).is(":visible")){
162 $(this).text(numero);
163 console.log(numero);
164 //j++;
165 }
166 });
167 //});
168</script>
169
170<style>
171.portlet-decorate .portlet-content{
172 padding-top: 0px;
173}
174.most-viewed-container {
175 margin-left: 50px
176}
177.most-viewed-news .contenedorMasVisto a{
178 display: flex;
179 flex-wrap: wrap;
180 margin-right: -15px;
181 margin-left: -15px;
182 width: 100%;
183}
184.most-viewed-news .contenedorMasVisto .photo{
185 height: 93px;
186 padding: 0px;
187 background-position: center;
188 background-repeat: no-repeat;
189 background-size: cover;
190}
191.most-viewed-news .contenedorMasVisto .opacity {
192 opacity:0.4;
193 width:100%;
194 height:100%;
195}
196.most-viewed-news .contenedorMasVisto .photo .number{
197 position: absolute;
198 font-size: 40px;
199 top: 18%;
200 left: 20px;
201 font-weight: 900;
202 color: white;
203}
204.before-journal > div{
205 height: 100%;
206}
207.most-viewed-news .contenedorMasVisto .text{
208 height: 100%;
209 padding: 2px 7px;
210 font-size: 15px;
211 line-height: 100%;
212 position: relative;
213 min-width: 170px;
214}
215.most-viewed-news .contenedorMasVisto .text span.title{
216 position: absolute;
217 bottom: 6px;
218 color: #212529;
219 font-size: 13px;
220}
221.most-viewed-news .contenedorMasVisto .text span.section{
222 color: white;
223 position: absolute;
224 top: 0px;
225 padding: 1px;
226}
227.most-viewed-news > *{
228 margin-top: 12px;
229 margin-bottom: 12px;
230}
231.most-viewed-news .contenedorMasVisto :first-child{
232 margin-top: 0px;
233}
234
235.most-viewed-news .contenedorMasVisto :nth-last-child(1){
236 margin-bottom: 0px;
237}
238@media only screen and (max-width: 1024px){
239 .most-viewed-news .contenedorMasVisto a {
240 margin-left: -41px;
241 }
242}
243@media (max-width: 768px) {
244 .most-viewed-container{
245 margin-left: 50px
246 }
247 .most-viewed-news .contenedorMasVisto .text {
248 padding: 0px 0px 1px 4px;
249 }
250}
251</style>