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.$Proxy88.getLayout(long, boolean, long)" threw an exception when invoked on jdk.proxy3.$Proxy88 object "com.liferay.layout.internal.service.LayoutLocalServiceWrapper@60181038"; 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 261, 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 rootlist = documentlist.getRootElement()> 
250									<#assign titulo = rootlist.selectSingleNode("dynamic-element[@name='titulo']/dynamic-content").getText()/> 
251									<!------------------------------basica liga---------------> 
252									<#if cur_artlist.getDDMStructureKey() == Basica_Liga> 
253										<#assign link = rootlist.selectSingleNode("dynamic-element[@name='link']/dynamic-content").getText()/> 
254										<#assign linkjson = jsonFactoryUtil.createJSONObject(link)> 
255										<#assign url  = rootlist.selectSingleNode("dynamic-element[@name='url']/dynamic-content").getText()/> 
256										<!---------- Validación de la liga -----------> 
257										<#if link != ""> 
258											<#assign linkid = link?split("@")> 
259											<#assign group = groupUtil.getGroup(cur_artlist.getGroupId())> 
260											<#assign groupFriendly = group.getFriendlyURL()> 
261											<#assign layout = layoutService.getLayout(linkjson.getLong("groupId") , linkjson.getBoolean("privateLayout"),linkjson.getLong("layoutId"))> 
262											<#assign layoutFriendly = layout.getFriendlyURL()> 
263											<#assign link_page = "${url_public}${groupFriendly}${layoutFriendly}"> 
264											<!---------- Contruccion url con idenficador -----------> 
265											<a href="${link_page}"> 
266												<section class="d-flex justify-content-start align-items-center text-blue-pasos-iteso"> 
267													<article class="mr-3"> 
268														<!---------- Se obtine la funcion del icono -----------> 
269														${activarIcon(x, false)} 
270													</article> 
271													<article> 
272														<!---------- Titulo de la lista -----------> 
273														<p class="lista-bl5" >${titulo}</p> 
274														<!---------- Fin de titulo de la lista -----------> 
275													</article> 
276												</section> 
277											</a> 
278											<!---------- Fin contruccion url con idenficador -----------> 
279										<#else> 
280											<!---------- Validacion de url con identificador de estructura -----------> 
281											<a href="${url}"> 
282												<section class="mb-3 d-flex justify-content-start align-items-center text-blue-pasos-iteso"> 
283													<article class="mr-3"> 
284														<!---------- Se obtine la funcion del icono -----------> 
285														${activarIcon(x, false)} 
286													</article> 
287													<article> 
288														<!---------- Titulo de la lista -----------> 
289														<p class="lista-bl5">${titulo}</p> 
290														<!---------- Fin de titulo de la lista -----------> 
291													</article> 
292												</section> 
293											</a> 
294											<!---------- Fin de validacion de url con identificador de estructura -----------> 
295										</#if> 
296										<!---------- Fin de validación de la liga -----------> 
297									<#else> 
298										<!------------------------------FIN basica liga---------------> 
299										<#if x==1> 
300											<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"> 
301												<section class="mb-3 d-flex justify-content-start align-items-center text-blue-pasos-iteso"> 
302													<article class="mr-3"> 
303														<!---------- Se obtine la funcion del icono -----------> 
304														${activarIcon(x, false)} 
305													</article> 
306													<article> 
307														<!---------- Titulo de la lista -----------> 
308														<p class="lista-bl5">${titulo}</p> 
309														<!---------- Fin de titulo de la lista -----------> 
310													</article> 
311												</section> 
312											</a> 
313										<#else> 
314											<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"> 
315												<section class="mb-3 d-flex justify-content-start align-items-center text-blue-pasos-iteso"> 
316													<article class="mr-3"> 
317														<!---------- Se obtine la funcion del icono -----------> 
318														${activarIcon(x, false)} 
319													</article> 
320													<article> 
321														<!---------- Titulo de la lista -----------> 
322														<p class="lista-bl5">${titulo}</p> 
323														<!---------- Fin de titulo de la lista -----------> 
324													</article> 
325												</section> 
326											</a> 
327										</#if> 
328									</#if> 
329								</#list> 
330							</#if> 
331						</div> 
332					</article> 
333				</section> 
334			</div> 
335			<!---------- Seccion del contenido -----------> 
336			<div class="col-md-12 col-lg-7" style="background: white;"> 
337				<div class="tab-content tab-content-bl5 h-100" id="v-pills-tabContent"> 
338					<#assign y = 0> 
339					<#if articles?has_content>  
340						<!---------- Lista de articulos -----------> 
341						<#list articles as cur_art> 
342							<#assign y++> 
343							<#assign document = saxReaderUtil.read(cur_art.getContentByLocale(request.locale)) /> 
344							<#assign root = document.getRootElement()> 
345							<!---------- Validacion de estructura -----------> 
346							<#if cur_art.getDDMStructureKey() == Basica_Liga > 
347								<#assign link = root.selectSingleNode("dynamic-element[@name='link']/dynamic-content").getText()/> 
348								<#assign linkjson = jsonFactoryUtil.createJSONObject(link)> 
349								<#assign url  = root.selectSingleNode("dynamic-element[@name='url']/dynamic-content").getText()/> 
350							<#else> 
351								<!---------- Obtener el detalle de los elementos -----------> 
352								<#assign tag = root.selectSingleNode("dynamic-element[@name='tag']/dynamic-content").getText()/> 
353								<#assign titulo = root.selectSingleNode("dynamic-element[@name='titulo']/dynamic-content").getText()/> 
354								<#assign IdGeneral = themeDisplay.getSiteGroup().getExpandoBridge().getAttribute("IdGeneral")> 
355								<#if root.selectSingleNode("dynamic-element[@name='detalle']/dynamic-content")??> 
356									<#assign detalle = root.selectSingleNode("dynamic-element[@name='detalle']/dynamic-content").getText()/> 
357								</#if> 
358								<#if y==1> <!-- Validacion para el iniciador de elementos --> 
359									<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"> 
360										<!-- Seccion del iframe --> 
361										<article class="iframe-iteso "> 
362											<#if detalle??>  
363												${detalle} 
364											</#if> 
365										</article> 
366										<!-- Fin de seccion del iframe --> 
367									</div> 
368								<#else> 
369									<div class="tab-pane h-100 fade " style="padding-bottom: 10em;" id="v-pills-${y}" role="tabpanel" aria-labelledby="v-pills-${y}-tab"> 
370										<!-- Seccion del iframe --> 
371										<article class="iframe-iteso "> 
372											<#if detalle??>  
373												${detalle} 
374											</#if> 
375										</article> 
376										<!-- Fin de seccion del iframe --> 
377									</div> 
378								</#if> 
379								<!---------- Fin de obtener el detalle de los elementos -----------> 
380							</#if> 
381							<!---------- Fin de validacion de estructura -----------> 
382						</#list> 
383						<!---------- Fin de lista de articulos -----------> 
384					</#if> 
385				</div> 
386			</div> 
387			<!---------- fin de seccion del contenido -----------> 
388		</section> 
389	</section> 
390</section> 
391<!----------------------------------- Seccion para movil ------------------------------> 
392<div id="accordion" class="degular-bold d-block d-lg-none acordion-bl5"> 
393	<!---------- Titulo para seccion movil -----------> 
394	<section class="bg-blue-iteso"> 
395		<h2 class="py-4 container-it m-0 text-white">${titulobl5.getData()}</h2> 
396	</section> 
397   <!---------- Fin de titulo para seccion movil -----------> 
398	<#assign w = 0> 
399	<#if articles?has_content> 
400		<!-------- Obteniendo la lista para movil --------> 
401		<#list articles as cur_artlist> 
402			<#assign w ++> 
403			<#assign documentlist = saxReaderUtil.read(cur_artlist.getContentByLocale(request.locale)) /> 
404			<#assign rootlist = documentlist.getRootElement()> 
405			<#assign titulo = rootlist.selectSingleNode("dynamic-element[@name='titulo']/dynamic-content").getText()/> 
406			<!-- Validando para obtener el detalle --> 
407			<#if rootlist.selectSingleNode("dynamic-element[@name='detalle']/dynamic-content")??> 
408				<#assign detalle = rootlist.selectSingleNode("dynamic-element[@name='detalle']/dynamic-content").getText()/> 
409			</#if> 
410			<!-- Fin para validar el detalle --> 
411			<!--------------- Validacion basica liga ---------------> 
412			<#if cur_artlist.getDDMStructureKey() == Basica_Liga > 
413				<#assign link = rootlist.selectSingleNode("dynamic-element[@name='link']/dynamic-content").getText()/> 
414				<#assign linkjson = jsonFactoryUtil.createJSONObject(link)> 
415				<#assign url  = rootlist.selectSingleNode("dynamic-element[@name='url']/dynamic-content").getText()/> 
416				<!-- Validacion del link --> 
417				<#if link != ""> 
418					<#assign linkid = link?split("@")> 
419					<#assign group = groupUtil.getGroup(cur_artlist.getGroupId())> 
420					<#assign groupFriendly = group.getFriendlyURL()> 
421					<#assign layout = layoutService.getLayout(linkjson.getLong("groupId") , linkjson.getBoolean("privateLayout"),linkjson.getLong("layoutId"))> 
422					<#assign layoutFriendly = layout.getFriendlyURL()> 
423					<#assign link_page = "${url_public}${groupFriendly}${layoutFriendly}"> 
424					<div class="card-header bg-blue-iteso rounded-0 container-it" id="heading${w}"> 
425						<h5 class="mb-0 "> 
426							<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}"> 
427								<article class="d-flex  align-items-center">  
428									<a href="${link_page}"> 
429										${activarIcon(w, true)} 
430										<a href="${link_page}" class="text-left" style="font-size: 1.2em;">${titulo}</a><!-- Se coloca la url para la lista del elemento --> 
431									</a> 
432								</article> 
433								<i class="fal fa-plus-circle" style="font-size: 30px;"></i> 
434							</button> 
435						</h5> 
436					</div> 
437				<#else> 
438					<!-- Se obtiene url de la estrutura y seccion para el vinculo --> 
439					<div class="card-header bg-blue-iteso rounded-0 container-it" id="heading${w}"> 
440						<h5 class="mb-0 "> 
441							<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}"> 
442								<article class="d-flex  align-items-center"> 
443									${activarIcon(w, true)} 
444									<!-- Se coloca la url para la lista --> 
445									<a  href="${url}" class="text-left" style="font-size: 1em;">${titulo}</a> 
446								</article> 
447								<i class="fal fa-plus-circle" style="font-size: 30px;"></i> 
448							</button> 
449						</h5> 
450					</div> 
451					<!-- Fin para la url de la estrutura --> 
452				</#if> 
453				<!-- Fin de validacion del link --> 
454			<#else> 
455				<!--  Seccion para obtener los detalles --> 
456				<div class="card m-0 border-0"> 
457					<div class="card-header bg-blue-iteso rounded-0 container-it" id="heading${w}"> 
458						<h5 class="mb-0 "> 
459							<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}"> 
460								<article class="d-flex  align-items-center">	 
461									${activarIcon(w, true)} 
462									<a class="text-left" style="font-size: 1em;">${titulo}</a> 
463								</article> 
464								<i class="fal fa-plus-circle" style="font-size: 30px;"></i> 
465							</button> 
466						</h5> 
467					</div> 
468					<div id="collapse${w}" class="collapse" aria-labelledby="heading${w}" data-parent="#accordion"> 
469						<div class="card-body container-it"> 
470							<!-- Colocando la variable del detalle --> 
471							<section class="mobile-bl5-scroll"> 
472								${detalle}  
473							</section> 
474							<!-- Fin de la seccion para la variable del detalle --> 
475						</div> 
476					</div> 
477				</div> 
478				<!-- Fin de seccion del detalle --> 
479			</#if> 
480		</#list> 
481	</#if> 
482</div> 
483<script> 
484	$(".pasos .text-blue-pasos-iteso").hover(function() { 
485		$(this).css("color", "white"); 
486		$(this).find(".number-iteso").css("border-color", "white"); 
487	}, function() { 
488		$(this).css("color", "#42b4e3"); 
489		$(this).find(".number-iteso").css("border-color", "#42b4e3"); 
490	}); 
491	 
492	$("#accordionBL5 .number-iteso").hover(function() { 
493		$(this).css("color", "white"); 
494		$(this).find(".number-iteso").css("border-color", "white"); 
495	}, function() { 
496		$(this).css("color", "#42b4e3"); 
497		$(this).find(".number-iteso").css("border-color", "#42b4e3"); 
498	}); 
499</script> 

ADMON_PROYECTOS_RELACIONADOS_BC7-P

CALENDARIO_CTA3

Programación 2025

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