iteso
Administración de Proyectos PMI Method

Especialízate en la administración de proyectos a partir de conocimiento y aplicación de técnicas 
innovadoras y herramientas eficaces.

Modalidad: mixta y en línea
Duración: 136  horas impartido en 34 sesiones

iteso

ENLACES_A_CONTACTOS_CTA4-5

Correo electrónico

Ver más

WhatsApp

Ver más

Redes sociales

DESCRIPCION_ADMON_PROYECTOS_PMI_BL5

An error occurred while processing the template.
Java method "jdk.proxy3.$Proxy84.getLayout(long, boolean, long)" threw an exception when invoked on jdk.proxy3.$Proxy84 object "com.liferay.layout.internal.service.LayoutLocalServiceWrapper@644a9ca"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign layout = layoutService.getLay...  [in template "97#123#141411" at line 262, column 89]
----
1<style> 
2	.acordion-bl5 button[aria-expanded="true"] a{ 
3		color:white; 
4
5	 
6	.acordion-bl5 .collapsed a { 
7		color: #42b4e3 !important; 
8		text-decoration: none; 
9
10	 
11	.acordion-bl5 .btn-link { 
12		color: #42b4e3; 
13		text-decoration: none; 
14
15 
16	.acordion-bl5 .btn-link:focus{ 
17		box-shadow: none; 
18		text-decoration: none; 
19		color:white; 
20
21	 
22	.acordion-bl5 .btn-link:hover { 
23		text-decoration: none; 
24		color:white; 
25
26	 
27	.pasos a:hover{ 
28		text-decoration:none; 
29
30	 
31	::-webkit-scrollbar { 
32		height: 9px; 
33		width: 9px; 
34		background: #e3e3e3; 
35
36 
37	::-webkit-scrollbar-thumb { 
38		background: #42b4e3; 
39		-webkit-border-radius: 1ex; 
40		-webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.75); 
41
42 
43	::-webkit-scrollbar-corner { 
44		background: #e3e3e3; 
45
46	 
47	.pasos .nav-pills .nav-link.active{ 
48		background:none; 
49		color:black; 
50
51	 
52	.text-blue-pasos-iteso{ 
53		color:#42b4e3; 
54
55 
56	.bg-blue-iteso{ 
57		background:#004270; 
58
59	 
60	.number-iteso{ 
61		border: 1px solid; 
62		width: 40px; 
63		height: 40px; 
64
65	 
66	.btn-link:focus { 
67		box-shadow: none; 
68		text-decoration: none; 
69
70	 
71	.card-header .collapsed{ 
72		color:#42b4e3; 
73
74	 
75	.tab-content-bl5 *{ 
76		font-size: 20px; 
77		font-style: normal; 
78		line-height: 1.38; 
79		color: #030a23; 
80
81	 
82	.tab-content-bl5 * .table thead th{ 
83		border-bottom: 2px solid #42b4e3; 
84
85	 
86	.tab-content-bl5 * .table th,.tab-content-bl5 * .table td { 
87		border-bottom: 1px solid #42b4e3; 
88		border-color: #42b4e3 !important; 
89
90	 
91	.iframe-iteso{ 
92		margin-top:105px; 
93		margin-bottom:72px; 
94		margin-left:74px; 
95		margin-right:74px; 
96		padding-right: 3rem; 
97		padding-left: 1rem; 
98		font-family: 'Degular-Regular'; 
99		overflow-y: scroll; 
100		/*height: 855px;*/ 
101		height: 100%; 
102		overflow: hidden; 
103		/*box-shadow:0 4px 10px -2px rgb(0 0 0 / 10%);*/ 
104
105	 
106	.iframe-iteso center iframe, 
107	.mobile-bl5-scroll center iframe { 
108		width: 100%; 
109
110	 
111	.lista-bl5{ 
112		font-size: 1.4em; 
113
114	 
115	.detalle-colap-bl5{ 
116		margin-top:53px; 
117		overflow-y: scroll; 
118		height: 855px; 
119		box-shadow:0 4px 10px -2px rgb(0 0 0 / 10%); 
120
121 
122	.acordion-bl5 .collapsed .number-iteso { 
123	   border: 1px solid #42b4e3; 
124	   color:#42b4e3; 
125
126	 
127	.acordion-bl5 .collapsed .fa-plus-circle{ 
128		color:#42b4e3 !important; 
129
130	 
131	.acordion-bl5 .fa-plus-circle{ 
132		color:white; 
133
134	 
135	.acordion-bl5 .number-iteso { 
136		border: 1px solid white; 
137		color: white; 
138
139	 
140	.acordion-bl5  .fa-plus-circle:before { 
141		content: "\f056"; 
142		/*menos*/ 
143
144 
145	.acordion-bl5 .collapsed .fa-plus-circle:before { 
146		content: "\f055"; 
147		color: #42b4e3; 
148		/*menos*/ 
149
150	 
151	.mobile-bl5-scroll{ 
152		overflow-y: scroll; 
153		height: 400px; 
154		padding-right: 30px; 
155		font-family: 'Degular-Regular'; 
156
157	 
158	.mobile-bl5-scroll strong, 
159	.mobile-bl5-scroll strong a, 
160	.mobile-bl5-scroll ul li a{ 
161		/*color: #030a23;*/ 
162		color:black; 
163
164</style> 
165 
166<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")/> 
167<#assign groupUtil = serviceLocator.findService('com.liferay.portal.kernel.service.GroupLocalService')> 
168<#assign layoutService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")> 
169<!-- custom Field --> 
170<#assign basica = themeDisplay.getSiteGroup().getExpandoBridge().getAttribute("Basica")> 
171<#assign Basica_Liga = themeDisplay.getSiteGroup().getExpandoBridge().getAttribute("Basica_Liga")> 
172<!-- Fin custom Field --> 
173<!-- Se obtienen lista de web content --> 
174<#assign url_public = themeDisplay.getPathFriendlyURLPublic()> 
175<#assign articles = []/> 
176 
177<#assign contenido1 = parentStructureFieldSet23555.contenido1> 
178<#if contenido1.getData()?has_content??> 
179	<#if contenido1.getData()?has_content && contenido1.getData()?matches("[0-9]+") > 
180		<#assign articleExist = JournalArticleLocalService.getArticlesByResourcePrimKey(contenido1.getData()?number)> 
181		<#if articleExist?size gt 0 > 
182			<#assign article = JournalArticleLocalService.getLatestArticle(contenido1.getData()?number)> 
183			<#assign articles = articles + [article] /> 
184		<#else> 
185			<#assign articleExistId = JournalArticleLocalService.hasArticle(groupId, contenido1.getData())> 
186			<#if articleExistId> 
187				<#assign article = JournalArticleLocalService.getLatestArticle(groupId, contenido1.getData())> 
188				<#assign articles = articles + [article] /> 
189			</#if> 
190		</#if> 
191	</#if> 
192</#if> 
193 
194<#assign contenido2 = parentStructureFieldSet23555.contenido2> 
195<#if contenido2.getSiblings()?has_content>  
196	<#list contenido2.getSiblings() as articulo2> 
197		<#if articulo2.getData()?has_content && articulo2.getData()?matches("[0-9]+") > 
198			<#assign articleExist = JournalArticleLocalService.getArticlesByResourcePrimKey(articulo2.getData()?number)> 
199			<#if articleExist?size gt 0 > 
200				<#assign article = JournalArticleLocalService.getLatestArticle(articulo2.getData()?number)> 
201				<#assign articles = articles + [article] /> 
202			<#else> 
203				<#assign articleExistId = JournalArticleLocalService.hasArticle(groupId, articulo2.getData())> 
204				<#if articleExistId> 
205					<#assign article = JournalArticleLocalService.getLatestArticle(groupId, articulo2.getData())> 
206					<#assign articles = articles + [article] /> 
207				</#if> 
208			</#if> 
209		</#if> 
210	</#list>  
211</#if> 
212<!-- Fin de lista de web content --> 
213 
214<!-- Funcion para obtener icono --> 
215<#function activarIcon contador isMobile> 
216	<#attempt> 
217		<#if isMobile == true> 
218			<#if getterUtil.getBoolean(iconoFieldSet.icono.getData())> 
219				<#return '<div><p class="number-iteso rounded-circle mr-3 mb-0 d-flex justify-content-center align-items-center"><i class="fas ${iconoFieldSet.iconoFieldSetFieldSet.selectIcon.getData()}"></i></p></div>'> 
220			<#else>  
221				<#return "<div><p class='number-iteso rounded-circle mr-3 mb-0 d-flex justify-content-center align-items-center'>${contador}</p></div>"> 
222			</#if> 
223		<#else> 
224			<#if getterUtil.getBoolean(iconoFieldSet.icono.getData())> 
225				<#return "<div><p class='number-iteso rounded-circle d-flex justify-content-center align-items-center'><i class='fas ${iconoFieldSet.iconoFieldSetFieldSet.selectIcon.getData()}' style='font-size: 1.2em;'></i></p></div>"> 
226			<#else>  
227				<#return "<div><p class='number-iteso rounded-circle d-flex justify-content-center align-items-center'>${contador}</p></div>"> 
228			</#if> 
229		</#if> 
230	<#recover> 
231		Fallo en la funcion activarIcon. 
232	</#attempt> 
233</#function> 
234<!-- Fin funcion para obtener icono --> 
235 
236<section class="container-fluid pasos d-none d-lg-block" style="background-color: #eaecf0;"> 
237	<section class="py-7 container-it"> 
238		<section class="row"> 
239			<div class="col-md-12 col-lg-5 bg-blue-iteso degular-bold"> 
240				<section class="row justify-content-center"> 
241					<article class="col-10"> 
242						<div class="nav flex-column nav-pills mb-4 pb-2" id="v-pills-tab" role="tablist" aria-orientation="vertical"> 
243							<h4 class="text-white text-left" style="font-size: 2.813em;margin-top: 93px;margin-bottom: 75px;">${titulobl5.getData()}</h4> 
244							<#assign x = 0> 
245							<#if articles?has_content> 
246								<#list articles as cur_artlist> 
247									<#assign x ++> 
248									<#--<#assign documentlist = saxReaderUtil.read(cur_artlist.getContentByLocale(request.locale)) />--> 
249									<#assign documentlist = saxReaderUtil.read(cur_artlist.getContentByLocale(themeDisplay.getLocale())) /> 
250									<#assign rootlist = documentlist.getRootElement()> 
251									<#assign titulo = rootlist.selectSingleNode("dynamic-element[@name='titulo']/dynamic-content").getText()/> 
252									<!------------------------------basica liga---------------> 
253									<#if cur_artlist.getDDMStructureKey() == Basica_Liga> 
254										<#assign link = rootlist.selectSingleNode("dynamic-element[@name='link']/dynamic-content").getText()/> 
255										<#assign linkjson = jsonFactoryUtil.createJSONObject(link)> 
256										<#assign url  = rootlist.selectSingleNode("dynamic-element[@name='url']/dynamic-content").getText()/> 
257										<!---------- Validación de la liga -----------> 
258										<#if link != ""> 
259											<#assign linkid = link?split("@")> 
260											<#assign group = groupUtil.getGroup(cur_artlist.getGroupId())> 
261											<#assign groupFriendly = group.getFriendlyURL()> 
262											<#assign layout = layoutService.getLayout(linkjson.getLong("groupId") , linkjson.getBoolean("privateLayout"),linkjson.getLong("layoutId"))> 
263											<#assign layoutFriendly = layout.getFriendlyURL()> 
264											<#assign link_page = "${url_public}${groupFriendly}${layoutFriendly}"> 
265											<!---------- Contruccion url con idenficador -----------> 
266											<a href="${link_page}"> 
267												<section class="d-flex justify-content-start align-items-center text-blue-pasos-iteso"> 
268													<article class="mr-3"> 
269														<!---------- Se obtine la funcion del icono -----------> 
270														${activarIcon(x, false)} 
271													</article> 
272													<article> 
273														<!---------- Titulo de la lista -----------> 
274														<p class="lista-bl5" >${titulo}</p> 
275														<!---------- Fin de titulo de la lista -----------> 
276													</article> 
277												</section> 
278											</a> 
279											<!---------- Fin contruccion url con idenficador -----------> 
280										<#else> 
281											<!---------- Validacion de url con identificador de estructura -----------> 
282											<a href="${url}"> 
283												<section class="mb-3 d-flex justify-content-start align-items-center text-blue-pasos-iteso"> 
284													<article class="mr-3"> 
285														<!---------- Se obtine la funcion del icono -----------> 
286														${activarIcon(x, false)} 
287													</article> 
288													<article> 
289														<!---------- Titulo de la lista -----------> 
290														<p class="lista-bl5">${titulo}</p> 
291														<!---------- Fin de titulo de la lista -----------> 
292													</article> 
293												</section> 
294											</a> 
295											<!---------- Fin de validacion de url con identificador de estructura -----------> 
296										</#if> 
297										<!---------- Fin de validación de la liga -----------> 
298									<#else> 
299										<!------------------------------FIN basica liga---------------> 
300										<#if x==1> 
301											<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"> 
302												<section class="mb-3 d-flex justify-content-start align-items-center text-blue-pasos-iteso"> 
303													<article class="mr-3"> 
304														<!---------- Se obtine la funcion del icono -----------> 
305														${activarIcon(x, false)} 
306													</article> 
307													<article> 
308														<!---------- Titulo de la lista -----------> 
309														<p class="lista-bl5">${titulo}</p> 
310														<!---------- Fin de titulo de la lista -----------> 
311													</article> 
312												</section> 
313											</a> 
314										<#else> 
315											<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"> 
316												<section class="mb-3 d-flex justify-content-start align-items-center text-blue-pasos-iteso"> 
317													<article class="mr-3"> 
318														<!---------- Se obtine la funcion del icono -----------> 
319														${activarIcon(x, false)} 
320													</article> 
321													<article> 
322														<!---------- Titulo de la lista -----------> 
323														<p class="lista-bl5">${titulo}</p> 
324														<!---------- Fin de titulo de la lista -----------> 
325													</article> 
326												</section> 
327											</a> 
328										</#if> 
329									</#if> 
330								</#list> 
331							</#if> 
332						</div> 
333					</article> 
334				</section> 
335			</div> 
336			<!---------- Seccion del contenido -----------> 
337			<div class="col-md-12 col-lg-7" style="background: white;"> 
338				<div class="tab-content tab-content-bl5 h-100" id="v-pills-tabContent"> 
339					<#assign y = 0> 
340					<#if articles?has_content>  
341						<!---------- Lista de articulos -----------> 
342						<#list articles as cur_art> 
343							<#assign y++> 
344							<#--<#assign document = saxReaderUtil.read(cur_art.getContentByLocale(request.locale)) />--> 
345							<#assign document = saxReaderUtil.read(cur_art.getContentByLocale(themeDisplay.getLocale())) /> 
346							<#assign root = document.getRootElement()> 
347							<!---------- Validacion de estructura -----------> 
348							<#if cur_art.getDDMStructureKey() == Basica_Liga > 
349								<#assign link = root.selectSingleNode("dynamic-element[@name='link']/dynamic-content").getText()/> 
350								<#assign linkjson = jsonFactoryUtil.createJSONObject(link)> 
351								<#assign url  = root.selectSingleNode("dynamic-element[@name='url']/dynamic-content").getText()/> 
352							<#else> 
353								<!---------- Obtener el detalle de los elementos -----------> 
354								<#assign tag = root.selectSingleNode("dynamic-element[@name='tag']/dynamic-content").getText()/> 
355								<#assign titulo = root.selectSingleNode("dynamic-element[@name='titulo']/dynamic-content").getText()/> 
356								<#assign IdGeneral = themeDisplay.getSiteGroup().getExpandoBridge().getAttribute("IdGeneral")> 
357								<#if root.selectSingleNode("dynamic-element[@name='detalle']/dynamic-content")??> 
358									<#assign detalle = root.selectSingleNode("dynamic-element[@name='detalle']/dynamic-content").getText()/> 
359								</#if> 
360								<#if y==1> <!-- Validacion para el iniciador de elementos --> 
361									<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"> 
362										<!-- Seccion del iframe --> 
363										<article class="iframe-iteso "> 
364											<#if detalle??>  
365												${detalle} 
366											</#if> 
367										</article> 
368										<!-- Fin de seccion del iframe --> 
369									</div> 
370								<#else> 
371									<div class="tab-pane h-100 fade " style="padding-bottom: 10em;" id="v-pills-${y}" role="tabpanel" aria-labelledby="v-pills-${y}-tab"> 
372										<!-- Seccion del iframe --> 
373										<article class="iframe-iteso "> 
374											<#if detalle??>  
375												${detalle} 
376											</#if> 
377										</article> 
378										<!-- Fin de seccion del iframe --> 
379									</div> 
380								</#if> 
381								<!---------- Fin de obtener el detalle de los elementos -----------> 
382							</#if> 
383							<!---------- Fin de validacion de estructura -----------> 
384						</#list> 
385						<!---------- Fin de lista de articulos -----------> 
386					</#if> 
387				</div> 
388			</div> 
389			<!---------- fin de seccion del contenido -----------> 
390		</section> 
391	</section> 
392</section> 
393<!----------------------------------- Seccion para movil ------------------------------> 
394<div id="accordion" class="degular-bold d-block d-lg-none acordion-bl5"> 
395	<!---------- Titulo para seccion movil -----------> 
396	<section class="bg-blue-iteso"> 
397		<h2 class="py-4 container-it m-0 text-white">${titulobl5.getData()}</h2> 
398	</section> 
399   <!---------- Fin de titulo para seccion movil -----------> 
400	<#assign w = 0> 
401	<#if articles?has_content> 
402		<!-------- Obteniendo la lista para movil --------> 
403		<#list articles as cur_artlist> 
404			<#assign w ++> 
405			<#--<#assign documentlist = saxReaderUtil.read(cur_artlist.getContentByLocale(request.locale)) />--> 
406			<#assign documentlist = saxReaderUtil.read(cur_artlist.getContentByLocale(themeDisplay.getLocale())) /> 
407			<#assign rootlist = documentlist.getRootElement()> 
408			<#assign titulo = rootlist.selectSingleNode("dynamic-element[@name='titulo']/dynamic-content").getText()/> 
409			<!-- Validando para obtener el detalle --> 
410			<#if rootlist.selectSingleNode("dynamic-element[@name='detalle']/dynamic-content")??> 
411				<#assign detalle = rootlist.selectSingleNode("dynamic-element[@name='detalle']/dynamic-content").getText()/> 
412			</#if> 
413			<!-- Fin para validar el detalle --> 
414			<!--------------- Validacion basica liga ---------------> 
415			<#if cur_artlist.getDDMStructureKey() == Basica_Liga > 
416				<#assign link = rootlist.selectSingleNode("dynamic-element[@name='link']/dynamic-content").getText()/> 
417				<#assign linkjson = jsonFactoryUtil.createJSONObject(link)> 
418				<#assign url  = rootlist.selectSingleNode("dynamic-element[@name='url']/dynamic-content").getText()/> 
419				<!-- Validacion del link --> 
420				<#if link != ""> 
421					<#assign linkid = link?split("@")> 
422					<#assign group = groupUtil.getGroup(cur_artlist.getGroupId())> 
423					<#assign groupFriendly = group.getFriendlyURL()> 
424					<#assign layout = layoutService.getLayout(linkjson.getLong("groupId") , linkjson.getBoolean("privateLayout"),linkjson.getLong("layoutId"))> 
425					<#assign layoutFriendly = layout.getFriendlyURL()> 
426					<#assign link_page = "${url_public}${groupFriendly}${layoutFriendly}"> 
427					<div class="card-header bg-blue-iteso rounded-0 container-it" id="heading${w}"> 
428						<h5 class="mb-0 "> 
429							<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}"> 
430								<article class="d-flex  align-items-center">  
431									<a href="${link_page}"> 
432										${activarIcon(w, true)} 
433										<a href="${link_page}" class="text-left" style="font-size: 1.2em;">${titulo}</a><!-- Se coloca la url para la lista del elemento --> 
434									</a> 
435								</article> 
436								<i class="fal fa-plus-circle" style="font-size: 30px;"></i> 
437							</button> 
438						</h5> 
439					</div> 
440				<#else> 
441					<!-- Se obtiene url de la estrutura y seccion para el vinculo --> 
442					<div class="card-header bg-blue-iteso rounded-0 container-it" id="heading${w}"> 
443						<h5 class="mb-0 "> 
444							<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}"> 
445								<article class="d-flex  align-items-center"> 
446									${activarIcon(w, true)} 
447									<!-- Se coloca la url para la lista --> 
448									<a  href="${url}" class="text-left" style="font-size: 1em;">${titulo}</a> 
449								</article> 
450								<i class="fal fa-plus-circle" style="font-size: 30px;"></i> 
451							</button> 
452						</h5> 
453					</div> 
454					<!-- Fin para la url de la estrutura --> 
455				</#if> 
456				<!-- Fin de validacion del link --> 
457			<#else> 
458				<!--  Seccion para obtener los detalles --> 
459				<div class="card m-0 border-0"> 
460					<div class="card-header bg-blue-iteso rounded-0 container-it" id="heading${w}"> 
461						<h5 class="mb-0 "> 
462							<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}"> 
463								<article class="d-flex  align-items-center">	 
464									${activarIcon(w, true)} 
465									<a class="text-left" style="font-size: 1em;">${titulo}</a> 
466								</article> 
467								<i class="fal fa-plus-circle" style="font-size: 30px;"></i> 
468							</button> 
469						</h5> 
470					</div> 
471					<div id="collapse${w}" class="collapse" aria-labelledby="heading${w}" data-parent="#accordion"> 
472						<div class="card-body container-it"> 
473							<!-- Colocando la variable del detalle --> 
474							<section class="mobile-bl5-scroll"> 
475								${detalle}  
476							</section> 
477							<!-- Fin de la seccion para la variable del detalle --> 
478						</div> 
479					</div> 
480				</div> 
481				<!-- Fin de seccion del detalle --> 
482			</#if> 
483		</#list> 
484	</#if> 
485</div> 
486<script> 
487	$(".pasos .text-blue-pasos-iteso").hover(function() { 
488		$(this).css("color", "white"); 
489		$(this).find(".number-iteso").css("border-color", "white"); 
490	}, function() { 
491		$(this).css("color", "#42b4e3"); 
492		$(this).find(".number-iteso").css("border-color", "#42b4e3"); 
493	}); 
494	 
495	$("#accordionBL5 .number-iteso").hover(function() { 
496		$(this).css("color", "white"); 
497		$(this).find(".number-iteso").css("border-color", "white"); 
498	}, function() { 
499		$(this).css("color", "#42b4e3"); 
500		$(this).find(".number-iteso").css("border-color", "#42b4e3"); 
501	}); 
502</script> 

ADMON_PROYECTOS_RELACIONADOS_BC7-P

CALENDARIO_CTA3

Programación 2026

Sé parte del ITESO
Solicita más información
Estoy de acuerdo con las Privacy Policies