Home
IFrame
VIDEO_HOME_INSTITUCIONAL_BV1
PROGRAMAS_ACADEMICOS_HOME_INSTITUCIONAL_BC4
PROGRAMAS ACADÉMICOS
NOTICIAS_PRINCIPALES_HOME_BN1
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing: ==> root.selectSingleNode("dynamic-element[@name='titulo']/dynamic-content") [in template "97#123#76831" at line 51, column 43] ---- 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 titulo = root.selectSingleNod... [in template "97#123#76831" at line 51, column 25] ----
1<#assign langIdm = themeDisplay.getLanguageId() />
2<#assign url_public = themeDisplay.getPathFriendlyURLPublic()>
3<#assign JournalArticleLocalServiceUtil = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")/>
4
5<#assign articles = []/>
6
7
8
9
10<#if contenido1.getData()?has_content??>
11 <#if contenido1.getData()?has_content && contenido1.getData()?matches("[0-9]+") >
12 <#assign article = JournalArticleLocalServiceUtil.getLatestArticle(contenido1.getData()?number)>
13 <#assign articles = articles + [article]/>
14 </#if>
15</#if>
16<#if contenido2.getSiblings()?has_content>
17 <#list contenido2.getSiblings() as cur_contenido2>
18 <#if cur_contenido2.getData()?has_content>
19 <#assign article2 = JournalArticleLocalServiceUtil.getLatestArticle(cur_contenido2.getData()?number)>
20 <#assign articles = articles + [article2]/>
21 </#if>
22 </#list>
23</#if>
24
25<#assign con = 0/>
26<#--assign urlBlock = ''/-->
27<#assign arrayTitle = [] />
28<#assign arrayAbstract = [] />
29<#assign arrayImg = [] />
30<#assign arrayUrl = [] />
31<section class="container-fluid container-bn2">
32 <#--section class="container-xxxxl"-->
33 <section class="bn2">
34 <article class="row no-gutters">
35 <article class="row no-gutters w-100 pt-5 pb-5">
36 <section class="col-12">
37 <#if title.getData()?has_content>
38 <h1 class="bn2-title"><i class="fas fa-circle text-white" style="padding-right: 40px;"></i>${title.getData()}</h1>
39 </#if>
40 </section>
41 </article>
42 <#-- EMPIEZA LAS COLUMNAS -->
43 <#if articles?has_content>
44 <#list articles as cur_art>
45 <#assign size = articles?size>
46 <#assign con ++>
47 <#assign document = saxReaderUtil.read(cur_art.getContentByLocale(locale)) />
48 <#assign root = document.getRootElement()>
49 <#--assign tag = root.selectSingleNode("dynamic-element[@name='tag']/dynamic-content").getText()/-->
50 <#--assign seccion = root.selectSingleNode("dynamic-element[@name='seccion']/dynamic-content").getText()/-->
51 <#assign titulo = root.selectSingleNode("dynamic-element[@name='titulo']/dynamic-content").getText()/>
52 <#-- Se asigna el valor de titulo en el arrayTitle, por cada iteracion se guarda un nuevo valor en el arreglo-->
53 <#assign arrayTitle = arrayTitle + [titulo] />
54 <#assign abstract = root.selectSingleNode("dynamic-element[@name='abstract']/dynamic-content").getText()/>
55 <#-- Se asigna el valor de titulo en el arrayAbstract, por cada iteracion se guarda un nuevo valor en el arreglo-->
56 <#assign arrayAbstract = arrayAbstract + [abstract] />
57 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='img']")>
58 <#assign imgNews = xPathSelector.selectSingleNode(root).getStringValue()>
59 <#if imgNews?? >
60 <#attempt>
61 <#assign imgJson = jsonFactoryUtil.createJSONObject(imgNews)>
62 <#assign urlimg = "/documents/"+ imgJson.groupId +"/" +imgJson.fileEntryId +"/"+ imgJson.name +"/"+imgJson.uuid >
63 <#assign arrayImg = arrayImg + [urlimg] />
64 <#recover>
65 <#assign urlimg = "" >
66 <#assign arrayImg = arrayImg + [urlimg] />
67 </#recover>
68 </#if>
69 <#-- Se asigna el valor de titulo en el arrayImg, por cada iteracion se guarda un nuevo valor en el arreglo-->
70 <#--assign arrayImg = arrayImg + [urlimg] /-->
71
72 <#--
73 <#assign foto = root.selectSingleNode("dynamic-element[@name='foto']/dynamic-content").getText()/>
74 -->
75 <#--assign compartir = root.selectSingleNode("dynamic-element[@name='compartir']/dynamic-content").getText()/-->
76 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='img']")>
77 <#assign Basica = themeDisplay.getSiteGroup().getExpandoBridge().getAttribute("Basica")>
78 <#assign Basica_Liga = themeDisplay.getSiteGroup().getExpandoBridge().getAttribute("Basica_Liga")>
79
80 <#if cur_art.getStructureId() == Basica_Liga >
81
82 <#assign link = root.selectSingleNode("dynamic-element[@name='link']/dynamic-content").getText()/>
83 <#assign linkjson = jsonFactoryUtil.createJSONObject(link)>
84 <#assign url = root.selectSingleNode("dynamic-element[@name='url']/dynamic-content").getText()/>
85 </#if>
86 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='img']")>
87 <#assign imgNews = xPathSelector.selectSingleNode(root).getStringValue()>
88 <#assign imgJson = jsonFactoryUtil.createJSONObject(imgNews)>
89 <#assign urlimg = "/documents/"+ imgJson.groupId +"/" +imgJson.fileEntryId +"/"+ imgJson.name +"/"+imgJson.uuid >
90
91
92 <#if cur_art.getStructureId() == Basica_Liga >
93 <#if link?has_content>
94
95 <#assign linkid = link?split("@")>
96 <#assign groupUtil = serviceLocator.findService('com.liferay.portal.kernel.service.GroupLocalService')>
97 <#assign group = groupUtil.getGroup(cur_art.getGroupId())>
98 <#assign groupFriendly = group.getFriendlyURL()>
99 <#assign layoutService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")>
100 <#assign layout = layoutService.getLayout(linkjson.getLong("groupId") , linkjson.getBoolean("privateLayout"),linkjson.getLong("layoutId"))>
101 <#assign layoutFriendly = layout.getFriendlyURL()>
102 <#assign link_page = "${url_public}${groupFriendly}${layoutFriendly}">
103 <#assign urlCard = link_page>
104 <#assign arrayUrl = arrayUrl + [urlCard]>
105 <#else>
106 <#assign link_page = url>
107 <#assign urlCard = "${url}">
108 <#assign arrayUrl = arrayUrl + [urlCard]>
109 </#if>
110 <#else>
111 <#assign urldetalle = "/web/general/detalle" />
112 <#assign urlCard = '${urldetalle}?group_id=${cur_art.getResourcePrimKey()}'>
113 <#assign arrayUrl = arrayUrl + [urlCard]>
114 </#if>
115 <#if size != 3 >
116 <#if con == 1>
117 <article class="row no-gutters w-100">
118 <section class="col-12">
119 <#if langIdm == 'es_ES'>
120 <span class="text-center" style="color:red; font-size:4.5em;">El numero de contenidos debe ser 3</span>
121 </#if>
122 <#if langIdm == 'en_US'>
123 <span class="text-center" style="color:red; font-size:4.5em;">The number of contents must be 3</span>
124 </#if>
125 <#if langIdm == 'fr_FR'>
126 <span class="text-center" style="color:red; font-size:4.5em;">Le nombre de contenus doit être 3</span>
127 </#if>
128 </section>
129 </article>
130 </#if>
131 <#else> <#-- si el numero de los articulos es tres se comienza a maquilar la vista -->
132
133 <#-- validacion para controlar que el contenido se muestre solo una vez ya que el código esta dentro de un ciclo -->
134 <#if (con == 3)>
135 <article class="row no-gutters w-100 d-none d-lg-flex">
136 <section class="col-8 pr-0">
137 <!-- style="background-image: url('BN1__1.jpg');"-->
138 <#if arrayUrl[0] != "">
139 <a href="${arrayUrl[0]}" target="_blank">
140 </#if>
141
142
143 <div class="img-bn2-block1 img-bn1 img-bn2-block1" style="background-image: linear-gradient(to right, rgba(3, 3, 3, 0.6) 56%, rgba(53, 58, 77, 0) 95%),url('${arrayImg[0]}');">
144 <article class="row no-gutters bn2-titles bn2-texto-principal w-100">
145 <section class="col-12">
146 <span class="bn2-txt-b1">${arrayTitle[0]}</span>
147 <p class="fecha-bn2 w-100">${arrayAbstract[0]}</p>
148 </section>
149 </article>
150 </div>
151 <#if arrayUrl[0] != "">
152 </a>
153 </#if>
154 </section>
155 <section class="col-4 pl-0">
156 <article class="row no-gutters h-100">
157 <section class="col-12 h-50">
158 <#if arrayUrl[1] != "">
159 <a href="${arrayUrl[1]}" target="_blank">
160 </#if>
161
162 <div class="img-bn1 img-bn2-block1 h-100" style="background-image: linear-gradient(to right, rgba(3, 3, 3, 0.6) 56%, rgba(53, 58, 77, 0) 95%),url('${arrayImg[1]}');">
163 <article class="row no-gutters bn2-titles titulo-bloques">
164 <section class="col-12">
165 <span class="bn2-txt-b2">${arrayTitle[1]}</span>
166 </section>
167 </article>
168 </div>
169 <#if arrayUrl[1] != "">
170 </a>
171 </#if>
172 </section>
173 <section class="col-12 h-50">
174 <#if arrayUrl[2] != "">
175 <a href="${arrayUrl[2]}" target="_blank">
176 </#if>
177 <div class="img-bn1 img-bn2-block1 h-100" style="background-image: linear-gradient(to right, rgba(3, 3, 3, 0.6) 56%, rgba(53, 58, 77, 0) 95%),url('${arrayImg[2]}');">
178 <article class="row no-gutters bn2-titles titulo-bloques">
179 <section class="col-12">
180 <span class="bn2-txt-b2">${arrayTitle[2]}</span>
181 </section>
182 </article>
183 </div>
184 <#if arrayUrl[2] != "">
185 </a>
186 </#if>
187 </section>
188 </article>
189 </section>
190 </article>
191 <article class="col-12 d-none d-lg-flex">
192 <section class="row no-gutters justify-content-end w-100">
193 <article class="col-12 col-md-2">
194 <a href="${enlace.getData()}" class="text-center mt-5 mb-5 pt-2 pb-2 btnmas">
195 <i class="fal fa-plus-circle"></i>
196 <p>${txtViinculo.getData()}</p>
197 </a>
198 </article>
199 </section>
200 </article>
201 <!-- Aqui va seccón para movil y tablet -->
202 <article class="row no-gutters w-100 d-flex d-lg-none">
203 <div id="carrusel-bn2" class="carousel owl-carousel">
204 <div class="item">
205 <#if arrayUrl[0] != "">
206 <a href="${arrayUrl[0]}" target="_blank"> <!-- style="background-image: url('BN1__1.jpg');"-->
207 </#if>
208
209 <div class="img-bn1 img-bn2-block1" style="background-image: linear-gradient(rgba(44, 52, 58, 0.6) 100%, rgba(44, 52, 58, 0.6) 100%, rgba(44, 52, 58, 0.6) 100%), url('${arrayImg[0]}');">
210 <div class="row no-gutters w-100 h-100 justify-content-center" style="position: absolute; bottom: 0;">
211 <div class="col-10 col-text-bn2">
212 <p class="text-left cardTxt mb-2">${arrayTitle[0]}</p>
213
214
215 </div>
216 </div>
217
218
219 </div>
220 <#if arrayUrl[0] != "">
221 </a>
222 </#if>
223 </div>
224 <div class="item">
225 <#if arrayUrl[1] != "">
226 <a href="${arrayUrl[1]}" target="_blank"> <!-- style="background-image: url('BN1__1.jpg');"-->
227 </#if>
228
229 <div class="img-bn1 img-bn2-block1" style="background-image: linear-gradient(rgba(44, 52, 58, 0.6) 100%, rgba(44, 52, 58, 0.6) 100%, rgba(44, 52, 58, 0.6) 100%), url('${arrayImg[1]}');">
230 <div class="row no-gutters w-100 h-100 justify-content-center" style="position: absolute; bottom: 0;">
231 <div class="col-10 col-text-bn2">
232 <p class="text-left cardTxt mb-2">${arrayTitle[1]}</p>
233
234
235 </div>
236 </div>
237
238
239 </div>
240 <#if arrayUrl[1] != "">
241 </a>
242 </#if>
243 </div>
244
245 <div class="item">
246 <#if arrayUrl[2] != "">
247 <a href="${arrayUrl[2]}" target="_blank"> <!-- style="background-image: url('BN1__1.jpg');"-->
248 </#if>
249
250 <div class="img-bn1 img-bn2-block1" style="background-image: linear-gradient(rgba(44, 52, 58, 0.6) 100%, rgba(44, 52, 58, 0.6) 100%, rgba(44, 52, 58, 0.6) 100%), url('${arrayImg[2]}');">
251 <div class="row no-gutters w-100 h-100 justify-content-center" style="position: absolute; bottom: 0;">
252 <div class="col-10 col-text-bn2">
253 <p class="text-left cardTxt mb-2">${arrayTitle[2]}</p>
254
255
256 </div>
257 </div>
258
259
260 </div>
261 <#if arrayUrl[2] != "">
262 </a>
263 </#if>
264 </div>
265
266 </div>
267 </article>
268 </#if>
269
270 </#if>
271 </#list>
272 </#if>
273 </article>
274 </section>
275 <article class="col-12 d-block d-lg-none pl-0 pr-0">
276 <section class="row no-gutters justify-content-end">
277 <article class="col-12">
278 <a href="${enlace.getData()}" class="btnmas">
279 <i class="fal fa-plus-circle"></i>
280 <p>${txtViinculo.getData()}</p>
281 </a>
282 </article>
283 </section>
284 </article>
285 <#--/section-->
286</section>
287
288<style type="text/css">
289.bn2 {
290 background-color: #f2f2f5;
291 padding-left: 3.9%;
292 padding-right: 3.9%;
293}
294.container-it{
295 padding-left: 7.5%;
296 padding-right: 7.5%;
297}
298.container-bn2 {
299 padding: 3.6% 3.6%;
300}
301
302.img-bn1 {
303 background-position: center;
304 background-size: cover;
305 background-repeat: no-repeat;
306}
307.bn2-txt-b1 {
308 font-family: 'Degular-Semibold';
309 font-size: 2.5em;
310 font-weight: 600;
311 font-stretch: normal;
312 font-style: normal;
313 line-height: 0.95;
314 letter-spacing: -1.07px;
315 text-align: left;
316 color: #fff;
317
318}
319.bn2-txt-b2 {
320 font-family: 'Degular-Semibold';
321 font-size: 1.8em;
322 font-weight: 600;
323 font-stretch: normal;
324 font-style: normal;
325 line-height: 1;
326 letter-spacing: -0.68px;
327 text-align: left;
328 color: #fff;
329
330}
331.bn2-titles{
332 position: absolute;
333 bottom: 0;
334}
335.bn2-texto-principal{
336 padding: 0 2.7em;
337}
338.fecha-bn2 {
339 height: auto;
340 /*margin: 7.6px 316px 0 0;*/
341 font-family: 'Degular-Bold';
342 font-size: 1.2em;
343 font-weight: bold;
344 font-stretch: normal;
345 font-style: normal;
346 line-height: normal;
347 letter-spacing: normal;
348 text-align: left;
349 color: #fff;
350 margin-top: 10px;
351 margin-bottom: 3.4em;
352 text-shadow: black 0 0 6px;
353}
354
355
356
357.bn2-title {
358 font-family: 'Degular-Bold';
359 font-size: 2em;
360 font-weight: bold;
361 font-stretch: normal;
362 font-style: normal;
363 line-height: normal;
364 letter-spacing: 1.11px;
365 text-align: left;
366 color: #004270;
367 text-transform: uppercase;
368}
369.cardTxt{
370font-family: 'Degular-Semibold';
371 font-size: 1.8em;
372 font-weight: 600;
373 font-stretch: normal;
374 font-style: normal;
375 line-height: 1;
376 letter-spacing: normal;
377 text-align: left;
378 color: #fff;
379 position: absolute;
380 bottom: 20px;
381}
382.owl-dot{
383 height: 10px;
384 width: 10px;
385 margin: 0 5px;
386 outline: none;
387 border-radius: 50%;
388 transition: all 0.3s ease;
389}
390.owl-dot.active,
391.owl-dot:hover{
392 background: #fff !important;
393}
394button.owl-dot {
395 background-color: gray !important;
396}
397.owl-dots {
398 text-align: center !important;
399 -webkit-tap-highlight-color: transparent;
400 margin-top: 10px;
401}
402.owl-dots{
403 margin-top:30px;
404 margin-bottom:30px
405}
406@media(min-width: 300px){
407 .img-bn2-block1 {
408 height: 400px;
409 }
410 /*.cardTxt{
411 position: initial;
412 }*/
413/* .bn2{
414 height: 665px;
415 }*/
416}
417@media(min-width: 768px){
418 .img-bn2-block1 {
419 height: 473px;
420 }
421 .cardTxt{
422 width: 514px;;
423 margin: 0 auto;
424 }
425}
426@media (min-width:992px){
427 .img-bn2-block1 {
428 height: 531px;
429 }
430}
431@media(min-width: 1920px){
432 .img-bn2-block1 {
433 height: 708px;
434 }
435}
436@media(min-width:300px) and (max-width:991.5px){
437
438.bn2-title{
439 font-size:1.4em;
440
441 }
442
443.bn2-title i{
444
445 font-size:20px !important;
446 padding-right:10px !important;
447}
448
449
450
451}
452.titulo-bloques{
453 margin: 0 2.7em;
454 margin-bottom: 3.4em;
455}
456.col-text-bn2{
457 display: flex;
458 align-items: center;
459}
460@media(max-width:768px){
461 .bn2-title i {
462 font-size:24px !important;
463 }
464}
465@media(min-width:769px){
466 .bn2-title i {
467 font-size:32px !important;
468 }
469}
470.bn2-txt-b1, .fecha-bn2, .bn2-txt-b2 {
471display: -webkit-box;
472 -webkit-line-clamp: 3;
473 -webkit-box-orient: vertical;
474 overflow: hidden;
475 text-overflow: ellipsis;
476}
477</style>
478
479
480<script>
481$( document ).ready(function() {
482
483
484 $("#carrusel-bn2").owlCarousel({
485 margin: 20,
486 loop: true,
487 autoplay: true,
488 autoplayTimeout: 5000,
489 autoplayHoverPause: true,
490 dots: false,
491 nav: true,
492 startPosition : 0,
493 navText: ['<i class="fal fa-chevron-circle-left"></i>','<i class="fal fa-chevron-circle-right"></i>'],
494 responsive: {
495 0:{
496 items:1,
497 nav: false,
498 dots: true
499 },
500 992:{
501 items:0
502 }
503 }
504 });
505});
506</script>
NOTA_INVESTIGACION_HOME

Satélite del ITESO viaja con la NASA
Un satélite diseñado por estudiantes, egresados y profesores del ITESO, en colaboración con el IPN y la UNAM, ya ha realizado tres vuelos suborbitales con la NASA. Se espera que este 2025 vuelva a despegar.
Ver más