Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> autor  [in template "20097#20123#19422661" at line 216, column 23]

----
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: ${autor.getData()}  [in template "20097#20123#19422661" at line 216, column 21]
----
1<style> 
2    .buttons_cont { 
3        position: fixed; 
4        z-index: 1; 
5        top: 50%; 
6        margin-top: -92.5px; 
7        background-color: rgba(0, 0, 0, 0.4); 
8        border-top-right-radius: 10px; 
9        border-bottom-right-radius: 10px; 
10
11 
12    .buttons_cont p { 
13        margin: 13px 8px; 
14
15    .padre{ 
16        position:relative; 
17
18    .pie-inicial{ 
19    position:absolute; 
20    z-index:1; 
21    right:0; 
22    left:0; 
23    bottom:0px; 
24        margin:auto; 
25        max-width: 980px; 
26        width: 90%; 
27        text-align:center; 
28        background-color: rgba(0, 0, 0, .75); 
29        color: #fff; 
30        font-style: italic; 
31        font-size:small; 
32
33    .category { 
34        width: 100%; 
35        display: flex; 
36        justify-content: flex-end; 
37        color: #fff; 
38        font-size: 12px; 
39        font-weight: bold; 
40        text-transform: uppercase; 
41
42 
43    .category .category1, 
44    .category .category2 { 
45        background-color: #cf1417; 
46        padding: 1rem; 
47        border-radius: 0 0 15px 15px; 
48        height: fit-content; 
49
50 
51    .category1 a, 
52    .category2 a { 
53        color: white; 
54
55     
56    .citas { 
57        font-size: 16px; 
58        padding: 0 0 0 10px; 
59        margin: 0 0 20px; 
60        border-left: 5px solid #cf1417; 
61        font-style: italic; 
62
63     
64    .cita-comilla-contenedor { 
65        width: 100%; 
66        margin: 1rem 0; 
67
68    .cita-comilla-borde { 
69        border: 2px solid #cf1417; 
70        border-radius: 10px; 
71        display: flex; 
72        flex-direction: row; 
73        font-size: 16px; 
74
75    .cita-comilla-borde img { 
76        width: 100%; 
77        max-width: 32px !important; 
78        height: fit-content; 
79        margin: 8px !important; 
80        filter: invert(15%) sepia(36%) saturate(7058%) hue-rotate(347deg) 
81            brightness(108%) contrast(106%); 
82
83    .cita-comilla-borde #texto { 
84        margin: 1rem; 
85         
86
87    .cita-comilla-borde #autor { 
88        margin: 1rem; 
89        font-weight:bold; 
90
91     
92 
93    .history-news-template-container { 
94        width: 100%; 
95
96 
97    .history-news-template-container img { 
98 
99        display: block; 
100        margin: auto; 
101
102    .history-news-template-container .carousel{ 
103        width: 100%; 
104        max-width:625px; 
105        margin: auto; 
106
107 
108    .m-bot span { 
109        text-align: center; 
110
111     
112     
113    p iframe{ 
114        text-align:center; 
115
116     
117     
118 
119    .history-news-template-container figure { 
120        position: relative; 
121        margin: 0; 
122
123 
124    .history-news-template-info { 
125        display: flex; 
126
127 
128    .history-news-template-header { 
129        text-align: center; 
130        width: 90%; 
131        max-width: 600px; 
132        margin: auto; 
133
134 
135    .history-news-template-author { 
136        width: 100%; 
137        display: flex; 
138        justify-content: flex-start; 
139        flex-direction: column; 
140        padding: 8px; 
141        font-weight: bold; 
142
143 
144    .history-news-template-author p { 
145        margin: 2px 0; 
146
147 
148    .mw980 { 
149        width: 90%; 
150        max-width: 980px; 
151        margin: 0 auto; 
152
153     
154 
155    @media screen and (max-width: 425px) { 
156        .history-news-template-info { 
157            flex-direction: column-reverse; 
158
159 
160        .history-news-template-author p { 
161            text-align: center; 
162
163 
164        .buttons_cont { 
165            display: flex; 
166            top: auto; 
167            bottom: 0; 
168            width: 100%; 
169            justify-content: center; 
170            border-top-right-radius: 0px; 
171            border-bottom-right-radius: 0px; 
172
173
174</style> 
175<#assign 
176    journalArticleResourceLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleResourceLocalService") 
177    assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") 
178    journalArticleId = .vars['reserved-article-id'].data 
179    imagenurl = .vars['reserved-article-small-image-url'].data 
180    dlFileEntryService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") 
181/> 
182<!-- Leer descripción de imagen destacada --> 
183<#if imagenurl?has_content> 
184  <#assign  
185  uuid1=imagenurl?keep_before("?")?keep_after_last("/")  
186  Group = imagenurl?keep_after("documents/")?keep_before("/")?number 
187  step1 = dlFileEntryService.getFileEntryByUuidAndGroupId(uuid1, Group) 
188/> 
189</#if> 
190<div class="history-news-template-container"> 
191    <div class="history-news-template-header"> 
192        <h1 style="font-size: 32px;">${.vars['reserved-article-title'].data}</h1> 
193        <p> 
194            <small>  
195           ${.vars['reserved-article-description'].data}  
196            </small>  
197        </p> 
198    </div> 
199 
200    <div class="padre"> 
201         <#if .vars['reserved-article-small-image-url'].data?has_content>  
202         <!--asignar descripción en texto alt si tiene, y si no que muestre el mismo titulo de la imagen--> 
203             <#if step1.getDescription()?has_content>            
204               <img src="${.vars['reserved-article-small-image-url'].data}" alt="${step1.getDescription()}" style="width:90%; max-width:980px;"/> 
205             <#else> 
206               <img src="${.vars['reserved-article-small-image-url'].data}" alt="${step1.getTitle()}" style="width:90%; max-width:980px;"/> 
207             </#if> 
208         <!--termina el alt y sigue con condicional de agregar logo UN en caso de que no tenga imagen destacada por mostrar-->     
209         <#else> 
210         <img src="https://www.uninorte.edu.co/documents/13400067/14601182/Logo_Uninorte.jpg/48cf4a2c-1cb9-3ea3-f675-dc4096815673?t=1667419477389" alt="Uninorte logo" style="width:90%; max-width:980px;"/> 
211         </#if> 
212    <div class="pie-inicial">${PieDeFoto.getData()}</div> 
213    </div>   
214    <div class="history-news-template-info mw980"> 
215        <div class="mw980 history-news-template-author"> 
216            <p>Por: ${autor.getData()}</p> 
217            <p> 
218            <#assign fechasucia = .data_model['reserved-article-display-date'].data> 
219            <#assign fechalimpia = fechasucia?keep_after(", ")?keep_before(" +")?keep_before_last(" ")> 
220            ${fechalimpia} 
221            </p> 
222        </div> 
223        <div class="category"> 
224           <!-- nuevo formato de mostrar categoría, se hace uso ahora de tags-->  
225        <#assign cat = .vars['reserved-article-asset-tag-names'].data/> 
226        <#if cat?contains("academia") || cat?contains("cultura y sociedad") || cat?contains("investigación") || cat?contains("salud") || cat?contains("estudiantes") || cat?contains("egresados") || cat?contains("educación") || cat?contains("histórico")> 
227            <#if cat?contains("academia")> 
228             <div class="category1"> 
229            <a href="/web/grupo-prensa/academia" 
230                    target="_blank">ACADEMIA</a> 
231            </div> 
232            <#elseif cat?contains("cultura y sociedad")> 
233            <div class="category1"> 
234            <a href="/web/grupo-prensa/cultura" 
235                    target="_blank">CULTURA Y SOCIEDAD</a> 
236            </div> 
237            <#elseif cat?contains("investigación")> 
238            <div class="category1"> 
239            <a href="/web/grupo-prensa/investigacion" 
240                    target="_blank">INVESTIGACIÓN</a> 
241            </div> 
242            <#elseif cat?contains("salud")> 
243            <div class="category1"> 
244            <a href="/web/grupo-prensa/salud" 
245                    target="_blank">SALUD</a> 
246            </div> 
247            <#elseif cat?contains("estudiantes")> 
248            <div class="category1"> 
249            <a href="/web/grupo-prensa/estudiantes" 
250                    target="_blank">ESTUDIANTES</a> 
251            </div> 
252            <#elseif cat?contains("egresados")> 
253            <div class="category1"> 
254            <a href="/web/grupo-prensa/noticias-egresados" 
255                    target="_blank">EGRESADOS</a> 
256            </div> 
257            <#elseif cat?contains("educación")> 
258            <div class="category1"> 
259            <a href="/web/grupo-prensa/educacion" 
260                    target="_blank">EDUCACIÓN</a> 
261            </div> 
262            <#elseif cat?contains("histórico")> 
263            <div class="category1"> 
264            <a href="/web/grupo-prensa/historico" 
265                    target="_blank">HISTÓRICO</a> 
266            </div> 
267            </#if> 
268        </#if>        
269        </div> 
270    </div> 
271 
272    <div class="mw980 history-news-template-content"> 
273            ${ContenidoDeLaNoticia.getData()} 
274             
275            <!--primer campo de la cita, este fue editado-viejo está en teams--> 
276            <#if citaTexto.getData()?? && citaTexto.getData() !=""> 
277                    <div class="cita-comilla-contenedor"> 
278                    <div class="cita-comilla-borde"> 
279                    <img src="/documents/15916181/30396914/signo-de-comillas-a-la-izquierda+%281%29.png/cbe74105-fddf-f599-6407-38704ab4013e?t=1666364715581" alt=""> 
280                    <div> 
281                    <p id="texto"> 
282                    <i>${citaTexto.getData()}</i> 
283                    </p> 
284                    <p id="autor">${citaTexto.AutorDeLaCita.getData()}</p> 
285                    </div> 
286                    </div> 
287                    </div> 
288            </#if> 
289            <!--hasta acá--> 
290 
291        <#if seccionrepetible.getSiblings()?has_content> 
292            <#list seccionrepetible.getSiblings() as cur_seccionrepetible> 
293                <!--Parrafo--> 
294                <#if cur_seccionrepetible.PVP.getData()?? && cur_seccionrepetible.PVP.getData() !=""> 
295                    <div style="width: fit-content; margin: 0 auto;"> 
296                        <div class="m-bot">${cur_seccionrepetible.PVP.getData()}</div> 
297                    </div> 
298                </#if> 
299 
300                <!--Cita--> 
301                <#if cur_seccionrepetible.CitaOComilln1l3b.getData()?? && 
302                    cur_seccionrepetible.CitaOComilln1l3b.getData() !=""> 
303                     
304                    <div class="cita-comilla-contenedor"> 
305                    <div class="cita-comilla-borde"> 
306                    <img src="/documents/15916181/30396914/signo-de-comillas-a-la-izquierda+%281%29.png/cbe74105-fddf-f599-6407-38704ab4013e?t=1666364715581" alt=""> 
307                    <div> 
308                    <p id="texto"> 
309                    <i>${cur_seccionrepetible.CitaOComilln1l3b.getData()}</i> 
310                    </p> 
311                    <p id="autor">${cur_seccionrepetible.CitaOComilln1l3b.AutorDeLaCitaflb9.getData()}</p> 
312                    </div> 
313                    </div> 
314                    </div> 
315                     
316                </#if> 
317            </#list> 
318        </#if> 
319    </div> 
320    <!-- carrusel --> 
321    <#assign contador_galeria=1> 
322    <div id="carouselExampleControls" class="carousel slide" data-ride="carousel"> 
323        <div class="carousel-inner"> 
324        <#if galeria.galeriaImagen.getSiblings()?has_content> 
325        	<#list galeria.galeriaImagen.getSiblings() as cur_galeria_galeriaImagen> 
326        		<#if contador_galeria==1> 
327        		    <div class="carousel-item active"> 
328                        <#if (cur_galeria_galeriaImagen.getData())?? && cur_galeria_galeriaImagen.getData() != ""> 
329                			<img alt="${cur_galeria_galeriaImagen.getAttribute("alt")}" data-fileentryid="${cur_galeria_galeriaImagen.getAttribute("fileEntryId")}" src="${cur_galeria_galeriaImagen.getData()}" /> 
330                			<p style="margin: 0 1rem;"> 
331                			    ${galeria.galeriaImagen.PieDeFoto1.getData()} 
332                			</p> 
333                		</#if> 
334                    </div> 
335        		<#else> 
336        		    <div class="carousel-item"> 
337                        <#if (cur_galeria_galeriaImagen.getData())?? && cur_galeria_galeriaImagen.getData() != ""> 
338                			<img alt="${cur_galeria_galeriaImagen.getAttribute("alt")}" data-fileentryid="${cur_galeria_galeriaImagen.getAttribute("fileEntryId")}" src="${cur_galeria_galeriaImagen.getData()}" /> 
339                			<p style="margin: 0 1rem;">${galeria.galeriaImagen.PieDeFoto1.getData()}</p> 
340                		</#if> 
341                    </div> 
342        		</#if> 
343        		<#assign contador_galeria=contador_galeria + 1> 
344        	</#list> 
345        </#if> 
346             
347        </div> 
348        <a class="carousel-control-prev" href="#carouselExampleControls" role="button" data-slide="prev"> 
349            <span class="carousel-control-prev-icon" aria-hidden="true"></span> 
350            <span class="sr-only">Previous</span> 
351        </a> 
352        <a class="carousel-control-next" href="#carouselExampleControls" role="button" data-slide="next"> 
353            <span class="carousel-control-next-icon" aria-hidden="true"></span> 
354            <span class="sr-only">Next</span> 
355        </a> 
356    </div> 
357 
358    <div class="buttons_cont"> 
359        <p class="bttn"> 
360            <a id="bttn_tw" target="_blank"><img alt="" 
361                    src="https://www.uninorte.edu.co/documents/15916181/26880663/twitter-icon-rel-home.png/76c3b24b-0fb2-cb1d-e4e8-18a1011c7dbb?t=1654696845822" 
362                    style="max-width: 30px" /></a> 
363        </p> 
364 
365        <p class="bttn"> 
366            <a id="bttn_fb" target="_blank"><img alt="" 
367                    src="https://www.uninorte.edu.co/documents/15916181/26880663/facebook-icon-rel-home.png/39b55b6d-5d1d-6d3a-ccc7-752ee26bfff7?t=1654696845712" 
368                    style="max-width: 30px" /></a> 
369        </p> 
370 
371        <p class="bttn"> 
372            <a id="bttn_wp" target="_blank"><img alt="" 
373                    src="https://www.uninorte.edu.co/documents/15916181/26880663/whatsapp-icon-rel-home.png/791cf726-e5cb-ff3e-4d78-79e2f5be5dda?t=1654696845955" 
374                    style="max-width: 30px" /></a> 
375        </p> 
376 
377        <p class="bttn"> 
378            <a id="bttn_lk" target="_blank"><img alt="" 
379                    src="https://www.uninorte.edu.co/documents/15916181/26880663/linkedin-icon-rel-home.png/695ab08e-679b-8c67-0a4e-7cbe2f7377fa?t=1654696845571" 
380                    style="max-width: 30px" /></a> 
381        </p> 
382    </div> 
383</div> 
384<script> 
385    var now = new Date().toISOString().slice(0, 10); 
386    const urlFromThis = (window.location.href).replace('&', '%26'); 
387    document.getElementById('fecha-publicacion').textContent = now; 
388    document.querySelector('meta[name="url"]').setAttribute("content", urlFromThis); 
389    document.querySelector('meta[name="twitter:url"]').setAttribute("content", urlFromThis); 
390 
391    const categoria = document.getElementById('categoria'); 
392    if (categoria.textContent == 'investigacion') { 
393        categoria.textContent = 'Investigación'; 
394    } else if (categoria.textContent == 'cultura-y-sociedad') { 
395        categoria.textContent = 'Cultura y sociedad'; 
396    } else if (categoria.textContent == 'proyeccion-social') { 
397        categoria.textContent = 'Proyección Social'; 
398    } else if (categoria.textContent == 'salud') { 
399        categoria.textContent = 'Salud'; 
400
401    else if (categoria.textContent == 'academia') { 
402        categoria.textContent = 'Academia'; 
403    } else if (categoria.textContent == 'estudiantes') { 
404        categoria.textContent = 'Estudiantes'; 
405    } else if (categoria.textContent == 'noticias-egresados') { 
406        categoria.textContent = 'Egresados'; 
407
408 
409 
410    const linea = document.getElementById('linea'); 
411    linea.textContent = ' - '; 
412    const categoria2 = document.getElementById('categoria2'); 
413    if (categoria2.textContent == 'none') { 
414        categoria2.textContent = ''; 
415        linea.textContent = ''; 
416    } else if (categoria2.textContent == 'investigacion1') { 
417        categoria2.href = "https://www.uninorte.edu.co/web/grupo-prensa/investigacion"; 
418        categoria2.textContent = 'Investigación'; 
419    } else if (categoria2.textContent == 'cultura-y-sociedad1') { 
420        categoria2.href = "https://www.uninorte.edu.co/web/grupo-prensa/cultura"; 
421        categoria2.textContent = 'Cultura y sociedad'; 
422    } else if (categoria2.textContent == 'proyeccion-social1') { 
423        categoria2.href = "https://www.uninorte.edu.co/web/grupo-prensa/proyeccion-social"; 
424        categoria2.textContent = 'Proyección Social'; 
425    } else if (categoria2.textContent == 'salud1') { 
426        categoria2.href = "https://www.uninorte.edu.co/web/grupo-prensa/salud"; 
427        categoria2.textContent = 'Salud'; 
428
429    else if (categoria2.textContent == 'academia1') { 
430        categoria2.href = "https://www.uninorte.edu.co/web/grupo-prensa/academia"; 
431        categoria2.textContent = 'Academia'; 
432    } else if (categoria2.textContent == 'estudiantes1') { 
433        categoria2.href = "https://www.uninorte.edu.co/web/grupo-prensa/estudiantes"; 
434        categoria2.textContent = 'Estudiantes'; 
435    } else if (categoria2.textContent == 'egresados1') { 
436        categoria2.href = "https://www.uninorte.edu.co/web/grupo-prensa/noticias-egresados"; 
437        categoria2.textContent = 'Egresados'; 
438
439 
440    const facebookComment = document.querySelector('.fb-comments'); 
441    facebookComment.setAttribute('data-href', urlFromThis); 
442 
443    document.getElementById('twitter-share').href = 'https://twitter.com/intent/tweet?url=' + urlFromThis; 
444    document.getElementById('fb-share').href = 'https://www.facebook.com/sharer/sharer.php?u=' + urlFromThis; 
445    document.getElementById('linkedin-share').href = 'https://www.linkedin.com/sharing/share-offsite/?url=' + urlFromThis; 
446    document.getElementById('wsapp-share').href = 'https://api.whatsapp.com/send?text=' + urlFromThis; 
447 
448    const copyText = () => { 
449        const aux = document.createElement("input"); 
450        aux.setAttribute("value", window.location.href); 
451        document.body.appendChild(aux); 
452        aux.select(); 
453        document.execCommand("copy"); 
454        document.body.removeChild(aux); 
455        openSnack(); 
456
457 
458    const snack = document.getElementById('snack'); 
459 
460    const openSnack = () => { 
461        snack.classList.remove('close'); 
462        snack.classList.add('show'); 
463        setTimeout(closeSnack, 3000) 
464
465 
466 
467    const closeSnack = () => { 
468        snack.classList.remove('show'); 
469        snack.classList.add('close'); 
470
471</script> 
472<script> 
473    // Get the element 
474    $tw_link = document.querySelector("#bttn_tw"); 
475    $fb_link = document.querySelector("#bttn_fb"); 
476    $wp_link = document.querySelector("#bttn_wp"); 
477    $lk_link = document.querySelector("#bttn_lk"); 
478    $href = window.location.href; 
479    $href_cod = $href.replace("&", "%26").toString(); 
480    $tw_url = "https://twitter.com/intent/tweet?text=${.vars['reserved-article-title'].data}%20" + $href_cod; 
481    $fb_url = "https://www.facebook.com/sharer/sharer.php?u=" + $href_cod; 
482    $wp_url = "https://api.whatsapp.com/send?text=${.vars['reserved-article-title'].data}%20" + $href_cod; 
483    $lk_url = "https://www.linkedin.com/sharing/share-offsite/?url=" + $href_cod; 
484    // Set url attribute of the link 
485 
486    $fb_link.setAttribute("href", $fb_url); 
487    $lk_link.setAttribute("href", $lk_url); 
488    $tw_link.setAttribute("href", $tw_url); 
489    $wp_link.setAttribute("href", $wp_url); 
490</script> 

Más noticias