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>
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>
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>
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>
Cookies
Utilizamos cookies propias y de terceros para fines técnicos, analíticos y de personalización, como es el idioma de navegación seleccionado. Para más información consulta nuestra política de cookies (Abre ventana modal).
Cambiar a: EU
Política de cookies
Esta página web, https://www.bizkaia.eus (en adelante la “Página Web”) utiliza herramientas de seguimiento de la navegación a través de la misma y de la dirección IP del destinatario del servicio, con la finalidad de mejorar y garantizar la prestación de servicios o el funcionamiento técnico de la misma, distinguirle de otras personas usuarias y analizar sus hábitos de navegación.
La presente política de cookies tiene como finalidad informarle de manera clara y precisa sobre el funcionamiento y utilidades de las cookies que utilizamos.
¿Qué es y por qué usamos cookies?
Una cookie es un fichero que se descarga en su dispositivo al acceder a determinadas páginas web.
Las cookies permiten a una página web, entre otras cosas, almacenar y recuperar información sobre los hábitos de navegación de una persona usuaria o de su equipo y, dependiendo de la información que contengan y de la forma en que utilice su equipo, pueden utilizarse para reconocer a la persona usuaria.
La ley vigente permite que almacenemos cookies en su dispositivo si estas son estrictamente necesarias para el funcionamiento de esta página. Sin embargo, para el resto de tipos de cookies necesitaremos permiso.
Tipos de cookies según la entidad que las gestione
Según quién gestione el equipo o dominio desde donde se envían las cookies y trate los datos que se obtengan, podemos distinguir:
-
Cookies propias: están gestionadas por la Diputación Foral de Bizkaia.
-
Cookies de terceros: están gestionadas por otra entidad que trata los datos obtenidos través de las cookies.
En esta página web se pueden encontrar cookies del Gobierno Vasco, utilizadas para fines propios y que se almacenan en dominios ajenos a la Diputación Foral de Bizkaia.
Tipos de cookies según su finalidad
- Cookies técnicas: permiten a la persona usuaria la navegación a través de una página web, plataforma o aplicación y la utilización de las diferentes opciones o servicios que en ella existan como, por ejemplo, controlar el tráfico y la comunicación de datos, identificar la sesión, acceder a partes de acceso restringido, realizar la solicitud de inscripción o participación en un evento, utilizar elementos de seguridad durante la navegación, almacenar contenidos para la difusión de videos o sonido o compartir contenidos a través de redes sociales.
- Cookies de análisis: permiten cuantificar el número de personas usuarias y realizar la medición y análisis estadístico de la navegación que se realiza, con el objetivo de mejorar los servicios que están a su disposición. Pueden ser propias o de terceros.
- Cookies de personalización: permiten a la persona usuaria acceder al servicio con algunas características de carácter general predefinidas en función de una serie de criterios en el dispositivo de la persona usuaria como por ejemplo, el idioma, el tipo de navegador a través del cual accede al servicio, la configuración regional desde donde accede al servicio, etc.
Duración de las cookies
- Cookies de sesión: recaban y almacenan datos mientras la persona usuaria accede a una página web.
- Cookies persistentes: los datos siguen almacenados en el dispositivo y pueden ser accedidos y tratados durante un periodo definido por el responsable de la cookie, que puede ir de unos minutos a varios años.
¿Qué cookies utiliza esta web?
En cada fila se pueden encontrar los datos relativos a una cookie técnica
Nombre | Objetivo | Duración | Propietario |
---|---|---|---|
JSESSIONID | Identificar la sesión | Sesión | Diputación Foral de Bizkaia |
ASPSESSIONID | Identificar la sesión | Sesión | Diputación Foral de Bizkaia |
TS01 | Identificar la sesión | Sesión | Diputación Foral de Bizkaia |
LFR_SESSION_STATE | Identificar la sesión | Sesión | Diputación Foral de Bizkaia |
COOKIE_SUPPORT | Indicar si la persona usuaria tiene activado el soporte para cookies | 1 año | Diputación Foral de Bizkaia |
pc_tecnicas_bizkaia | Recoger las preferencias de aceptación/rechazo sobre el bloque de las cookies técnicas | 1 año | Diputación Foral de Bizkaia |
pc_analitica_bizkaia | Recoger las preferencias de aceptación/rechazo sobre el bloque de las cookies de análisis | 1 año | Diputación Foral de Bizkaia |
pc_preferencias_bizkaia | Recoger las preferencias de aceptación/rechazo sobre el bloque de las cookies de preferencias | 1 año | Diputación Foral de Bizkaia |
pc_terceros_bizkaia | Recoger las preferencias de aceptación/rechazo sobre el bloque de las cookies de terceros | 1 año | Diputación Foral de Bizkaia |
Kultursistema_session | Mantener la sesión de la persona usuaria | 1 hora | Kultursistema |
CPLB | Contiene información utilizada por nuestros servidores de equilibrio de carga | Sesión | Diputación Foral de Bizkaia |
XSRF-TOKEN | Para evitar ataques CSRF (Cross Site Request Forgery) | 1 hora | Kultursistema |
_GRECAPTCHA | Protege el sitio web del spam y los ataques de fuerza bruta | 6 meses |
En cada fila se pueden encontrar los datos relativos a una cookie de análisis
Nombre | Objetivo | Duración | Propietario |
---|---|---|---|
dtCookie | Rastrea una visita a través de múltiples solicitudes | Sesión | Diputación Foral de Bizkaia |
dtLatC | Mide la latencia del servidor para la monitorización del rendimiento | Sesión | Diputación Foral de Bizkaia |
dtPC | Necesario para identificar los parámetros adecuados para la transmisión de balizas; incluye ID de sesión para correlación | Sesión | Diputación Foral de Bizkaia |
dtSa | Almacén intermedio para acciones que abarcan páginas | Sesión | Diputación Foral de Bizkaia |
rxVisitor | ID de visitante para correlacionar sesiones | Permanente | Diputación Foral de Bizkaia |
rxvt | Tiempo de espera de sesión | Sesión | Diputación Foral de Bizkaia |
iyrc-user-id | Distinguir a las personas usuarias | 1 hora | Diputación Foral de Bizkaia |
_ga, _ga_XXXXXXXXXXX | Distinguir a la persona usuaria | 2 años | Google Analytics |
_gat, _gat_XXXXXXXXXXX | Limitar el porcentaje de solicitudes | 1 minuto | Google Analytics |
_gid | Distinguir a las personas usuarias | 1 día | Google Analytics |
MUID | Distinguir a la persona usuaria | 1 año | Microsoft Clarity |
_clck | Asignar preferencias a la misma persona usuaria | 1 año | Microsoft Clarity |
_clsk | Conecta múltiples páginas vistas en una sesión | 1 año | Microsoft Clarity |
CLID | Identificar la primera visita de una persona usuaria | 1 año | Microsoft Clarity |
ANONCHK | Distinguir a la persona usuaria | 1 dia | Microsoft Clarity |
MR | Indica cuando refrescar MUID | 6 meses | Microsoft Clarity |
SM | Sincronizar MUID en el entorno Microsoft | 1 año | Microsoft Clarity |
En cada fila se pueden encontrar los datos relativos a una cookie de personalización
Nombre | Objetivo | Duración | Propietario |
---|---|---|---|
Idioma | Seleccionar el idioma preferido por la persona usuaria | 1 año | Diputación Foral de Bizkaia |
cookie-tramites-favs | Guardar los tramites favoritos en Cita Previa | 1 año | Diputación Foral de Bizkaia |
En cada fila se pueden encontrar los datos relativos a una cookie de terceros
Nombre | Objetivo | Duración | Propietario |
---|---|---|---|
CLID | Identificar la primera visita de una persona usuaria | 1 año | Microsoft Clarity |
APISID | Almacenar las preferencias del usuario y la información durante la visualización de las páginas con los mapas de Google en ellos | 2 años | |
HSID | Prevención del fraude | 2 años | |
MUID | Distinguir a la persona usuaria | 1 año | Microsoft Clarity |
NID | Recordar sus preferencias y otra información | 6 meses | |
SAPISID | Mostrar anuncios personalizados en los sitios de Google | 2 años | |
SID | Proporcionar entrega de anuncios o retargeting, proporcionar prevención del fraude | 2 años | |
SIDCC | Proporcionar la identificación del tráfico web confiable | 1 año | |
SM | Se utiliza para sincronizar el MUID entre dominios de Microsoft | Sesión | Microsoft Clarity |
SSID | Proporcionar entrega de anuncios o retargeting, proporcionar prevención del fraude | 2 años | |
__Secure-1PAPISID | Crear un perfil de los intereses del visitante del sitio web con el fin de mostrar publicidad de Google relevante y personalizada | 2 años | |
__Secure-1PSID | Crear un perfil de los intereses del visitante del sitio web con el fin de mostrar publicidad de Google relevante y personalizada | 2 años | |
__Secure-1PSIDCC | Crear un perfil de los intereses de los visitantes del sitio web para mostrar anuncios relevantes y personalizados a través de retargeting | 1 año | |
__Secure-1PSIDTS | Crear un perfil de los intereses de los visitantes del sitio web para mostrar anuncios relevantes y personalizados a través de retargeting | 1 año | |
__Secure-3PSID | Crear un perfil de los intereses del visitante del sitio web con el fin de mostrar publicidad de Google relevante y personalizada | 2 años | |
__Secure-3PSIDCC | Crear un perfil de los intereses de los visitantes del sitio web para mostrar anuncios relevantes y personalizados a través de retargeting | 1 año | |
__Secure-3PSIDTS | Crear un perfil de los intereses de los visitantes del sitio web para mostrar anuncios relevantes y personalizados a través de retargeting | 1 año | |
__Secure-ENID | Cookie necesaria para la utilización de las opciones y servicios del sitio web | 1 año | |
ar_debug | Depurar anuncios | 1 año | |
MR | Indica cuando refrescar MUID | 6 meses | Microsoft Clarity |
XSRF-TOKEN | Para evitar ataques CSRF (Cross Site Request Forgery) | 1 hora | Kultursistema |
_fbp | Almacenar y rastrear las visitas en los sitios web | 1 año | |
kultursistema_session | Mantener la sesión de la persona usuaria | 1 hora | Kultursistema |
AEC | Detectar spam, fraude y abuso | 6 meses | |
SOCS | Almacenar las elecciones de cookies de la persona usuaria | 13 meses | |
Locale | No disponible | Gobierno Vasco | |
_hegoa_coop_session | Generar un identificador de sesión para las personas usuarias | Sesión | Gobierno Vasco |
¿Cómo desinstalar las cookies?
La persona usuaria, en su primer acceso a la Página Web puede configurar y aceptar o rechazar las cookies en el presente Sitio Web. Posteriormente, la persona usuaria podrá, en cualquier momento, cambiar o retirar su consentimiento a través de la presente Política de Cookies o de la configuración.
No obstante, en cualquier momento podrás ejercer tu derecho de desactivarlas libremente e incluso de eliminar las cookies de esta Página Web. Estas acciones se realizan de forma diferente en función del navegador que estés usando. Aquí te dejamos una guía rápida para los navegadores más populares.
- Desactivar Cookies en Chrome
- Desactivar Cookies en Explorer
- Desactivar Cookies en Firefox
- Desactivar Cookies en Safari
- Desactivar Cookies en Edge
En caso de desactivación o eliminación de las cookies, algunas funcionalidades de la Página web podrían no funcionar correctamente.
Modificaciones de la Política de Cookies
La Página Web se reserva el derecho a modificar la presente Política de Cookies, siempre en los términos permitidos por la legislación vigente. Por ello, le recomendamos revisar esta política cada vez que acceda a nuestro sitio web a los efectos de actualización e información oportunos.
Configurar cookies
A continuación te mostramos las diferentes categorías para las que nuestra web hace uso de cookies. Puedes personalizar tu elección aceptando o rechazando las mismas a través de los botones habilitados para ello. Para más información consulta nuestra política de cookies (Abre ventana modal).
-
Cookies técnicas Siempre activas
Son necesarias para permitirte navegar por nuestra página web y para las tareas básicas para el correcto funcionamiento de la página.