null Acreditación EFR Uninorte

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

----
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: #if citaTexto.getData()?? && citaText...  [in template "20097#20123#19422661" at line 278, column 13]
----
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            <#if autor??> 
217            <p>Por: ${autor.getData()}</p> 
218            </#if> 
219            <p> 
220            <#assign fechasucia = .data_model['reserved-article-display-date'].data> 
221            <#assign fechalimpia = fechasucia?keep_after(", ")?keep_before(" +")?keep_before_last(" ")> 
222            ${fechalimpia} 
223            </p> 
224        </div> 
225        <div class="category"> 
226           <!-- nuevo formato de mostrar categoría, se hace uso ahora de tags-->  
227        <#assign cat = .vars['reserved-article-asset-tag-names'].data/> 
228        <#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")> 
229            <#if cat?contains("academia")> 
230             <div class="category1"> 
231            <a href="/web/grupo-prensa/academia" 
232                    target="_blank">ACADEMIA</a> 
233            </div> 
234            <#elseif cat?contains("cultura y sociedad")> 
235            <div class="category1"> 
236            <a href="/web/grupo-prensa/cultura" 
237                    target="_blank">CULTURA Y SOCIEDAD</a> 
238            </div> 
239            <#elseif cat?contains("investigación")> 
240            <div class="category1"> 
241            <a href="/web/grupo-prensa/investigacion" 
242                    target="_blank">INVESTIGACIÓN</a> 
243            </div> 
244            <#elseif cat?contains("salud")> 
245            <div class="category1"> 
246            <a href="/web/grupo-prensa/salud" 
247                    target="_blank">SALUD</a> 
248            </div> 
249            <#elseif cat?contains("estudiantes")> 
250            <div class="category1"> 
251            <a href="/web/grupo-prensa/estudiantes" 
252                    target="_blank">ESTUDIANTES</a> 
253            </div> 
254            <#elseif cat?contains("egresados")> 
255            <div class="category1"> 
256            <a href="/web/grupo-prensa/noticias-egresados" 
257                    target="_blank">EGRESADOS</a> 
258            </div> 
259            <#elseif cat?contains("educación")> 
260            <div class="category1"> 
261            <a href="/web/grupo-prensa/educacion" 
262                    target="_blank">EDUCACIÓN</a> 
263            </div> 
264            <#elseif cat?contains("histórico")> 
265            <div class="category1"> 
266            <a href="/web/grupo-prensa/historico" 
267                    target="_blank">HISTÓRICO</a> 
268            </div> 
269            </#if> 
270        </#if>        
271        </div> 
272    </div> 
273 
274    <div class="mw980 history-news-template-content"> 
275            ${ContenidoDeLaNoticia.getData()} 
276             
277            <!--primer campo de la cita, este fue editado-viejo está en teams--> 
278            <#if citaTexto.getData()?? && citaTexto.getData() !=""> 
279                    <div class="cita-comilla-contenedor"> 
280                    <div class="cita-comilla-borde"> 
281                    <img src="/documents/15916181/30396914/signo-de-comillas-a-la-izquierda+%281%29.png/cbe74105-fddf-f599-6407-38704ab4013e?t=1666364715581" alt=""> 
282                    <div> 
283                    <p id="texto"> 
284                    <i>${citaTexto.getData()}</i> 
285                    </p> 
286                    <p id="autor">${citaTexto.AutorDeLaCita.getData()}</p> 
287                    </div> 
288                    </div> 
289                    </div> 
290            </#if> 
291            <!--hasta acá--> 
292 
293        <#if seccionrepetible.getSiblings()?has_content> 
294            <#list seccionrepetible.getSiblings() as cur_seccionrepetible> 
295                <!--Parrafo--> 
296                <#if cur_seccionrepetible.PVP.getData()?? && cur_seccionrepetible.PVP.getData() !=""> 
297                    <div style="width: fit-content; margin: 0 auto;"> 
298                        <div class="m-bot">${cur_seccionrepetible.PVP.getData()}</div> 
299                    </div> 
300                </#if> 
301 
302                <!--Cita--> 
303                <#if cur_seccionrepetible.CitaOComilln1l3b.getData()?? && 
304                    cur_seccionrepetible.CitaOComilln1l3b.getData() !=""> 
305                     
306                    <div class="cita-comilla-contenedor"> 
307                    <div class="cita-comilla-borde"> 
308                    <img src="/documents/15916181/30396914/signo-de-comillas-a-la-izquierda+%281%29.png/cbe74105-fddf-f599-6407-38704ab4013e?t=1666364715581" alt=""> 
309                    <div> 
310                    <p id="texto"> 
311                    <i>${cur_seccionrepetible.CitaOComilln1l3b.getData()}</i> 
312                    </p> 
313                    <p id="autor">${cur_seccionrepetible.CitaOComilln1l3b.AutorDeLaCitaflb9.getData()}</p> 
314                    </div> 
315                    </div> 
316                    </div> 
317                     
318                </#if> 
319            </#list> 
320        </#if> 
321    </div> 
322    <!-- carrusel --> 
323    <#assign contador_galeria=1> 
324    <div id="carouselExampleControls" class="carousel slide" data-ride="carousel"> 
325        <div class="carousel-inner"> 
326        <#if galeria.galeriaImagen.getSiblings()?has_content> 
327        	<#list galeria.galeriaImagen.getSiblings() as cur_galeria_galeriaImagen> 
328        		<#if contador_galeria==1> 
329        		    <div class="carousel-item active"> 
330                        <#if (cur_galeria_galeriaImagen.getData())?? && cur_galeria_galeriaImagen.getData() != ""> 
331                			<img alt="${cur_galeria_galeriaImagen.getAttribute("alt")}" data-fileentryid="${cur_galeria_galeriaImagen.getAttribute("fileEntryId")}" src="${cur_galeria_galeriaImagen.getData()}" /> 
332                			<p style="margin: 0 1rem;"> 
333                			    ${galeria.galeriaImagen.PieDeFoto1.getData()} 
334                			</p> 
335                		</#if> 
336                    </div> 
337        		<#else> 
338        		    <div class="carousel-item"> 
339                        <#if (cur_galeria_galeriaImagen.getData())?? && cur_galeria_galeriaImagen.getData() != ""> 
340                			<img alt="${cur_galeria_galeriaImagen.getAttribute("alt")}" data-fileentryid="${cur_galeria_galeriaImagen.getAttribute("fileEntryId")}" src="${cur_galeria_galeriaImagen.getData()}" /> 
341                			<p style="margin: 0 1rem;">${galeria.galeriaImagen.PieDeFoto1.getData()}</p> 
342                		</#if> 
343                    </div> 
344        		</#if> 
345        		<#assign contador_galeria=contador_galeria + 1> 
346        	</#list> 
347        </#if> 
348             
349        </div> 
350        <a class="carousel-control-prev" href="#carouselExampleControls" role="button" data-slide="prev"> 
351            <span class="carousel-control-prev-icon" aria-hidden="true"></span> 
352            <span class="sr-only">Previous</span> 
353        </a> 
354        <a class="carousel-control-next" href="#carouselExampleControls" role="button" data-slide="next"> 
355            <span class="carousel-control-next-icon" aria-hidden="true"></span> 
356            <span class="sr-only">Next</span> 
357        </a> 
358    </div> 
359 
360    <div class="buttons_cont"> 
361        <p class="bttn"> 
362            <a id="bttn_tw" target="_blank"><img alt="" 
363                    src="https://www.uninorte.edu.co/documents/15916181/26880663/twitter-icon-rel-home.png/76c3b24b-0fb2-cb1d-e4e8-18a1011c7dbb?t=1654696845822" 
364                    style="max-width: 30px" /></a> 
365        </p> 
366 
367        <p class="bttn"> 
368            <a id="bttn_fb" target="_blank"><img alt="" 
369                    src="https://www.uninorte.edu.co/documents/15916181/26880663/facebook-icon-rel-home.png/39b55b6d-5d1d-6d3a-ccc7-752ee26bfff7?t=1654696845712" 
370                    style="max-width: 30px" /></a> 
371        </p> 
372 
373        <p class="bttn"> 
374            <a id="bttn_wp" target="_blank"><img alt="" 
375                    src="https://www.uninorte.edu.co/documents/15916181/26880663/whatsapp-icon-rel-home.png/791cf726-e5cb-ff3e-4d78-79e2f5be5dda?t=1654696845955" 
376                    style="max-width: 30px" /></a> 
377        </p> 
378 
379        <p class="bttn"> 
380            <a id="bttn_lk" target="_blank"><img alt="" 
381                    src="https://www.uninorte.edu.co/documents/15916181/26880663/linkedin-icon-rel-home.png/695ab08e-679b-8c67-0a4e-7cbe2f7377fa?t=1654696845571" 
382                    style="max-width: 30px" /></a> 
383        </p> 
384    </div> 
385</div> 
386<script> 
387    var now = new Date().toISOString().slice(0, 10); 
388    const urlFromThis = (window.location.href).replace('&', '%26'); 
389    document.getElementById('fecha-publicacion').textContent = now; 
390    document.querySelector('meta[name="url"]').setAttribute("content", urlFromThis); 
391    document.querySelector('meta[name="twitter:url"]').setAttribute("content", urlFromThis); 
392 
393    const categoria = document.getElementById('categoria'); 
394    if (categoria.textContent == 'investigacion') { 
395        categoria.textContent = 'Investigación'; 
396    } else if (categoria.textContent == 'cultura-y-sociedad') { 
397        categoria.textContent = 'Cultura y sociedad'; 
398    } else if (categoria.textContent == 'proyeccion-social') { 
399        categoria.textContent = 'Proyección Social'; 
400    } else if (categoria.textContent == 'salud') { 
401        categoria.textContent = 'Salud'; 
402
403    else if (categoria.textContent == 'academia') { 
404        categoria.textContent = 'Academia'; 
405    } else if (categoria.textContent == 'estudiantes') { 
406        categoria.textContent = 'Estudiantes'; 
407    } else if (categoria.textContent == 'noticias-egresados') { 
408        categoria.textContent = 'Egresados'; 
409
410 
411 
412    const linea = document.getElementById('linea'); 
413    linea.textContent = ' - '; 
414    const categoria2 = document.getElementById('categoria2'); 
415    if (categoria2.textContent == 'none') { 
416        categoria2.textContent = ''; 
417        linea.textContent = ''; 
418    } else if (categoria2.textContent == 'investigacion1') { 
419        categoria2.href = "https://www.uninorte.edu.co/web/grupo-prensa/investigacion"; 
420        categoria2.textContent = 'Investigación'; 
421    } else if (categoria2.textContent == 'cultura-y-sociedad1') { 
422        categoria2.href = "https://www.uninorte.edu.co/web/grupo-prensa/cultura"; 
423        categoria2.textContent = 'Cultura y sociedad'; 
424    } else if (categoria2.textContent == 'proyeccion-social1') { 
425        categoria2.href = "https://www.uninorte.edu.co/web/grupo-prensa/proyeccion-social"; 
426        categoria2.textContent = 'Proyección Social'; 
427    } else if (categoria2.textContent == 'salud1') { 
428        categoria2.href = "https://www.uninorte.edu.co/web/grupo-prensa/salud"; 
429        categoria2.textContent = 'Salud'; 
430
431    else if (categoria2.textContent == 'academia1') { 
432        categoria2.href = "https://www.uninorte.edu.co/web/grupo-prensa/academia"; 
433        categoria2.textContent = 'Academia'; 
434    } else if (categoria2.textContent == 'estudiantes1') { 
435        categoria2.href = "https://www.uninorte.edu.co/web/grupo-prensa/estudiantes"; 
436        categoria2.textContent = 'Estudiantes'; 
437    } else if (categoria2.textContent == 'egresados1') { 
438        categoria2.href = "https://www.uninorte.edu.co/web/grupo-prensa/noticias-egresados"; 
439        categoria2.textContent = 'Egresados'; 
440
441 
442    const facebookComment = document.querySelector('.fb-comments'); 
443    facebookComment.setAttribute('data-href', urlFromThis); 
444 
445    document.getElementById('twitter-share').href = 'https://twitter.com/intent/tweet?url=' + urlFromThis; 
446    document.getElementById('fb-share').href = 'https://www.facebook.com/sharer/sharer.php?u=' + urlFromThis; 
447    document.getElementById('linkedin-share').href = 'https://www.linkedin.com/sharing/share-offsite/?url=' + urlFromThis; 
448    document.getElementById('wsapp-share').href = 'https://api.whatsapp.com/send?text=' + urlFromThis; 
449 
450    const copyText = () => { 
451        const aux = document.createElement("input"); 
452        aux.setAttribute("value", window.location.href); 
453        document.body.appendChild(aux); 
454        aux.select(); 
455        document.execCommand("copy"); 
456        document.body.removeChild(aux); 
457        openSnack(); 
458
459 
460    const snack = document.getElementById('snack'); 
461 
462    const openSnack = () => { 
463        snack.classList.remove('close'); 
464        snack.classList.add('show'); 
465        setTimeout(closeSnack, 3000) 
466
467 
468 
469    const closeSnack = () => { 
470        snack.classList.remove('show'); 
471        snack.classList.add('close'); 
472
473</script> 
474<script> 
475    // Get the element 
476    $tw_link = document.querySelector("#bttn_tw"); 
477    $fb_link = document.querySelector("#bttn_fb"); 
478    $wp_link = document.querySelector("#bttn_wp"); 
479    $lk_link = document.querySelector("#bttn_lk"); 
480    $href = window.location.href; 
481    $href_cod = $href.replace("&", "%26").toString(); 
482    $tw_url = "https://twitter.com/intent/tweet?text=${.vars['reserved-article-title'].data}%20" + $href_cod; 
483    $fb_url = "https://www.facebook.com/sharer/sharer.php?u=" + $href_cod; 
484    $wp_url = "https://api.whatsapp.com/send?text=${.vars['reserved-article-title'].data}%20" + $href_cod; 
485    $lk_url = "https://www.linkedin.com/sharing/share-offsite/?url=" + $href_cod; 
486    // Set url attribute of the link 
487 
488    $fb_link.setAttribute("href", $fb_url); 
489    $lk_link.setAttribute("href", $lk_url); 
490    $tw_link.setAttribute("href", $tw_url); 
491    $wp_link.setAttribute("href", $wp_url); 
492</script>