Publicador de contenidos

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>