Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing: ==> request.getParameter(parametro) [in template "842907#842945#9755374" at line 10, column 20] ---- 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 numForo = request.getParamete... [in template "842907#842945#9755374" at line 10, column 1] ----
1<#assign fileEntryService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") >
2
3<!-- VARIABLES -->
4<#assign articleId = .vars['reserved-article-id'].data >
5<#assign portletNamespace = themeDisplay.getPortletDisplay().getId() />
6
7
8<#assign renderURL = themeDisplay.getURLCurrent()>
9<#assign parametro = "foro">
10<#assign numForo = request.getParameter(parametro)/>
11<#assign numForo1 ="1"/>
12<#assign numForo2 ="2"/>
13<#assign numForo3 ="3"/>
14
15<#assign groupId = 880311>
16
17<#assign imagenCabecera_ForoI_articleId = "9776888">
18<#assign imagenCabecera_ForoII_articleId = "9777586">
19<#assign imagenCabecera_ForoIII_articleId = "9777704">
20
21<#if numForo = numForo1>
22 <#assign articleId = imagenCabecera_ForoI_articleId>
23<#elseif numForo = numForo2>
24 <#assign articleId = imagenCabecera_ForoII_articleId>
25<#else>
26 <#assign articleId = imagenCabecera_ForoIII_articleId>
27</#if>
28
29<#if !validator.equalsSorted([""], [articleId])>
30 <#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
31 <#assign journalArticle = journalArticleLocalService.getArticle(groupId, articleId) >
32
33 <#assign documentcurrentArticle = saxReaderUtil.read(journalArticle.getContentByLocale(locale)) >
34 <#assign rootElementcurrentArticle = documentcurrentArticle.getRootElement() >
35
36
37 <#assign video = rootElementcurrentArticle.valueOf("//dynamic-element[@name='video']/dynamic-content/text()") />
38 <#assign imageMobile = rootElementcurrentArticle.valueOf("//dynamic-element[@name='imageMobile']/dynamic-content/text()") />
39 <#assign imageTablet = rootElementcurrentArticle.valueOf("//dynamic-element[@name='imageTablet']/dynamic-content/text()") />
40 <#assign imageDesktop = rootElementcurrentArticle.valueOf("//dynamic-element[@name='imageDesktop']/dynamic-content/text()") />
41 <#assign alt = rootElementcurrentArticle.valueOf("//dynamic-element[@name='alt']/dynamic-content/text()") />
42
43 <#if validator.equalsSorted([""], [video])>
44 <picture>
45 <source srcset="${getFileEntryJson(imageMobile)}" media="(max-width: 480px)">
46 <source srcset="${getFileEntryJson(imageTablet)}" media="(max-width: 992px)">
47 <source srcset="${getFileEntryJson(imageDesktop)}" media="(min-width: 993px)">
48 <img src="${getFileEntryJson(imageDesktop)}" alt="${htmlUtil.escape(alt)}">
49 </picture>
50 <#else>
51 <div class="hidden" id="${portletNamespace}video">
52 <video class="lg-video-object lg-html5" controls >
53 <source src="${video}" type="video/mp4">
54 <@liferay.language key="dpt-imagen-cabecera.html5-not-supported" />
55 </video>
56 </div>
57 <#assign text = languageUtil.get(locale, "dpt-imagen-cabecera.html5-not-supported")>
58 <#assign titleVideo = rootElementcurrentArticle.valueOf("//dynamic-element[@name='video']/dynamic-content") />
59
60 <#assign titleVideo = "">
61
62
63 <#if !validator.equalsSorted([""], [titleVideo])>
64 <#assign titleVideo = "<p>${titleVideo}</p>" >
65 <#else>
66 <#assign titleVideo = "">
67 </#if>
68
69 <#assign description = saxReaderUtil.createXPath("dynamic-element[@name='videoFieldSet']/dynamic-element[@name='videoFieldSetFieldSet']/dynamic-element[@name='description']/dynamic-content").selectSingleNode(rootElementcurrentArticle).getStringValue() >
70 <div id="${portletNamespace}lightGalleryHeader">
71
72 <div
73 data-html="#${portletNamespace}video"
74 data-sub-html="${titleVideo}${description}"
75 tabindex="0" class="bipo-video-pointer">
76 <a href="#" class="bipo_video" role="button">
77 <span class="bipo_reproductor bipoicon icon-play2">
78 <span class="sr-only"><@liferay.language key="dpt-imagen-cabecera.play-video" /></span>
79 </span>
80 <picture>
81 <source srcset="${getFileEntryJson(imageMobile)}" media="(max-width: 480px)">
82 <source srcset="${getFileEntryJson(imageTablet)}" media="(max-width: 992px)">
83 <source srcset="${getFileEntryJson(imageDesktop)}" media="(min-width: 993px)">
84 <img src="${getFileEntryJson(imageDesktop)}" alt="${htmlUtil.escape(alt)}">
85 </picture>
86 </a>
87 </div>
88 </div>
89 <script type="text/javascript">
90 var $galeriaVideo = $(document).ready(function(){
91 $('#${portletNamespace}lightGalleryHeader').lightGallery({
92 thumbnail: false,
93 counter:false,
94 download: false
95 });
96 });
97 $galeriaVideo.on('onAfterAppendSubHtml.lg', function(event){
98 $('.lg-close span.sr-only').text('<@liferay.language key="close" />');
99 $('.lg-toogle-transcription').html('<@liferay.language key="lightgallery.transcription" />');
100 $('.lg-video-play span.sr-only').text('<@liferay.language key="play" />');
101 $('.lg-fullscreen span.sr-only').text('<@liferay.language key="full-screen" />');
102 });
103 </script>
104 </#if>
105</#if>
106<#--
107<#if validator.equalsSorted([""], [video.getData()])>
108 <picture>
109 <source srcset="${imageMobile.getData()}" media="(max-width: 480px)">
110 <source srcset="${imageTablet.getData()}" media="(max-width: 992px)">
111 <source srcset="${imageDesktop.getData()}" media="(min-width: 993px)">
112 <img src="${imageDesktop.getData()}" alt="${htmlUtil.escape(alt.getData())}">
113 </picture>
114<#else>
115 <div class="hidden" id="${portletNamespace}video">
116 <video class="lg-video-object lg-html5" controls >
117 <source src="${video.getData()}" type="video/mp4">
118 <@liferay.language key="dpt-imagen-cabecera.html5-not-supported" />
119 </video>
120 </div>
121
122 <#assign text = languageUtil.get(locale, "dpt-imagen-cabecera.html5-not-supported")>
123 <#if video.getChild('title')??>
124 <#assign titleVideo = "<p>video.getChild('title').getData()</p>" >
125 <#else>
126 <#assign titleVideo = "">
127 </#if>
128 <div id="${portletNamespace}lightGalleryHeader">
129 <div
130 data-html="#${portletNamespace}video"
131 data-sub-html="${titleVideo}${video.getChild('description').getData()}"
132 tabindex="0" class="bipo-video-pointer">
133 <a href="#" class="bipo_video" role="button">
134 <span class="bipo_reproductor bipoicon icon-play2">
135 <span class="sr-only"><@liferay.language key="dpt-imagen-cabecera.play-video" /></span>
136 </span>
137 <picture>
138 <source srcset="${imageMobile.getData()}" media="(max-width: 480px)">
139 <source srcset="${imageTablet.getData()}" media="(max-width: 992px)">
140 <source srcset="${imageDesktop.getData()}" media="(min-width: 993px)">
141 <img src="${imageDesktop.getData()}" alt="${htmlUtil.escape(alt.getData())}">
142 </picture>
143 </a>
144 </div>
145 </div>
146 <script type="text/javascript">
147 var $galeriaVideo = $(document).ready(function(){
148 $('#${portletNamespace}lightGalleryHeader').lightGallery({
149 thumbnail: false,
150 counter:false,
151 download: false
152 });
153 });
154 $galeriaVideo.on('onAfterAppendSubHtml.lg', function(event){
155 $('.lg-close span.sr-only').text('<@liferay.language key="close" />');
156 $('.lg-toogle-transcription').html('<@liferay.language key="lightgallery.transcription" />');
157 $('.lg-video-play span.sr-only').text('<@liferay.language key="play" />');
158 $('.lg-fullscreen span.sr-only').text('<@liferay.language key="full-screen" />');
159 });
160 </script>
161</#if>
162
163-->
164<#--Obtener nombre fichero para src-->
165<#function getFileNameEntryJson url >
166 <#assign urljson = url?eval>
167 <#assign group_id =urljson.groupId />
168 <#assign uuid = urljson.uuid />
169 <#assign fichero = urljson.title />
170 <#return fichero />
171</#function>
172
173<#function getFileEntryJson url >
174
175 <#assign urljson = url?eval>
176 <#assign group_id =urljson.groupId />
177 <#assign uuid = urljson.uuid />
178 <#assign fichero = urljson.title />
179
180 <#assign fileEntryService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") >
181 <#assign DLFichero= fileEntryService.getDLFileEntryByUuidAndGroupId(uuid?string, group_id?eval) />
182 <#return "/documents/"+group_id+"/"+DLFichero.getFolderId()+"/"+fichero />
183
184</#function>
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing: ==> request.getParameter(parametro) [in template "842907#842945#9755366" at line 8, column 20] ---- 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 numForo = request.getParamete... [in template "842907#842945#9755366" at line 8, column 1] ----
1<!-- SERVICES -->
2<#assign fileEntryService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") >
3
4<!-- VARIABLES -->
5<#assign portletNamespace = themeDisplay.getPortletDisplay().getId() />
6<#assign renderURL = themeDisplay.getURLCurrent()>
7<#assign parametro = "foro">
8<#assign numForo = request.getParameter(parametro)/>
9<#assign numForo1 ="1"/>
10<#assign numForo2 ="2"/>
11<#assign numForo3 ="3"/>
12
13<#assign groupId = 880311>
14<#assign intro_ForoI_articleId = "9776954">
15<#assign intro_ForoII_articleId = "9777795">
16<#assign intro_ForoIII_articleId = "9777810">
17
18<#if numForo = numForo1>
19 <#assign articleId = intro_ForoI_articleId>
20<#elseif numForo = numForo2>
21 <#assign articleId = intro_ForoII_articleId>
22<#else>
23 <#assign articleId = intro_ForoIII_articleId>
24</#if>
25
26<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
27<#assign journalArticle = journalArticleLocalService.getArticle(groupId, articleId) >
28
29<#assign documentcurrentArticle = saxReaderUtil.read(journalArticle.getContentByLocale(locale)) >
30<#assign rootElementcurrentArticle = documentcurrentArticle.getRootElement() >
31<#assign content = rootElementcurrentArticle.valueOf("//dynamic-element[@name='content']/dynamic-content/text()") />
32
33<#if !validator.equalsSorted([""], [articleId])>
34 ${content}
35</#if>
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing: ==> request.getParameter(parametro) [in template "842907#842945#9755378" at line 8, column 20] ---- 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 numForo = request.getParamete... [in template "842907#842945#9755378" at line 8, column 1] ----
1<!-- SERVICES -->
2<#assign fileEntryService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") >
3
4<!-- VARIABLES -->
5<#assign portletNamespace = themeDisplay.getPortletDisplay().getId() />
6<#assign renderURL = themeDisplay.getURLCurrent()>
7<#assign parametro = "foro">
8<#assign numForo = request.getParameter(parametro)/>
9<#assign numForo1 ="1"/>
10<#assign numForo2 ="2"/>
11<#assign numForo3 ="3"/>
12
13<#assign groupId = 880311>
14<#--<#assign parrafosTitulados_ForoI_articleId = "8899645">-->
15<#assign parrafosTitulados_ForoI_articleId = "">
16<#assign parrafosTitulados_ForoII_articleId = "9777745">
17<#assign parrafosTitulados_ForoIII_articleId = "9773686">
18
19
20
21
22<#if numForo = numForo1>
23 <#assign articleId = parrafosTitulados_ForoI_articleId>
24<#elseif numForo = numForo2>
25 <#assign articleId = parrafosTitulados_ForoII_articleId>
26<#else>
27 <#assign articleId = parrafosTitulados_ForoIII_articleId>
28</#if>
29
30<#if !validator.equalsSorted([""], [articleId])>
31 <#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
32 <#assign journalArticle = journalArticleLocalService.getArticle(groupId, articleId) >
33
34 <#assign documentcurrentArticle = saxReaderUtil.read(journalArticle.getContentByLocale(locale)) >
35 <#assign rootElementcurrentArticle = documentcurrentArticle.getRootElement() >
36 <#assign header = rootElementcurrentArticle.valueOf("//dynamic-element[@name='headerFieldSet']/dynamic-element[@name='header']/dynamic-content/text()") />
37
38 <div class="ccm_container_fullgrey pb-6">
39 <div class="container section">
40 <#if !validator.equalsSorted([""], [header])>
41 <div class="row">
42 <div class="col-xxs-12 col-xxs-offset-0 col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-1 col-md-12 col-md-offset-0">
43 <span class="bipo_ancla_fixed" id="${portletNamespace}parrafosTitulados"></span>
44 <h2 class="colorrojo"><span>${header?upper_case}</span></h2>
45 </div>
46 </div>
47 </#if>
48 <#assign paragraph = rootElementcurrentArticle.selectNodes("//dynamic-element[@name='paragraphFieldSet']") />
49
50
51 <div class="row">
52 <div id="${portletNamespace}bipo_contenedor_pestanias" class="bipo_contenedor_pestanias">
53 <div class="col-xxs-12 col-xxs-offset-0 col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-1 col-md-12 col-md-offset-0">
54 <div class="row">
55 <#if paragraph?has_content>
56 <div class="hidden-xs hidden-sm col-md-3">
57 <div class="bipoinner">
58 <div class="${portletNamespace}bipo_diputacion_menu_pestanias bipo_diputacion_menu_pestanias">
59
60 <ul class="resp-tabs-list bipo_vert1">
61 <#list paragraph as curParagraph>
62 <#assign title = saxReaderUtil.createXPath("dynamic-element[@name='paragraphFieldSetFieldSet']/dynamic-element[@name='title']/dynamic-content").selectSingleNode(curParagraph).data >
63 <#if !validator.equalsSorted([""], [title])>
64 <li>
65 <a href="#${portletNamespace}paragraph-${curParagraph_index}">${title?upper_case}</a>
66 </li>
67 </#if>
68 </#list>
69 </ul>
70
71 </div>
72 </div>
73 </div>
74
75 <div class="col-xxs-12 col-xxs-offset-0 col-xs-12 col-xs-offset-0 col-sm-12 col-sm-offset-0 col-md-9 col-md-offset-0 resp-tabs-container bipo_vert1 ${portletNamespace}contentPestania ">
76 <#list paragraph as curParagraph>
77 <#assign title = saxReaderUtil.createXPath("dynamic-element[@name='paragraphFieldSetFieldSet']/dynamic-element[@name='title']/dynamic-content").selectSingleNode(curParagraph).data >
78 <#if !validator.equalsSorted([""], [title])>
79 <div id="${portletNamespace}paragraph-${curParagraph_index}" class="col-xs-12">
80 <div class="ccm_decalogo_contentPestania col-xxs-12 col-xxs-offset-0 col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-1 col-md-12 col-md-offset-0 bipo_diputacion_pestania ">
81 <h3 class="hidden-xs hidden-sm">${title?upper_case}</h3>
82 <#assign description = saxReaderUtil.createXPath("dynamic-element[@name='paragraphFieldSetFieldSet']/dynamic-element[@name='description']/dynamic-content").selectSingleNode(curParagraph).data >
83 ${description}
84
85 <#assign documentos= curParagraph.selectNodes("dynamic-element[@name='paragraphFieldSetFieldSet']/dynamic-element[@name='document']") />
86 <#if documentos?has_content>
87 <#assign tamDocumentos = documentos?size/>
88 <#assign hayDocumentos = "0"/>
89 <#list documentos as curDocumento>
90 <#assign documento = curDocumento.valueOf("dynamic-element[@name='paragraph']/dynamic-content/text()") />
91 <#if (validator.isNotNull(documento) && !validator.equalsSorted([documento],[""] ))>
92 <#assign hayDocumentos = "1"/>
93 </#if>
94 </#list>
95 </#if>
96 <#if hayDocumentos = "1">
97 <ul>
98 <#list documentos as curDocumento>
99 <#assign documento = curDocumento.valueOf("dynamic-element[@name='paragraph']/dynamic-content/text()") />
100 <#if (validator.isNotNull(documento) && !validator.equalsSorted([documento],[""] ))>
101 <#assign fileEntry = getFileEntryJson(documento) >
102 <#assign title = getFileNameEntryJson(documento) >
103 <#assign enlace = replaceSpecialCharacters(fileEntry)>
104 <li>
105 <a href="${enlace}">${title}</a>
106 </li>
107 </#if>
108 </#list>
109 </ul>
110 </#if>
111
112 </div>
113 </div>
114 </#if>
115 </#list>
116 </div>
117 </#if>
118 </div>
119 </div>
120 </div>
121 </div>
122
123 </div>
124 </div>
125
126</#if>
127<script>
128
129$(document).ready(function() {
130
131 $('#${portletNamespace}bipo_contenedor_pestanias').easyResponsiveTabs({
132 tabidentify: "bipo_vert1",
133 width: "992px",
134 closed: "accordion",
135 read_more: false
136 });
137
138 $('.${portletNamespace}bipo_diputacion_menu_pestanias').scrollToFixed({
139 marginTop: 140,
140 limit: function() {
141 var limite = 0;
142 limite = $('.${portletNamespace}contentPestania .resp-tab-content-active .bipo_diputacion_pestania').offset().top + $('.${portletNamespace}contentPestania .resp-tab-content-active .bipo_diputacion_pestania').outerHeight(true) - $(this).outerHeight(true);
143 return limite;
144 },
145 zIndex: 1,
146 minWidth: 992,
147 removeOffsets: true
148 });
149
150 var ${portletNamespace}fixBipoMenuPestainaTop = function() {
151 if ($('.${portletNamespace}bipo_diputacion_menu_pestanias').css('position') == 'absolute'){
152 $('.${portletNamespace}bipo_diputacion_menu_pestanias').css('position','static');
153 }
154
155 var ${portletNamespace}pos5 = $('#${portletNamespace}bipo_contenedor_pestanias').offset();
156 var ${portletNamespace}offsetMenu5 = parseInt(${portletNamespace}pos5.top, 10);
157 $(document).scrollTop( ${portletNamespace}offsetMenu5 - 200 );
158 ${portletNamespace}cargarReadMore();
159 }
160
161 $( '#${portletNamespace}bipo_contenedor_pestanias li.resp-tab-item a ' ).on( 'click', function() {
162 setTimeout(function(){$(window).resize();${portletNamespace}fixBipoMenuPestainaTop()},1);
163 });
164
165 /* $(document).on( 'click','.${portletNamespace}button', function() {
166 if ($( ".resp-tab-content-active .bipo_toggle_contenido span" ).hasClass( "icon-flecha_acordeon_plegar" )){
167 }else{
168 setTimeout(function(){$(window).resize();${portletNamespace}fixBipoMenuPestainaTop()},1);
169 }
170 });*/
171
172 ${portletNamespace}cargarReadMore();
173
174});
175
176function ${portletNamespace}cargarReadMore(){
177 $("#${portletNamespace}bipo_contenedor_pestanias .bipo_diputacion_pestania").each(function() {
178 $(this).readmore('destroy');
179 $(this).readmore({
180 collapsedHeight: 450,
181 heightMargin: 23,
182 embedCSS: false,
183 moreLink: '<p><button class="${portletNamespace}button bipo_toggle_contenido ccm-btn_readMore hidden-xxs hidden-xs hidden-sm"><span class="bipoicon icon-flecha_acordeon_desplegar"></span><span class="bipo_texto_boton"><@liferay.language key="dpt-parrafos-titulados.show-more" /></span></button></p>',
184 lessLink: '<p><button class="${portletNamespace}button bipo_toggle_contenido ccm-btn_readMore hidden-xxs hidden-xs hidden-sm"><span class="bipoicon icon-flecha_acordeon_plegar"></span><span class="bipo_texto_boton"><@liferay.language key="dpt-parrafos-titulados.show-less" /></span></button></p>',
185 startOpen: true,
186 blockProcessed: function() {$(document).on('click','#${portletNamespace}bipo_contenedor_pestanias .bipo_toggle_contenido',function(){setTimeout(function(){$('#${portletNamespace}bipo_contenedor_pestanias .bipo_diputacion_menu_pestanias').trigger('resize');${portletNamespace}fixBipoMenuPestainaTop()},1);
187 $('[id*=rmjs]').removeAttr("aria-expanded");});
188 },
189 beforeToggle: function() {$(document).on('click','#${portletNamespace}bipo_contenedor_pestanias .bipo_toggle_contenido',function(){setTimeout(function(){$('#${portletNamespace}bipo_contenedor_pestanias .bipo_diputacion_menu_pestanias').trigger('resize');${portletNamespace}fixBipoMenuPestainaTop()},1);});
190 }
191 });
192 });
193}
194</script>
195
196<#--Obtener fichero para src-->
197<#function getFileEntryJson url >
198 <#assign urljson = url?eval>
199 <#assign group_id =urljson.groupId />
200 <#assign uuid = urljson.uuid />
201 <#assign fichero = urljson.title />
202 <#assign fileEntryService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") >
203 <#assign DLFichero= fileEntryService.getDLFileEntryByUuidAndGroupId(uuid?string, group_id?eval) />
204 <#return "/documents/"+group_id+"/"+DLFichero.getFolderId()+"/"+fichero />
205</#function>
206
207<#--Obtener nombre fichero para src-->
208<#function getFileNameEntryJson url >
209 <#assign urljson = url?eval>
210 <#assign group_id =urljson.groupId />
211 <#assign uuid = urljson.uuid />
212 <#assign fichero = urljson.title />
213 <#return fichero />
214</#function>
215
216
217<#function replaceSpecialCharacters(url)>
218 <#return htmlUtil.escapeHREF(url?replace("|","%7C")) />
219</#function>
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing: ==> request.getParameter(parametro) [in template "842907#842945#9755370" at line 8, column 20] ---- 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 numForo = request.getParamete... [in template "842907#842945#9755370" at line 8, column 1] ----
1<!-- SERVICES -->
2<#assign fileEntryService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") >
3<#assign textFormatter = staticUtil["com.liferay.portal.kernel.util.TextFormatter"]>
4<!-- VARIABLES -->
5<#assign portletNamespace = themeDisplay.getPortletDisplay().getId() />
6<#assign renderURL = themeDisplay.getURLCurrent()>
7<#assign parametro = "foro">
8<#assign numForo = request.getParameter(parametro)/>
9<#assign numForo1 ="1"/>
10<#assign numForo2 ="2"/>
11<#assign numForo3 ="3"/>
12
13<#assign groupId = 880311>
14<#assign archivos_ForoI_articleId = "9777121">
15<#assign archivos_ForoII_articleId = "9777835">
16<#assign archivos_ForoIII_articleId = "9777944">
17
18<#if numForo = numForo1>
19 <#assign articleId = archivos_ForoI_articleId>
20<#elseif numForo = numForo2>
21 <#assign articleId = archivos_ForoII_articleId>
22<#else>
23 <#assign articleId = archivos_ForoIII_articleId>
24</#if>
25
26<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
27<#assign journalArticle = journalArticleLocalService.getArticle(groupId, articleId) >
28
29<#assign documentcurrentArticle = saxReaderUtil.read(journalArticle.getContentByLocale(locale)) >
30<#assign rootElementcurrentArticle = documentcurrentArticle.getRootElement() >
31<#assign content = rootElementcurrentArticle.valueOf("//dynamic-element[@name='content']/dynamic-content/text()") />
32
33
34<#if !validator.equalsSorted([""], [articleId])>
35
36 <div id="${portletNamespace}ccm_acciones_CiudadaniaCajaGris" class="ccm_container_fullblanco pb-6 mb-3">
37 <div class="container ccm_content">
38 <div class="row">
39 <div class="col-sm-12 col-md-8 pr-md-5">
40 <#assign titulo = rootElementcurrentArticle.valueOf("//dynamic-element[@name='titulo']/dynamic-content/text()") />
41 <#if (validator.isNotNull(titulo) && !validator.equalsSorted([titulo],[""] ))>
42 <h2 class=""><span>${titulo?upper_case}</span></h2>
43 </#if>
44 </div>
45 </div>
46
47 <@pintarDocumentos/>
48
49
50 </div>
51 </div>
52
53</#if>
54
55<#function replaceSpecialCharacters(url)>
56 <#return htmlUtil.escapeHREF(url?replace("|","%7C")) />
57</#function>
58
59
60<#macro pintarDocumentos>
61 <#assign nombreDocumento = "" />
62 <#assign documento = "" />
63 <#assign fileEntry = ""/>
64 <#assign extension =""/>
65 <#assign size=""/>
66 <#assign tamanyo ="" />
67 <#assign currentArticleDocumentos = rootElementcurrentArticle.selectNodes("dynamic-element[@field-reference='documentoFieldSet']") />
68 <#if currentArticleDocumentos?has_content>
69 <#assign tamDocumentos = currentArticleDocumentos?size/>
70 <div class="row">
71 <div class="col-md-12">
72 <#if tamDocumentos gt 1>
73 <ul class="bipo-ccm_listas listasPDF">
74 </#if>
75
76 <#list currentArticleDocumentos as curDocumento>
77 <#assign nombreDocumento ="">
78 <#assign nombreDocumento= saxReaderUtil.createXPath("dynamic-element[@field-reference='documentoFieldSetFieldSet']/dynamic-element[@name='tituloDocumento']/dynamic-content").selectSingleNode(curDocumento).data >
79 <#assign documento = curDocumento.valueOf("dynamic-element[@field-reference='documento']/dynamic-content/text()") />
80 <#assign extension ="">
81 <#assign size = "">
82 <#-- SI HAY DOCUMENTO SE PINTA ELEMENTO -->
83 <#if (validator.isNotNull(documento) && !validator.equalsSorted([documento],[""] ))>
84
85 <#assign target="target='_blank'">
86 <#assign title=languageUtil.get(locale, 'ccm.opens-new-window')>
87 <#assign fileEntry = getFileEntryInfo(documento) />
88 <#assign extension = fileEntry.extension?upper_case>
89 <#assign size =textFormatter.formatStorageSize(fileEntry.size, locale)?upper_case>
90 <#assign file = getFileEntryJson(documento) />
91 <#if (size?contains("KB"))>
92 <#assign tamanyo = size?replace("KB", "<abbr title='Kilobytes' lang='en'>KB</abbr>")>
93 <#elseif (size?contains("MB"))>
94 <#assign tamanyo = size?replace("MB", "<abbr title='Megabytes' lang='en'>MB</abbr>")>
95 </#if>
96
97 <#if tamDocumentos gt 1>
98 <li>
99 <#else>
100 <p class="bipo-ccm_listas listasPDF">
101 </#if>
102 <a href="${file}" ${target} title="${title}">
103 <span class="bipoicon icon-descargar">${extension}</span>
104 ${nombreDocumento} <span class="typeOswald">(${tamanyo})</span>
105 </a>
106 <#if tamDocumentos gt 1>
107 </li>
108 <#else>
109 </p>
110 </#if>
111
112 </#if>
113 </#list>
114 <#if tamDocumentos gt 1>
115 </ul>
116 </#if>
117 </div>
118 </div>
119 </#if>
120</#macro>
121
122
123<#--Obtener fichero para src-->
124<#function getFileEntryJson url >
125 <#assign urljson = url?eval>
126 <#assign group_id =urljson.groupId />
127 <#assign uuid = urljson.uuid />
128 <#assign fichero = urljson.title />
129 <#assign fileEntryService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") >
130 <#assign DLFichero= fileEntryService.getDLFileEntryByUuidAndGroupId(uuid?string, group_id?eval) />
131 <#return "/documents/"+group_id+"/"+DLFichero.getFolderId()+"/"+fichero />
132</#function>
133
134<#--Obtener fichero para obtener size, extension....-->
135<#function getFileEntryInfo url >
136 <#assign urljson = url?eval>
137 <#assign group_id =urljson.groupId />
138 <#assign uuid = urljson.uuid />
139 <#assign fileEntryService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") >
140 <#return fileEntryService.getDLFileEntryByUuidAndGroupId(uuid?string, group_id?eval) />
141</#function>