Estudiantes

Aplicaciones anidadas

banner

Publicador de contenidos

Destacados

Menú de navegación

estudiantes 3.2

Todo lo que necesitass

Aplicaciones anidadas

Servicios Estudiantes

Publicador de contenidos

Lo Último

Publicador de contenidos

Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> renderer.getArticle  [in template "20100#20136#422041" at line 133, column 44]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to be 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 docXml = saxReaderUtil.read(r...  [in template "20100#20136#422041" at line 133, column 9]
----
1<style type="text/css"> 
2    .searchTemplate .searchTitle{ 
3        padding: 20px 0px; 
4        background: #f2f2f2; 
5        text-align: center; 
6
7    .searchTemplate .searchTitle h4{ 
8        font-style: italic; 
9        font-weight: 600; 
10        color: #3d3b41; 
11        width: 100% 
12
13    @media (min-width: 768px){ 
14        .searchTemplate .formSearch{ 
15            padding: 30px 50px; 
16            background-color: #f8f8f8; 
17            width: 100%; 
18
19
20    @media (max-width: 767px){ 
21        .searchTemplate .formSearch{ 
22            padding: 30px 30px; 
23            background-color: #f8f8f8; 
24            width: 100%; 
25
26
27    .searchTemplate .formSearch form{ 
28        width: 100%; 
29
30    .searchTemplate .formSearch .searchCont{ 
31        display: flex; 
32        align-items: center; 
33        padding: 15px 0px; 
34
35    .searchTemplate .formSearch .searchCont label{ 
36        font-weight: 600; 
37        float: left; 
38        width: 120px; 
39        text-align: right; 
40        padding: 0px 10px; 
41
42    .searchTemplate .formSearch .radioSearch span{ 
43        font-weight: 600; 
44        height: 60px; 
45        width: 100px; 
46        display: block; 
47        float: left; 
48        padding-right: 15px; 
49        text-align: right; 
50
51    .searchTemplate .formSearch .radioSearch label{ 
52        max-width: 150px; 
53
54    .searchTemplate .formSearch .radioSede #sede2{ 
55        display: none; 
56
57    .searchTemplate .formSearch button { 
58        background-color: #ed6b00; 
59        border-color: #ed6b00; 
60        color: #fff; 
61        display: inline-block; 
62        font-weight: 600; 
63        text-align: center; 
64        white-space: nowrap; 
65        vertical-align: middle; 
66        user-select: none; 
67        border: 0px solid transparent; 
68        padding: .375rem .75rem; 
69        font-size: 1.2rem; 
70        line-height: 1.5; 
71        border-radius: .0px; 
72        float: right; 
73
74 
75    .searchTemplate .formSearch button#limpiar{ 
76        margin-left: 20px; 
77
78 
79    .searchTemplate .formSearch input[type=text], .searchTemplate .formSearch select{ 
80        width: 100%; 
81        float: left; 
82        display: block; 
83        padding: .375rem .75rem; 
84        font-size: 1rem; 
85        line-height: 1.5; 
86        color: #495057; 
87        background-color: #fff; 
88        background-clip: padding-box; 
89        border: 2px solid #c2c1c2; 
90        border-radius: 0rem; 
91
92    .searchTemplate .formSearch #facultad{ 
93 
94
95    .searchTemplate .formSearch #nivel{ 
96 
97
98    .searchTemplate #itemContainer{ 
99        width: 100%; 
100
101    .searchTemplate .informacion-pregrado{ 
102        padding: 25px; 
103        border-bottom: 2px dotted #979797; 
104
105    .searchTemplate .informacion-pregrado .col-md-4{ 
106        display: flex; 
107        align-items: center; 
108
109    .searchTemplate .informacion-pregrado .verprograma{ 
110        background-color: #0056b3; 
111        color: #fff; 
112        display: inline-block; 
113        text-decoration: none; 
114        font-weight: 600; 
115        text-align: center; 
116        white-space: nowrap; 
117        vertical-align: middle; 
118        padding: .375rem .75rem; 
119        font-size: 1.2rem; 
120        line-height: 1.5; 
121        border-radius: 5px; 
122
123</style> 
124<#if entries?has_content> 
125    <#list entries as entry> 
126        <#assign renderer = entry.getAssetRenderer() /> 
127        <#assign className = renderer.getClassName() /> 
128        <#assign viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, entry) /> 
129        <#if assetLinkBehavior != "showFullContent"> 
130            <#assign viewURL=renderer.getURLViewInContext(renderRequest, renderResponse, viewURL) /> 
131        </#if> 
132 
133        <#assign docXml=saxReaderUtil.read(renderer.getArticle().getContent()) /> 
134 
135        <#assign struct=renderer.getArticle().getDDMStructure() /> 
136        <#assign nodos=struct.getDefinition() /> 
137 
138        <#assign json=nodos?eval /> 
139        <#assign fields=json.fields /> 
140 
141        <#list fields as field> 
142            <#if field.options??> 
143                <#if field?index == 1> 
144                    <#assign faculist = field.options> 
145                </#if> 
146                <#if field?index == 2> 
147                    <#assign nivelist = field.options> 
148                </#if> 
149                <#if field?index == 4> 
150                    <#assign modalist = field.options> 
151                </#if> 
152                <#if field?index == 5> 
153                    <#assign jornlist = field.options> 
154                </#if> 
155                <#if field?index == 7> 
156                    <#assign sedelist = field.options> 
157                </#if> 
158            </#if> 
159        </#list> 
160    </#list> 
161</#if> 
162<div class="searchTemplate"> 
163    <div class="searchTitle row" style="margin-left: 0px; margin-right: 0px;"> 
164        <h4>Encuentre su programa de interés</h4> 
165    </div> 
166    <div class="row" style="margin-left: 0px; margin-right: 0px;"> 
167        <div class="formSearch"> 
168            <form id=""> 
169                <div class="row" style="margin-left: 0px; margin-right: 0px;"> 
170                    <div class="col-md-8 searchCont"> 
171                        <label for="search">Programa</label> 
172                        <input type="text" id="search" placeholder="Ejemplo: Biología aplicada"> 
173                    </div> 
174                    <div class="col-md-4 searchCont"> 
175                        <label for="nivel-filtro" >Nivel</label> 
176                        <select id="nivel-filtro"> 
177                            <option value="0" selected></option> 
178                            <#list nivelist as niveL> 
179                                <option value="${niveL.value}">${niveL.value}</option> 
180                            </#list> 
181                        </select> 
182                    </div> 
183                </div> 
184                <div class="row" style="margin-left: 0px; margin-right: 0px;"> 
185                    <div class="col-md-12 searchCont"> 
186                        <label for="facultad-filtro">Facultad</label> 
187                        <select id="facultad-filtro"> 
188                            <option value="0" selected></option> 
189                            <#list faculist as facuL> 
190                                <option value="${facuL.value}">${facuL.value}</option> 
191                            </#list> 
192                        </select> 
193                    </div> 
194                </div> 
195                <div class="row" style="margin-left: 0px; margin-right: 0px;"> 
196                    <div class="col-md-4 radioSearch radioSede"> 
197                        <span>Sede</span> 
198                        <#list sedelist as sedeL> 
199                            <label id="sede${sedeL?index}"><input type="radio" name="sede-filtro" value="${sedeL.value}">${sedeL.value?chop_linebreak}</input></label><br> 
200                        </#list> 
201                    </div> 
202                    <div class="col-md-4 radioSearch"> 
203                        <span>Jornada</span> 
204                        <#list jornlist as jornL> 
205                            <label><input type="radio" name="jorn-filtro" value="${jornL.value}"> 
206                            ${jornL.value}</input></label><br> 
207                        </#list> 
208                    </div> 
209                    <div class="col-md-4 radioSearch"> 
210                        <span>Modalidad</span> 
211                        <#list modalist as modaL> 
212                            <label><input type="radio" name="moda-filtro" value="${modaL.value}">${modaL.value}</input></label><br> 
213                        </#list> 
214                    </div> 
215                     
216                </div> 
217                <button id="limpiar" onclick="clearFilters(); return false;">Limpiar</button> 
218                <button id="buscar" onclick="updateFilters(); return false;">Buscar</button> 
219            </form> 
220        </div> 
221    </div> 
222    <div class="row list" style="margin-left: 0px; margin-right: 0px;"> 
223            <ul id="itemContainer"> 
224                <#if entries?has_content> 
225                    <#list entries as entry> 
226                        <#assign renderer = entry.getAssetRenderer() /> 
227                        <#assign className = renderer.getClassName() /> 
228                        <#assign viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, entry) /> 
229                        <#if assetLinkBehavior != "showFullContent"> 
230                            <#assign viewURL=renderer.getURLViewInContext(renderRequest, renderResponse, viewURL) /> 
231                        </#if> 
232                        <li> 
233                            <#assign docXml=saxReaderUtil.read(renderer.getArticle().getContent()) /> 
234 
235                                <#assign matricula=docXml.valueOf("//dynamic-element[@name='Textobovx']/dynamic-content/text()") /> 
236 
237                                <#assign modalidad=docXml.valueOf("//dynamic-element[@name='Modalidad']/dynamic-content/text()") /> 
238 
239                                <#assign duracion=docXml.valueOf("//dynamic-element[@name='Texto3hhx']/dynamic-content/text()") /> 
240 
241                                <#assign sede=docXml.selectNodes("//dynamic-element[@name='Sede']") /> 
242 
243                                <#assign jornada=docXml.valueOf("//dynamic-element[@name='Jornada']/dynamic-content") /> 
244 
245                                <#assign nivel=docXml.valueOf("//dynamic-element[@name='Nivel']/dynamic-content/text()") /> 
246 
247                                <#assign facultad=docXml.valueOf("//dynamic-element[@name='Facultad']/dynamic-content/text()") /> 
248 
249                                <#assign titulo=docXml.valueOf("//dynamic-element[@name='TituloQueOtorga']/dynamic-content/text()") /> 
250 
251                                <#assign urlp=docXml.valueOf("//dynamic-element[@name='URLDePrograma']/dynamic-content/text()") /> 
252 
253                                <div class="informacion-pregrado row" style="margin-left: 0px; margin-right: 0px;"> 
254                                    <div class="col-md-8"> 
255                                        <h4 class="header-title">${entry.getTitle(locale)}</h4> 
256                                        <div class="contenido"> 
257                                            <b>Título: </b>${titulo}<br> 
258                                            <b>Modalidad: </b><span class="modalidad">${modalidad}</span> - <span class="jornada">${jornada}</span><br> 
259                                            <b>Duración: </b>${duracion}<br> 
260                                            <b>Sede: </b><span class="sede"> 
261                                                <#list sede as entry> 
262                                                    ${entry.valueOf("dynamic-content")} 
263                                                </#list> 
264                                            </span><br> 
265                                            <span style="display: none;" class="nivel">${nivel}</span> 
266                                            <span style="display: none;" class="facultad">${facultad}</span> 
267                                        </div> 
268                                    </div> 
269                                    <div class="col-md-4"> 
270                                        <a class="verprograma" href="${urlp}">Ver programa</a> 
271                                    </div> 
272                                </div> 
273                            </li> 
274                    </#list> 
275                </#if> 
276            </ul> 
277        </div> 
278</div> 
279<script type="text/javascript"> 
280 
281$(document).ready(function(){ 
282	$('#itemContainer li').each(function() { 
283		$(this).hide(); 
284	}); 
285	return false; 
286}); 
287 
288 
289 
290var 
291	sede= null, jornad= null, moda= null, facultad= null, nivel= null, words= null; 
292facultad = $( "#facultad-filtro option:selected" ).text(); 
293nivel = $( "#nivel-filtro option:selected" ).text(); 
294function updateFilters() { 
295  	$('#itemContainer li').hide().filter(function() { 
296    	var 
297	        self = $(this), 
298			result = true; // not guilty until proven guilty 
299	    if (sede && (sede != '')) { 
300	        result = result && true === ($(this).find('.sede').text().toLowerCase().indexOf(sede) > -1); 
301
302	    if (moda && (moda != '')) { 
303	        result = result && moda === $(this).find('.modalidad').text(); 
304
305	    if (nivel && (nivel != '')) { 
306	        result = result && nivel === $(this).find('.nivel').text(); 
307
308	    if (facultad && (facultad != '')) { 
309	        result = result && facultad === $(this).find('.facultad').text(); 
310
311	    if (jornad && (jornad != '')) { 
312	        result = result && true === ($(this).find('.jornada').text().toLowerCase().indexOf(jornad) > -1); 
313
314	    if (words && (words != '')) { 
315	        result = result && true === (normalize($(this).find('.informacion-pregrado').text().toLowerCase()).indexOf(normalize(words)) > -1); 
316
317    	return result; 
318  	}).show(); 
319
320 
321var normalize = (function() { 
322  	var from = "ÃÀÁÄÂÈÉËÊÌÍÏÎÒÓÖÔÙÚÜÛãàáäâèéëêìíïîòóöôùúüûÑñÇç",  
323      	to   = "AAAAAEEEEIIIIOOOOUUUUaaaaaeeeeiiiioooouuuuNnCc", 
324      	mapping = {}; 
325  
326  	for(var i = 0, j = from.length; i < j; i++ ){ 
327  	    mapping[ from.charAt( i ) ] = to.charAt( i ); 
328
329  	return function( str ) { 
330      	var ret = []; 
331      	for( var i = 0, j = str.length; i < j; i++ ) { 
332          	var c = str.charAt( i ); 
333          	if( mapping.hasOwnProperty( str.charAt( i ) ) ){ 
334				ret.push( mapping[ c ] ); 
335			}else{ 
336				ret.push( c ); 
337
338
339      	return ret.join( '' ); 
340
341})(); 
342 
343function clearFilters(){ 
344    $('#search').prop('value', ""); 
345    $('[name=sede-filtro]').prop('checked', false); 
346    $('[name=jorn-filtro]').prop('checked', false); 
347    $('[name=moda-filtro]').prop('checked', false); 
348    $("#facultad-filtro option[value=0]").prop('selected', 'selected'); 
349    $("#nivel-filtro option[value=0]").prop('selected', 'selected'); 
350    sede= null, jornad= null, moda= null, words= null; 
351    $('#itemContainer li').each(function() { 
352		$(this).hide(); 
353    }); 
354    return false; 
355
356 
357$('[name=sede-filtro]').click(function() { 
358	sede = $('[name=sede-filtro]:checked').val().toLowerCase(); 
359	updateFilters(); 
360}); 
361 
362$('[name=jorn-filtro]').click(function() { 
363	jornad = $('[name=jorn-filtro]:checked').val().toLowerCase(); 
364	updateFilters(); 
365}); 
366 
367$('[name=moda-filtro]').click(function() { 
368	moda = $('[name=moda-filtro]:checked').val(); 
369	updateFilters(); 
370}); 
371 
372$('#nivel-filtro').on('change', function() { 
373	nivel = $( "#nivel-filtro option:selected" ).text(); 
374	updateFilters(); 
375}); 
376 
377$('#facultad-filtro').on('change', function() { 
378	facultad = $( "#facultad-filtro option:selected" ).text(); 
379	updateFilters(); 
380}); 
381 
382$('#search').on("keyup",function() { 
383	words = $( "#search").val().toLowerCase(); 
384	updateFilters(); 
385}); 
386</script> 

Publicador de contenidos

Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> renderer.getArticle  [in template "20100#20136#10458639" at line 133, column 44]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to be 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 docXml = saxReaderUtil.read(r...  [in template "20100#20136#10458639" at line 133, column 9]
----
1<style type="text/css"> 
2    .searchTemplate .searchTitle{ 
3        padding: 20px 0px; 
4        background: #f2f2f2; 
5        text-align: center; 
6
7    .searchTemplate .searchTitle h4{ 
8        font-style: italic; 
9        font-weight: 600; 
10        color: #3d3b41; 
11        width: 100% 
12
13    @media (min-width: 768px){ 
14        .searchTemplate .formSearch{ 
15            padding: 30px 50px; 
16            background-color: #f8f8f8; 
17            width: 100%; 
18
19
20    @media (max-width: 767px){ 
21        .searchTemplate .formSearch{ 
22            padding: 30px 30px; 
23            background-color: #f8f8f8; 
24            width: 100%; 
25
26
27    .searchTemplate .formSearch form{ 
28        width: 100%; 
29
30    .searchTemplate .formSearch .searchCont{ 
31        display: flex; 
32        align-items: center; 
33        padding: 15px 0px; 
34
35    .searchTemplate .formSearch .searchCont label{ 
36        font-weight: 600; 
37        float: left; 
38        width: 120px; 
39        text-align: right; 
40        padding: 0px 10px; 
41
42    .searchTemplate .formSearch .radioSearch span{ 
43        font-weight: 600; 
44        height: 60px; 
45        width: 100px; 
46        display: block; 
47        float: left; 
48        padding-right: 15px; 
49        text-align: right; 
50
51    .searchTemplate .formSearch .radioSearch label{ 
52        max-width: 150px; 
53
54    .searchTemplate .formSearch .radioSede #sede2{ 
55        display: none; 
56
57    .searchTemplate .formSearch button { 
58        background-color: #ed6b00; 
59        border-color: #ed6b00; 
60        color: #fff; 
61        display: inline-block; 
62        font-weight: 600; 
63        text-align: center; 
64        white-space: nowrap; 
65        vertical-align: middle; 
66        user-select: none; 
67        border: 0px solid transparent; 
68        padding: .375rem .75rem; 
69        font-size: 1.2rem; 
70        line-height: 1.5; 
71        border-radius: .0px; 
72        float: right; 
73
74 
75    .searchTemplate .formSearch button#limpiar{ 
76        margin-left: 20px; 
77
78 
79    .searchTemplate .formSearch input[type=text], .searchTemplate .formSearch select{ 
80        width: 100%; 
81        float: left; 
82        display: block; 
83        padding: .375rem .75rem; 
84        font-size: 1rem; 
85        line-height: 1.5; 
86        color: #495057; 
87        background-color: #fff; 
88        background-clip: padding-box; 
89        border: 2px solid #c2c1c2; 
90        border-radius: 0rem; 
91
92    .searchTemplate .formSearch #facultad{ 
93 
94
95    .searchTemplate .formSearch #nivel{ 
96 
97
98    .searchTemplate #itemContainer{ 
99        width: 100%; 
100
101    .searchTemplate .informacion-pregrado{ 
102        padding: 25px; 
103        border-bottom: 2px dotted #979797; 
104
105    .searchTemplate .informacion-pregrado .col-md-4{ 
106        display: flex; 
107        align-items: center; 
108
109    .searchTemplate .informacion-pregrado .verprograma{ 
110        background-color: #0056b3; 
111        color: #fff; 
112        display: inline-block; 
113        text-decoration: none; 
114        font-weight: 600; 
115        text-align: center; 
116        white-space: nowrap; 
117        vertical-align: middle; 
118        padding: .375rem .75rem; 
119        font-size: 1.2rem; 
120        line-height: 1.5; 
121        border-radius: 5px; 
122
123</style> 
124<#if entries?has_content> 
125    <#list entries as entry> 
126        <#assign renderer = entry.getAssetRenderer() /> 
127        <#assign className = renderer.getClassName() /> 
128        <#assign viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, entry) /> 
129        <#if assetLinkBehavior != "showFullContent"> 
130            <#assign viewURL=renderer.getURLViewInContext(renderRequest, renderResponse, viewURL) /> 
131        </#if> 
132 
133        <#assign docXml=saxReaderUtil.read(renderer.getArticle().getContent()) /> 
134 
135        <#assign struct=renderer.getArticle().getDDMStructure() /> 
136        <#assign nodos=struct.getDefinition() /> 
137 
138        <#assign json=nodos?eval /> 
139        <#assign fields=json.fields /> 
140 
141        <#list fields as field> 
142            <#if field.options??> 
143                <#if field?index == 1> 
144                    <#assign faculist = field.options> 
145                </#if> 
146                <#if field?index == 2> 
147                    <#assign nivelist = field.options> 
148                </#if> 
149                <#if field?index == 4> 
150                    <#assign modalist = field.options> 
151                </#if> 
152                <#if field?index == 5> 
153                    <#assign jornlist = field.options> 
154                </#if> 
155                <#if field?index == 7> 
156                    <#assign sedelist = field.options> 
157                </#if> 
158            </#if> 
159        </#list> 
160    </#list> 
161</#if> 
162<div class="searchTemplate"> 
163    <div class="searchTitle row" style="margin-left: 0px; margin-right: 0px;"> 
164        <h4>Encuentre su programa de interés</h4> 
165    </div> 
166    <div class="row" style="margin-left: 0px; margin-right: 0px;"> 
167        <div class="formSearch"> 
168            <form id=""> 
169                <div class="row" style="margin-left: 0px; margin-right: 0px;"> 
170                    <div class="col-md-8 searchCont"> 
171                        <label for="search">Programa</label> 
172                        <input type="text" id="search" placeholder="Ejemplo: Biología aplicada"> 
173                    </div> 
174                    <div class="col-md-4 searchCont"> 
175                        <label for="nivel-filtro" >Nivel</label> 
176                        <select id="nivel-filtro"> 
177                            <option value="0" selected></option> 
178                             
179                        </select> 
180                    </div> 
181                </div> 
182                <div class="row" style="margin-left: 0px; margin-right: 0px;"> 
183                    <div class="col-md-12 searchCont"> 
184                        <label for="facultad-filtro">Facultad</label> 
185                       
186                    </div> 
187                </div> 
188                <div class="row" style="margin-left: 0px; margin-right: 0px;"> 
189                    <div class="col-md-4 radioSearch radioSede"> 
190                        <span>Sede</span> 
191                        <#list sedelist as sedeL> 
192                            <label id="sede${sedeL?index}"><input type="radio" name="sede-filtro" value="${sedeL.value}">${sedeL.value?chop_linebreak}</input></label><br> 
193                        </#list> 
194                    </div> 
195                    <div class="col-md-4 radioSearch"> 
196                        <span>Jornada</span> 
197                        <#list jornlist as jornL> 
198                            <label><input type="radio" name="jorn-filtro" value="${jornL.value}"> 
199                            ${jornL.value}</input></label><br> 
200                        </#list> 
201                    </div> 
202                    <div class="col-md-4 radioSearch"> 
203                        <span>Modalidad</span> 
204                        <#list modalist as modaL> 
205                            <label><input type="radio" name="moda-filtro" value="${modaL.value}">${modaL.value}</input></label><br> 
206                        </#list> 
207                    </div> 
208                     
209                </div> 
210                <button id="limpiar" onclick="clearFilters(); return false;">Limpiar</button> 
211                <button id="buscar" onclick="updateFilters(); return false;">Buscar</button> 
212            </form> 
213        </div> 
214    </div> 
215    <div class="row list" style="margin-left: 0px; margin-right: 0px;"> 
216            <ul id="itemContainer"> 
217                <#if entries?has_content> 
218                    <#list entries as entry> 
219                        <#assign renderer = entry.getAssetRenderer() /> 
220                        <#assign className = renderer.getClassName() /> 
221                        <#assign viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, entry) /> 
222                        <#if assetLinkBehavior != "showFullContent"> 
223                            <#assign viewURL=renderer.getURLViewInContext(renderRequest, renderResponse, viewURL) /> 
224                        </#if> 
225                        <li> 
226                            <#assign docXml=saxReaderUtil.read(renderer.getArticle().getContent()) /> 
227 
228                                <#assign matricula=docXml.valueOf("//dynamic-element[@name='Textobovx']/dynamic-content/text()") /> 
229 
230                                <#assign modalidad=docXml.valueOf("//dynamic-element[@name='Modalidad']/dynamic-content/text()") /> 
231 
232                                <#assign duracion=docXml.valueOf("//dynamic-element[@name='Texto3hhx']/dynamic-content/text()") /> 
233 
234                                <#assign sede=docXml.selectNodes("//dynamic-element[@name='Sede']") /> 
235 
236                                <#assign jornada=docXml.valueOf("//dynamic-element[@name='Jornada']/dynamic-content") /> 
237 
238                                <#assign nivel=docXml.valueOf("//dynamic-element[@name='Nivel']/dynamic-content/text()") /> 
239 
240                                <#assign facultad=docXml.valueOf("//dynamic-element[@name='Facultad']/dynamic-content/text()") /> 
241 
242                                <#assign titulo=docXml.valueOf("//dynamic-element[@name='TituloQueOtorga']/dynamic-content/text()") /> 
243 
244                                <#assign urlp=docXml.valueOf("//dynamic-element[@name='URLDePrograma']/dynamic-content/text()") /> 
245 
246                                <div class="informacion-pregrado row" style="margin-left: 0px; margin-right: 0px;"> 
247                                    <div class="col-md-8"> 
248                                        <h4 class="header-title">${entry.getTitle(locale)}</h4> 
249                                        <div class="contenido"> 
250                                            <b>Título: </b>${titulo}<br> 
251                                            <b>Modalidad: </b><span class="modalidad">${modalidad}</span> - <span class="jornada">${jornada}</span><br> 
252                                            <b>Duración: </b>${duracion}<br> 
253                                            <b>Sede: </b><span class="sede"> 
254                                                <#list sede as entry> 
255                                                    ${entry.valueOf("dynamic-content")} 
256                                                </#list> 
257                                            </span><br> 
258                                            <span style="display: none;" class="nivel">${nivel}</span> 
259                                            <span style="display: none;" class="facultad">${facultad}</span> 
260                                        </div> 
261                                    </div> 
262                                    <div class="col-md-4"> 
263                                        <a class="verprograma" href="${urlp}">Ver programa</a> 
264                                    </div> 
265                                </div> 
266                            </li> 
267                    </#list> 
268                </#if> 
269            </ul> 
270        </div> 
271</div> 
272<script type="text/javascript"> 
273 
274$(document).ready(function(){ 
275	$('#itemContainer li').each(function() { 
276		$(this).hide(); 
277	}); 
278	return false; 
279}); 
280 
281 
282 
283var 
284	sede= null, jornad= null, moda= null, facultad= null, nivel= null, words= null; 
285facultad = $( "#facultad-filtro option:selected" ).text(); 
286nivel = $( "#nivel-filtro option:selected" ).text(); 
287function updateFilters() { 
288  	$('#itemContainer li').hide().filter(function() { 
289    	var 
290	        self = $(this), 
291			result = true; // not guilty until proven guilty 
292	    if (sede && (sede != '')) { 
293	        result = result && true === ($(this).find('.sede').text().toLowerCase().indexOf(sede) > -1); 
294
295	    if (moda && (moda != '')) { 
296	        result = result && moda === $(this).find('.modalidad').text(); 
297
298	    if (nivel && (nivel != '')) { 
299	        result = result && nivel === $(this).find('.nivel').text(); 
300
301	    if (facultad && (facultad != '')) { 
302	        result = result && facultad === $(this).find('.facultad').text(); 
303
304	    if (jornad && (jornad != '')) { 
305	        result = result && true === ($(this).find('.jornada').text().toLowerCase().indexOf(jornad) > -1); 
306
307	    if (words && (words != '')) { 
308	        result = result && true === (normalize($(this).find('.informacion-pregrado').text().toLowerCase()).indexOf(normalize(words)) > -1); 
309
310    	return result; 
311  	}).show(); 
312
313 
314var normalize = (function() { 
315  	var from = "ÃÀÁÄÂÈÉËÊÌÍÏÎÒÓÖÔÙÚÜÛãàáäâèéëêìíïîòóöôùúüûÑñÇç",  
316      	to   = "AAAAAEEEEIIIIOOOOUUUUaaaaaeeeeiiiioooouuuuNnCc", 
317      	mapping = {}; 
318  
319  	for(var i = 0, j = from.length; i < j; i++ ){ 
320  	    mapping[ from.charAt( i ) ] = to.charAt( i ); 
321
322  	return function( str ) { 
323      	var ret = []; 
324      	for( var i = 0, j = str.length; i < j; i++ ) { 
325          	var c = str.charAt( i ); 
326          	if( mapping.hasOwnProperty( str.charAt( i ) ) ){ 
327				ret.push( mapping[ c ] ); 
328			}else{ 
329				ret.push( c ); 
330
331
332      	return ret.join( '' ); 
333
334})(); 
335 
336function clearFilters(){ 
337    $('#search').prop('value', ""); 
338    $('[name=sede-filtro]').prop('checked', false); 
339    $('[name=jorn-filtro]').prop('checked', false); 
340    $('[name=moda-filtro]').prop('checked', false); 
341    $("#facultad-filtro option[value=0]").prop('selected', 'selected'); 
342    $("#nivel-filtro option[value=0]").prop('selected', 'selected'); 
343    sede= null, jornad= null, moda= null, words= null; 
344    $('#itemContainer li').each(function() { 
345		$(this).hide(); 
346    }); 
347    return false; 
348
349 
350$('[name=sede-filtro]').click(function() { 
351	sede = $('[name=sede-filtro]:checked').val().toLowerCase(); 
352	updateFilters(); 
353}); 
354 
355$('[name=jorn-filtro]').click(function() { 
356	jornad = $('[name=jorn-filtro]:checked').val().toLowerCase(); 
357	updateFilters(); 
358}); 
359 
360$('[name=moda-filtro]').click(function() { 
361	moda = $('[name=moda-filtro]:checked').val(); 
362	updateFilters(); 
363}); 
364 
365$('#nivel-filtro').on('change', function() { 
366	nivel = $( "#nivel-filtro option:selected" ).text(); 
367	updateFilters(); 
368}); 
369 
370$('#facultad-filtro').on('change', function() { 
371	facultad = $( "#facultad-filtro option:selected" ).text(); 
372	updateFilters(); 
373}); 
374 
375$('#search').on("keyup",function() { 
376	words = $( "#search").val().toLowerCase(); 
377	updateFilters(); 
378}); 
379</script> 
// ]]>