Conócenos
IFrame
HISTORIA_DECENIOS_BC4
EL_ITESO_BL5
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing: ==> themeDisplay.getSiteGroup().getExpandoBridge().getAttribute("Basica") [in template "97#123#141411" at line 150, column 19] ---- 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 basica = themeDisplay.getSite... [in template "97#123#141411" at line 150, column 1] ----
1<style>
2.acordion-bl5 button[aria-expanded="true"] a{
3 color:white;
4}
5.acordion-bl5 .collapsed a {
6 color: #42b4e3 !important;
7 text-decoration: none;
8}
9.acordion-bl5 .btn-link {
10 color: #42b4e3;
11 text-decoration: none;
12}
13
14.acordion-bl5 .btn-link:focus{
15 box-shadow: none;
16 text-decoration: none;
17 color:white;
18}
19.acordion-bl5 .btn-link:hover {
20 text-decoration: none;
21 color:white;
22}
23.pasos a:hover{
24 text-decoration:none;
25}
26::-webkit-scrollbar {
27 height: 9px;
28 width: 9px;
29 background: #e3e3e3;
30}
31
32::-webkit-scrollbar-thumb {
33 background: #42b4e3;
34 -webkit-border-radius: 1ex;
35 -webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.75);
36}
37
38::-webkit-scrollbar-corner {
39 background: #e3e3e3;
40}
41.pasos .nav-pills .nav-link.active
42{
43 background:none;
44 color:black;
45
46}
47.text-blue-pasos-iteso
48{
49 color:#42b4e3;
50}
51
52.bg-blue-iteso
53{
54 background:#004270;
55}
56.number-iteso
57{
58 border: 1px solid;
59 width: 40px;
60 height: 40px;
61
62}
63.btn-link:focus {
64 box-shadow: none;
65 text-decoration: none;
66}
67.card-header .collapsed{
68 color:#42b4e3;
69}
70.tab-content-bl5 *{
71 font-size: 20px;
72 font-style: normal;
73 line-height: 1.38;
74 color: #030a23;
75}
76.tab-content-bl5 * .table thead th{
77 border-bottom: 2px solid #42b4e3;
78}
79.tab-content-bl5 * .table th,.tab-content-bl5 * .table td {
80 border-bottom: 1px solid #42b4e3;
81 border-color: #42b4e3 !important;
82}
83.iframe-iteso{
84 margin-top:105px;
85 margin-bottom:72px;
86 margin-left:74px;
87 margin-right:74px;
88 padding-right: 3rem;
89 padding-left: 1rem;
90 font-family: 'Degular-Regular';
91 overflow-y: scroll;
92 /*height: 855px;*/
93 height: 100%;
94 overflow: hidden;
95 /*box-shadow:0 4px 10px -2px rgb(0 0 0 / 10%);*/
96}
97.iframe-iteso center iframe,
98.mobile-bl5-scroll center iframe {
99 width: 100%;
100}
101.lista-bl5{
102 font-size: 1.4em;
103}
104.detalle-colap-bl5{
105 margin-top:53px;
106 overflow-y: scroll;
107 height: 855px;
108 box-shadow:0 4px 10px -2px rgb(0 0 0 / 10%);
109}
110
111.acordion-bl5 .collapsed .number-iteso {
112 border: 1px solid #42b4e3;
113 color:#42b4e3;
114}
115.acordion-bl5 .collapsed .fa-plus-circle{
116 color:#42b4e3 !important;
117}
118.acordion-bl5 .fa-plus-circle{
119 color:white;
120}
121.acordion-bl5 .number-iteso {
122 border: 1px solid white;
123 color: white;
124}
125.acordion-bl5 .fa-plus-circle:before {
126 content: "\f056";
127 /*menos*/
128}
129
130.acordion-bl5 .collapsed .fa-plus-circle:before {
131 content: "\f055";
132 color: #42b4e3;
133 /*menos*/
134}
135.mobile-bl5-scroll{
136 overflow-y: scroll;
137 height: 400px;
138 padding-right: 30px;
139 font-family: 'Degular-Regular';
140}
141.mobile-bl5-scroll strong,
142.mobile-bl5-scroll strong a,
143.mobile-bl5-scroll ul li a{
144 /*color: #030a23;*/
145 color:black;
146}
147</style>
148<#assign JournalArticleLocalServiceUtil = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")/>
149<!-- custom Field -->
150<#assign basica = themeDisplay.getSiteGroup().getExpandoBridge().getAttribute("Basica")>
151<#assign Basica_Liga = themeDisplay.getSiteGroup().getExpandoBridge().getAttribute("Basica_Liga")>
152<!-- Fin custom Field -->
153<!-- Se obtienen lista de web content -->
154<#assign url_public = themeDisplay.getPathFriendlyURLPublic()>
155 <#if contenido1.getData()?has_content??>
156 <#if contenido1.getData()?has_content && contenido1.getData()?matches("[0-9]+") >
157 <#assign articles = []/>
158 <#assign article = JournalArticleLocalServiceUtil.getLatestArticle(contenido1.getData()?number)>
159 <#assign articles = articles + [article]/>
160 </#if>
161 </#if>
162 <#if contenido2.getSiblings()?has_content>
163 <#list contenido2.getSiblings() as cur_contenido2>
164 <#if cur_contenido2.getData()?has_content>
165 <#assign article2 = JournalArticleLocalServiceUtil.getLatestArticle(cur_contenido2.getData()?number)>
166 <#assign articles = articles + [article2]/>
167 </#if>
168 </#list>
169 </#if>
170<!-- Fin de lista de web content -->
171<!-- Funcion para obtener icono -->
172<#function activarIcon contador isMobile>
173 <#attempt>
174 <#if isMobile == true>
175 <#if getterUtil.getBoolean(icono.getData())>
176 <#return "<div><p class='number-iteso rounded-circle mr-3 mb-0 d-flex justify-content-center align-items-center'><i class='fas ${icono.selectIcon.getData()}'></i></p></div>">
177 <#else>
178 <#return "<div><p class='number-iteso rounded-circle mr-3 mb-0 d-flex justify-content-center align-items-center'>${contador}</p></div>">
179 </#if>
180 <#else>
181 <#if getterUtil.getBoolean(icono.getData())>
182 <#return "<div><p class='number-iteso rounded-circle d-flex justify-content-center align-items-center'><i class='fas ${icono.selectIcon.getData()}' style='font-size: 1.2em;'></i></p></div>">
183 <#else>
184 <#return "<div><p class='number-iteso rounded-circle d-flex justify-content-center align-items-center'>${contador}</p></div>">
185 </#if>
186 </#if>
187 <#recover>
188 Fallo en la funcion activarIcon.
189 </#attempt>
190</#function>
191<!-- Fin funcion para obtener icono -->
192<section class="container-fluid pasos d-none d-lg-block" style="background-color: #eaecf0;">
193 <section class="py-7 container-it">
194 <section class="row">
195 <div class="col-md-12 col-lg-5 bg-blue-iteso degular-bold">
196 <section class="row justify-content-center">
197 <article class="col-10">
198 <div class="nav flex-column nav-pills mb-4 pb-2" id="v-pills-tab" role="tablist" aria-orientation="vertical">
199 <h4 class="text-white text-left" style="font-size: 2.813em;margin-top: 93px;margin-bottom: 75px;">${titulobl5.getData()}</h4>
200 <#assign x = 0>
201 <#if articles?has_content>
202 <#list articles as cur_artlist>
203 <#assign x ++>
204 <#assign documentlist = saxReaderUtil.read(cur_artlist.getContentByLocale(request.locale)) />
205 <#assign rootlist = documentlist.getRootElement()>
206 <#assign titulo = rootlist.selectSingleNode("dynamic-element[@name='titulo']/dynamic-content").getText()/>
207 <!------------------------------basica liga--------------->
208 <#if cur_artlist.getStructureId() == Basica_Liga >
209 <#assign link = rootlist.selectSingleNode("dynamic-element[@name='link']/dynamic-content").getText()/>
210 <#assign linkjson = jsonFactoryUtil.createJSONObject(link)>
211 <#assign url = rootlist.selectSingleNode("dynamic-element[@name='url']/dynamic-content").getText()/>
212 <!---------- Validación de la liga ----------->
213 <#if link != "">
214 <#assign linkid = link?split("@")>
215 <#assign groupUtil = serviceLocator.findService('com.liferay.portal.kernel.service.GroupLocalService')>
216 <#assign group = groupUtil.getGroup(cur_artlist.getGroupId())>
217 <#assign groupFriendly = group.getFriendlyURL()>
218 <#assign layoutService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")>
219 <#assign layout = layoutService.getLayout(linkjson.getLong("groupId") , linkjson.getBoolean("privateLayout"),linkjson.getLong("layoutId"))>
220 <#assign layoutFriendly = layout.getFriendlyURL()>
221 <#assign link_page = "${url_public}${groupFriendly}${layoutFriendly}">
222 <!---------- Contruccion url con idenficador ----------->
223 <a href="${link_page}">
224 <section class="d-flex justify-content-start align-items-center text-blue-pasos-iteso">
225 <article class="mr-3">
226 <!---------- Se obtine la funcion del icono ----------->
227 ${activarIcon(x, false)}
228 </article>
229 <article>
230 <!---------- Titulo de la lista ----------->
231 <p class="lista-bl5" >${titulo}</p>
232 <!---------- Fin de titulo de la lista ----------->
233 </article>
234 </section>
235 </a>
236 <!---------- Fin contruccion url con idenficador ----------->
237 <#else>
238 <#assign link_page = url>
239 <!---------- Validacion de url con identificador de estructura ----------->
240 <a href="${url}">
241 <section class="mb-3 d-flex justify-content-start align-items-center text-blue-pasos-iteso">
242 <article class="mr-3">
243 <!---------- Se obtine la funcion del icono ----------->
244 ${activarIcon(x, false)}
245 </article>
246 <article>
247 <!---------- Titulo de la lista ----------->
248 <p class="lista-bl5">${titulo}</p>
249 <!---------- Fin de titulo de la lista ----------->
250 </article>
251 </section>
252 </a>
253 <!---------- Fin de validacion de url con identificador de estructura ----------->
254 </#if>
255 <!---------- Fin de validación de la liga ----------->
256 <#else>
257 <!------------------------------FIN basica liga--------------->
258 <#if x==1>
259 <a class="nav-link p-0 active" id="v-pills-${x}-tab" data-toggle="pill" href="#v-pills-${x}" role="tab" aria-controls="v-pills-${x}" aria-selected="true">
260 <section class="mb-3 d-flex justify-content-start align-items-center text-blue-pasos-iteso">
261 <article class="mr-3">
262 <!---------- Se obtine la funcion del icono ----------->
263 ${activarIcon(x, false)}
264 </article>
265 <article>
266 <!---------- Titulo de la lista ----------->
267 <p class="lista-bl5">${titulo}</p>
268 <!---------- Fin de titulo de la lista ----------->
269 </article>
270 </section>
271 </a>
272 <#else>
273 <a class="nav-link p-0" id="v-pills-${x}-tab" data-toggle="pill" href="#v-pills-${x}" role="tab" aria-controls="v-pills-${x}" aria-selected="false">
274 <section class="mb-3 d-flex justify-content-start align-items-center text-blue-pasos-iteso">
275 <article class="mr-3">
276 <!---------- Se obtine la funcion del icono ----------->
277 ${activarIcon(x, false)}
278 </article>
279 <article>
280 <!---------- Titulo de la lista ----------->
281 <p class="lista-bl5">${titulo}</p>
282 <!---------- Fin de titulo de la lista ----------->
283 </article>
284 </section>
285 </a>
286 </#if>
287 </#if>
288 </#list>
289 </#if>
290 </div>
291 </article>
292 </section>
293 </div>
294 <!---------- Seccion del contenido ----------->
295 <div class="col-md-12 col-lg-7" style="background: white;">
296 <div class="tab-content tab-content-bl5 h-100" id="v-pills-tabContent">
297 <#assign y = 0>
298 <#if articles?has_content>
299 <!---------- Lista de articulos ----------->
300 <#list articles as cur_art>
301 <#assign y ++>
302 <#assign document = saxReaderUtil.read(cur_art.getContentByLocale(request.locale)) />
303 <#assign root = document.getRootElement()>
304 <#assign Basica_Liga = themeDisplay.getSiteGroup().getExpandoBridge().getAttribute("Basica_Liga")>
305 <!---------- Validacion de estructura ----------->
306 <#if cur_art.getStructureId() == Basica_Liga >
307 <#assign link = root.selectSingleNode("dynamic-element[@name='link']/dynamic-content").getText()/>
308 <#assign linkjson = jsonFactoryUtil.createJSONObject(link)>
309 <#assign url = root.selectSingleNode("dynamic-element[@name='url']/dynamic-content").getText()/>
310 <#else>
311 <!---------- Obtener el detalle de los elementos ----------->
312 <#assign tag = root.selectSingleNode("dynamic-element[@name='tag']/dynamic-content").getText()/>
313 <#assign titulo = root.selectSingleNode("dynamic-element[@name='titulo']/dynamic-content").getText()/>
314 <#assign IdGeneral = themeDisplay.getSiteGroup().getExpandoBridge().getAttribute("IdGeneral")>
315 <#if root.selectSingleNode("dynamic-element[@name='detalle']/dynamic-content")??>
316 <#assign detalle = root.selectSingleNode("dynamic-element[@name='detalle']/dynamic-content").getText()/>
317 </#if>
318 <#if y==1> <!-- Validacion para el iniciador de elementos -->
319 <div class="tab-pane h-100 fade show active" style="padding-bottom: 10em;" id="v-pills-${y}" role="tabpanel" aria-labelledby="v-pills-${y}-tab">
320 <!-- Seccion del iframe -->
321 <article class="iframe-iteso ">
322 <#if detalle??>
323 ${detalle}
324 </#if>
325 </article>
326 <!-- Fin de seccion del iframe -->
327 </div>
328 <#else>
329 <div class="tab-pane h-100 fade " style="padding-bottom: 10em;" id="v-pills-${y}" role="tabpanel" aria-labelledby="v-pills-${y}-tab">
330 <!-- Seccion del iframe -->
331 <article class="iframe-iteso ">
332 <#if detalle??>
333 ${detalle}
334 </#if>
335 </article>
336 <!-- Fin de seccion del iframe -->
337 </div>
338 </#if>
339 <!---------- Fin de obtener el detalle de los elementos ----------->
340 </#if>
341 <!---------- Fin de validacion de estructura ----------->
342 </#list>
343 <!---------- Fin de lista de articulos ----------->
344 </#if>
345 </div>
346 </div>
347 <!---------- fin de seccion del contenido ----------->
348
349 </section>
350 </section>
351</section>
352<!----------------------------------- Seccion para movil ------------------------------>
353<div id="accordion" class="degular-bold d-block d-lg-none acordion-bl5">
354 <!---------- Titulo para seccion movil ----------->
355 <section class="bg-blue-iteso">
356 <h2 class="py-4 container-it m-0 text-white">${titulobl5.getData()}</h2>
357 </section>
358 <!---------- Fin de titulo para seccion movil ----------->
359 <#assign w = 0>
360 <#if articles?has_content>
361 <!-------- Obteniendo la lista para movil -------->
362 <#list articles as cur_artlist>
363 <#assign w ++>
364 <#assign documentlist = saxReaderUtil.read(cur_artlist.getContentByLocale(request.locale)) />
365 <#assign rootlist = documentlist.getRootElement()>
366 <#assign titulo = rootlist.selectSingleNode("dynamic-element[@name='titulo']/dynamic-content").getText()/>
367 <!-- Validando para obtener el detalle -->
368 <#if rootlist.selectSingleNode("dynamic-element[@name='detalle']/dynamic-content")??>
369 <#assign detalle = rootlist.selectSingleNode("dynamic-element[@name='detalle']/dynamic-content").getText()/>
370 </#if>
371 <!-- Fin para validar el detalle -->
372 <!--------------- Validacion basica liga --------------->
373 <#if cur_artlist.getStructureId() == Basica_Liga >
374 <#assign link = rootlist.selectSingleNode("dynamic-element[@name='link']/dynamic-content").getText()/>
375 <#assign linkjson = jsonFactoryUtil.createJSONObject(link)>
376 <#assign url = rootlist.selectSingleNode("dynamic-element[@name='url']/dynamic-content").getText()/>
377 <!-- Validacion del link -->
378 <#if link != "">
379 <#assign linkid = link?split("@")>
380 <#assign groupUtil = serviceLocator.findService('com.liferay.portal.kernel.service.GroupLocalService')>
381 <#assign group = groupUtil.getGroup(cur_artlist.getGroupId())>
382 <#assign groupFriendly = group.getFriendlyURL()>
383 <#assign layoutService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")>
384 <#assign layout = layoutService.getLayout(linkjson.getLong("groupId") , linkjson.getBoolean("privateLayout"),linkjson.getLong("layoutId"))>
385 <#assign layoutFriendly = layout.getFriendlyURL()>
386 <#assign link_page = "${url_public}${groupFriendly}${layoutFriendly}">
387 <div class="card-header bg-blue-iteso rounded-0 container-it" id="heading${w}">
388 <h5 class="mb-0 ">
389 <button class="btn btn-link d-flex align-items-center justify-content-between w-100 collapsed p-0" data-toggle="collapse" data-target="#collapse${w}" aria-expanded="false" aria-controls="collapse${w}">
390 <article class="d-flex align-items-center">
391 <a href="${link_page}">
392 ${activarIcon(w, true)}
393 <a href="${link_page}" class="text-left" style="font-size: 1.2em;">${titulo}</a><!-- Se coloca la url para la lista del elemento -->
394 </a>
395 </article>
396 <i class="fal fa-plus-circle" style="font-size: 30px;"></i>
397 </button>
398 </h5>
399 </div>
400 <#else>
401 <!-- Se obtiene url de la estrutura y seccion para el vinculo -->
402 <#assign link_page = url>
403 <div class="card-header bg-blue-iteso rounded-0 container-it" id="heading${w}">
404 <h5 class="mb-0 ">
405 <button class="btn btn-link d-flex align-items-center justify-content-between w-100 collapsed p-0" data-toggle="collapse" data-target="#collapse${w}" aria-expanded="false" aria-controls="collapse${w}">
406 <article class="d-flex align-items-center">
407 ${activarIcon(w, true)}
408 <!-- Se coloca la url para la lista -->
409 <a href="${url}" class="text-left" style="font-size: 1em;">${titulo}</a>
410 </article>
411 <i class="fal fa-plus-circle" style="font-size: 30px;"></i>
412 </button>
413 </h5>
414 </div>
415 <!-- Fin para la url de la estrutura -->
416 </#if>
417 <!-- Fin de validacion del link -->
418 <#else>
419 <!-- Seccion para obtener los detalles -->
420 <div class="card m-0 border-0">
421 <div class="card-header bg-blue-iteso rounded-0 container-it" id="heading${w}">
422 <h5 class="mb-0 ">
423 <button class="btn btn-link d-flex align-items-center justify-content-between w-100 collapsed p-0" data-toggle="collapse" data-target="#collapse${w}" aria-expanded="false" aria-controls="collapse${w}">
424 <article class="d-flex align-items-center">
425 ${activarIcon(w, true)}
426 <a class="text-left" style="font-size: 1em;">${titulo}</a>
427 </article>
428 <i class="fal fa-plus-circle" style="font-size: 30px;"></i>
429 </button>
430 </h5>
431 </div>
432 <div id="collapse${w}" class="collapse" aria-labelledby="heading${w}" data-parent="#accordion">
433 <div class="card-body container-it">
434 <!-- Colocando la variable del detalle -->
435 <section class="mobile-bl5-scroll">
436 ${detalle}
437 </section>
438 <!-- Fin de la seccion para la variable del detalle -->
439 </div>
440 </div>
441 </div>
442 <!-- Fin de seccion del detalle -->
443 </#if>
444 </#list>
445 </#if>
446</div>
447<script>
448 $(".pasos .text-blue-pasos-iteso").hover(function() {
449 $(this).css("color", "white");
450 $(this).find(".number-iteso").css("border-color", "white");
451 }, function() {
452 $(this).css("color", "#42b4e3");
453 $(this).find(".number-iteso").css("border-color", "#42b4e3");
454 });
455
456 $("#accordionBL5 .number-iteso").hover(function() {
457 $(this).css("color", "white");
458 $(this).find(".number-iteso").css("border-color", "white");
459 }, function() {
460 $(this).css("color", "#42b4e3");
461 $(this).find(".number-iteso").css("border-color", "#42b4e3");
462 });
463</script>
IMAGEN_INSTITUCIONAL_CONTENIDOS_CTA3
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing: ==> themeDisplay.getSiteGroup().getExpandoBridge().getAttribute("Basica") [in template "97#123#146124" at line 27, column 27] ---- 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 Basica = themeDisplay.getSite... [in template "97#123#146124" at line 27, column 9] ----
1<#assign JournalArticleLocalServiceUtil = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")/>
2<#assign url_public = themeDisplay.getPathFriendlyURLPublic()>
3
4<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")>
5<#assign dlFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")>
6
7<#assign articles = []/>
8
9
10<#if contenido.getData()?has_content??>
11 <#if contenido.getData()?has_content && contenido.getData()?matches("[0-9]+") >
12 <#assign article = JournalArticleLocalServiceUtil.getLatestArticle(contenido.getData()?number)>
13 <#assign articles = articles + [article]/>
14 </#if>
15</#if>
16
17<#if articles?has_content>
18 <#list articles as cur_art>
19 <#assign size = articles?size/>
20 <#assign document = saxReaderUtil.read(cur_art.getContentByLocale(locale)) />
21 <#assign root = document.getRootElement()>
22 <#assign titulo = root.selectSingleNode("dynamic-element[@name='titulo']/dynamic-content").getText()/>
23 <#assign abstract = root.selectSingleNode("dynamic-element[@name='abstract']/dynamic-content").getText()/>
24
25
26 <#assign Basica_Liga = themeDisplay.getSiteGroup().getExpandoBridge().getAttribute("Basica_Liga")>
27 <#assign Basica = themeDisplay.getSiteGroup().getExpandoBridge().getAttribute("Basica")>
28 <#assign Descarga = themeDisplay.getSiteGroup().getExpandoBridge().getAttribute("Descarga")>
29
30 <#-- Validación para saber si la estructura utilizada es Basica_Ligsa o Basica -->
31 <#if cur_art.getStructureId() == Basica_Liga || cur_art.getStructureId() == Descarga>
32
33 <#if cur_art.getStructureId() == Basica_Liga> <#-- Si es Basica Liga se obtienen el lin o url -->
34
35 <#assign link = root.selectSingleNode("dynamic-element[@name='link']/dynamic-content").getText()/>
36 <#assign linkjson = jsonFactoryUtil.createJSONObject(link)>
37 <#assign url = root.selectSingleNode("dynamic-element[@name='url']/dynamic-content").getText()/>
38
39 <#if link?has_content> <#-- si link tiene contenido se obtiene este link -->
40 <#assign linkid = link?split("@")>
41 <#assign groupUtil = serviceLocator.findService('com.liferay.portal.kernel.service.GroupLocalService')>
42 <#assign group = groupUtil.getGroup(cur_art.getGroupId())>
43 <#assign groupFriendly = group.getFriendlyURL()>
44 <#assign layoutService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")>
45 <#--assign layout = layoutService.getLayout(linkjson.getLong("groupId") , linkjson.getBoolean("privateLayout"),linkjson.getLong("layoutId"))-->
46 <#assign layoutFriendly = layout.getFriendlyURL()>
47 <#assign urlCta3 = "${url_public}${groupFriendly}${layoutFriendly}">
48
49 <#else>
50 <#-- Si url tiene contenido y link no se obtiene la url sino se cumple se pone sinUrl en true para mostrar al usuario que no se esta poniendo ya sea link o url -->
51 <#assign urlCta3 = url>
52 </#if>
53 <div class="container-fluid" style="justify-content: center;display: flex; padding-left:0; padding-right:0">
54 <div class="row cta3 w-100">
55 <div class="col-md-12 col-lg-8 mt-lg-5 mb-lg-5 block1">
56 <div class="container-xxxxl">
57 <h1 class="title-cta3 ">${titulo}</h1>
58 <h5 class="subtitle-cta3 ">${abstract}</h5>
59 </div>
60 </div>
61 <div class="col-md-12 col-lg-4 block2 ${fondoColor.getData()} w-100">
62 <div class="container-xxxxl w-100">
63 <a class=link-block href="${urlCta3}" target="_blank"><i class="fal fa-chevron-circle-down pr-3"></i></i>${txtLink.getData()}</a>
64 </div>
65 </div>
66 </div>
67 </div>
68 </#if>
69 <#-- Validación si es Descarga, se obtiene el enlace del elemento y se convierte a un json para pasarlo a una funcion para poder descargar el documento -->
70 <#if cur_art.getStructureId() == Descarga>
71 <#assign xmlValue = root.selectSingleNode("dynamic-element[@name='doc']/dynamic-content").getText()/>
72 <#assign docJson = jsonFactoryUtil.createJSONObject(xmlValue)>
73 <#assign urlDownload = getArticleDLEntryUrl(xmlValue)>
74
75 <div class="container-fluid" style="justify-content: center;display: flex; padding-left:0; padding-right:0">
76 <div class="row cta3 w-100">
77 <div class="col-md-12 col-lg-8 mt-lg-5 mb-lg-5 block1">
78 <div class="container-xxxxl">
79 <h1 class="title-cta3 ">${titulo}</h1>
80 <h5 class="subtitle-cta3 ">${abstract}</h5>
81 </div>
82 </div>
83 <div class="col-md-12 col-lg-4 block2 ${fondoColor.getData()} w-100">
84 <div class="container-xxxxl w-100">
85 <a class=link-block href="${getArticleDLEntryUrl(xmlValue)}"><i class="fal fa-chevron-circle-down pr-3"></i></i>${txtLink.getData()}</a>
86 </div>
87 </div>
88 </div>
89 </div>
90
91
92
93
94
95 </#if> <#-- Fin Validación si es Descarga -->
96 <#else><#--else de if principal que valida que la estrucutra sea Basica_Liga o Descarga, sino se cumple muestra hace las siguientes validaciones-->
97 <#-- Si showCta3 es false y sinUrl igual a false muestra una leyenda de que se esta ocupando otra estructura diferente a Basica_Liga o Descarga -->
98 <#if cur_art.getStructureId() == Basica>
99 <#assign urldetalle = "/web/general/detalle" />
100 <div class="container-fluid" style="justify-content: center;display: flex; padding-left:0; padding-right:0">
101 <div class="row cta3 w-100">
102 <div class="col-md-12 col-lg-8 mt-lg-5 mb-lg-5 block1">
103 <div class="container-xxxxl">
104 <h1 class="title-cta3 ">${titulo}</h1>
105 <h5 class="subtitle-cta3 ">${abstract}</h5>
106 </div>
107 </div>
108 <div class="col-md-12 col-lg-4 block2 ${fondoColor.getData()} w-100">
109 <div class="container-xxxxl w-100">
110 <a class=link-block href="${urldetalle}?group_id=${cur_art.getResourcePrimKey()}"><i class="fal fa-chevron-circle-down pr-3"></i></i>${txtLink.getData()}</a>
111 </div>
112 </div>
113 </div>
114 </div>
115 </#if> <#-- Fin Validación si es Basica -->
116 </#if>
117
118
119 </#list>
120</#if>
121<#function getArticleDLEntryUrl xmlValue>
122
123 <#local docUrl = "" />
124
125 <#if xmlValue?has_content>
126 <#local jsonObject = xmlValue?eval />
127
128 <#local entryUuid = jsonObject.uuid />
129 <#local entryGroupId = getterUtil.getLong(jsonObject.groupId) />
130
131 <#local dlFileEntry = dlFileEntryLocalService.getDLFileEntryByUuidAndGroupId(entryUuid, entryGroupId) />
132
133 <#local assetEntry = assetEntryLocalService.getEntry("com.liferay.document.library.kernel.model.DLFileEntry", dlFileEntry.fileEntryId) />
134 <#local assetRenderer = assetEntry.assetRenderer />
135
136 <#local docUrl = assetRenderer.getURLDownload(themeDisplay) />
137 </#if>
138 <#return docUrl />
139</#function>
140
141<#assign color = fondoColor.getData() />
142<#assign colorLetter = "" />
143<#assign colorLink = "" />
144<#if color != 'bg-azul-cta3'>
145<#assign colorLetter = "#004270" />
146<#assign colorLink = "#fff" />
147<#else>
148<#assign colorLetter = "#666" />
149<#assign colorLink = "#004270" />
150</#if>
151<style type="text/css">
152.bg-azul-cta3 {
153 background-color: #42b4e3 !important;
154}
155.bg-morado-cta3{
156 background-color: #8d1860 !important;
157}
158.bg-verde-cta3 {
159 background-color: #6ba43a !important;
160}
161.bg-naranja-cta3 {
162 background-color: #ff6b00 !important;
163}
164.bg-dorado-cta3 {
165 background-color: #b4975a !important;
166}
167@media (min-width:300px) and (max-width:991.5px){
168 .cta3 .block1, .cta3 .block2 {
169 padding-right: 7.5%;
170 padding-left: 7.5%;
171 }
172 .cta3 .link-block{
173 justify-content: center !important;
174 }
175 .cta3 .title-cta3 {
176 line-height: 0.91;
177 text-align: center;
178 }
179 .cta3 .subtitle-cta3 {
180 line-height: 1.17;
181 text-align:center;
182 }
183 .cta3 .link-block{
184 line-height: 2.57;
185 }
186 .cta3 .block1 {
187 margin-top:52px;
188 margin-bottom:67px;
189 }
190 .cta3 .title-cta3 {
191 font-size: 3em;
192 margin-bottom:10px !important;
193
194 }
195}
196
197@media (min-width:992px){
198 .cta3 .title-cta3 {
199 line-height: 1.32;
200 text-align: left;
201 }
202 .cta3 .title-cta3 {
203 font-size: 3.5em;
204 }
205 .cta3 .subtitle-cta3 {
206 line-height: 0.98;
207 text-align: left;
208 }
209 .cta3 .link-block{
210 line-height: 1.2;
211 text-align: left;
212 }
213 .cta3 .block1 {
214 padding-left: 7.5%;
215 padding-right: 0;
216}
217.cta3 .block2 {
218 padding-right: 7.5%;
219 }
220}
221@media (min-width: 992px){
222.cta3 .block1{
223 padding-left:7.5%;
224 padding-right: 0;
225}
226.cta3 .block2{
227 /*padding-left:0;*/
228 padding-right: 7.5%;
229}
230}
231@media (max-width:768px){
232 .cta3 .link-block {
233 margin-top: 31px;
234 margin-bottom:31px;
235 font-size: 1.3em !important;
236 }
237
238}
239.cta3 .block1 , .cta3 .block2{
240 display: flex;
241 align-items: center !important;
242}
243/*
244.cta3 .block2 {
245 background-color: ${color};
246}
247*/
248.cta3 .title-cta3 {
249 font-family: 'Degular-Semibold';
250 /*font-size: 4em;*/
251 font-weight: 600;
252 font-stretch: normal;
253 font-style: normal;
254 letter-spacing: normal;
255 color: ${colorLetter};
256 margin-bottom:0;
257
258}
259.cta3 .subtitle-cta3 {
260 font-family: 'Degular-Regular';
261 font-size: 2em;
262 font-weight: normal;
263 font-stretch: normal;
264 font-style: normal;
265 letter-spacing: normal;
266
267 color: #666666;
268
269}
270
271
272.cta3 .link-block i {
273 font-size: 40px;
274}
275.cta3 .link-block {
276 font-family: 'Degular-Bold';
277 font-size: 1.8em;
278 font-weight: bold;
279 font-stretch: normal;
280 font-style: normal;
281 text-transform: uppercase;
282 letter-spacing: 1.5px;
283 color: ${colorLink};
284 text-decoration: none;
285 display: flex;
286 align-items: center !important;
287 justify-content: end;
288
289}
290.cta3 .link-block:hover {
291 text-decoration: none;
292 color: ${colorLink};
293}
294
295@media(min-width:992px){
296 .cta3 .block1{
297 height:280px;
298 }
299}
300@media(min-width:375px) and (max-width:991.5px){
301 .cta3 .block1{
302 height:250px;
303 }
304 .cta3 .block2{
305 height:110px;
306 }
307 .cta3 .container-xxxxl{
308 margin: auto;
309 }
310 .cta3 .subtitle-cta3{
311 font-size:1.2em;
312 }
313}
314</style>