Funciones del Ministerio Fiscal
Se ha producido un error al procesar la plantilla.
Java method "com.liferay.portal.json.JSONFactoryImpl.convertXMLtoJSONMLObject(String)" threw an exception when invoked on com.liferay.portal.json.JSONFactoryImpl object "com.liferay.portal.json.JSONFactoryImpl@598fc049"; see cause exception in the Java stack trace.
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign jsonIframe = jsonFactoryUtil... [in template "13333257#13333299#5521147" at line 123, column 49]
----
1<article>
2 <div class="p-container">
3 <div class="row">
4 <div class="col-12 col-md-10 mj-content">
5 <#if (introContent.getData())?has_content>
6 <p class="mj-summary">${introContent.getData()}</p>
7 </#if>
8 </div>
9 </div>
10
11 <div class="row mb-0 mb-md-6">
12 <#assign hasImage = (imagesContent.mainImage.imageContent.getData())?has_content />
13 <#assign internalLinkFirst = linksContent.linksInternal.getSiblings()?first/>
14 <#assign hasInternalLinks = internalLinkFirst.titleInternal.getData()?has_content && internalLinkFirst.linkInternal.getFriendlyUrl()?has_content />
15 <#assign externalLinkFirst = linksContent.linksExternal.getSiblings()?first/>
16 <#assign hasExternalLinks = externalLinkFirst.titleExternal.getData()?has_content && externalLinkFirst.linkExternal.getData()?has_content />
17 <#assign documentFirst = documentsContent.documentContent.getSiblings()?first/>
18 <#assign hasDocuments = documentFirst.fileDocument.getData()?has_content && documentFirst.titleFile.getData()?has_content/>
19 <#assign cardFirst = cardsContent.cardContent.getSiblings()?first/>
20 <#assign hasCard = cardFirst.titleCard.getData()?has_content/>
21 <#assign downloadFirst = documentsContent.downloadContent.getSiblings()?first/>
22 <#assign hasDownload = downloadFirst.titleDownload.getData()?has_content/>
23 <#assign paragraphFirst = paragraphs.getSiblings()?first/>
24 <#assign hasParagraphs = paragraphFirst.titleParagraph.getData()?has_content || paragraphFirst.descriptionContent.getData()?has_content />
25 <#assign hasVideo = videoyt.getData()?? && videoyt.getData()?has_content />
26
27 <#if hasImage>
28 <div class="col-12 col-md-3 mb-5">
29 <#--imagen principal -->
30 <figure>
31 <img alt="${htmlUtil.escapeAttribute(imagesContent.mainImage.imageContent.getAttribute('alt'))}"
32 data-fileentryid="${imagesContent.mainImage.imageContent.getAttribute('fileEntryId')}"
33 src="${imagesContent.mainImage.imageContent.getData()}"/>
34 <#if (imagesContent.mainImage.captionImage.getData())?has_content>
35 <figcaption class="mj-figcaption">${imagesContent.mainImage.captionImage.getData()}</figcaption>
36 </#if>
37 </figure>
38 </div>
39 </#if>
40
41 <#if hasParagraphs || hasVideo >
42 <div class="col-12 col-md-${hasImage?then('7','10')}">
43 <#if hasParagraphs >
44 <#list paragraphs.getSiblings() as cur_paragraph>
45 <#if getterUtil.getBoolean(cur_paragraph.collapsible.getData())>
46 <#-- ${languageUtil.get(locale, "yes collapsible")} -->
47 <div class="mj-accordion__item">
48 <div class="mj-accordion__heading" id="heading_${cur_paragraph?index}" data-toggle="collapse" data-target="#collapse_${cur_paragraph?index}" aria-expanded="${(cur_paragraph?index==0)?then('true', 'false')}" aria-controls="collapse_${cur_paragraph?index}" role="button">
49 <div class="mj-accordion__title">
50 <#if (cur_paragraph.titleParagraph.getData())?has_content>
51 <h2 class="mj-headline4 mb-0">${cur_paragraph.titleParagraph.getData()}</h2>
52 </#if>
53 </div>
54 </div>
55 <div class="mj-accordion__body collapse ${(cur_paragraph?index==0)?then('show', '')}" id="collapse_${cur_paragraph?index}" aria-labelledby="heading_${cur_paragraph?index}">
56 <#if (cur_paragraph.descriptionContent.getData())?has_content>
57 <#if cur_paragraph.oneColumn.getData()?? && getterUtil.getBoolean(cur_paragraph.oneColumn.getData())>
58 <#assign columnClass = "" />
59 <#else>
60 <#assign columnClass = "mj-two-columns " />
61 </#if>
62
63 <div class="${columnClass}mb-20 mj-content">
64 ${cur_paragraph.descriptionContent.getData()}
65 </div>
66 </#if>
67
68 <#if cur_paragraph.subparagraphs.getSiblings()?has_content>
69 <#list cur_paragraph.subparagraphs.getSiblings() as cur_subparagraphs>
70 <#if (cur_subparagraphs.titleSubparagraph.getData())?has_content>
71 <h3 class="mj-headline5">${cur_subparagraphs.titleSubparagraph.getData()}</h3>
72 </#if>
73
74 <#if (cur_subparagraphs.textSubparagraph.getData())?has_content>
75 <div class="${columnClass}mb-20 mj-content">
76 ${cur_subparagraphs.textSubparagraph.getData()}
77 </div>
78 </#if>
79 </#list>
80 </#if>
81
82 </div>
83 </div>
84
85 <#else>
86 <#-- ${languageUtil.get(locale, "no collapsible")} -->
87
88 <div class="mb-50">
89 <#if (cur_paragraph.titleParagraph.getData())?has_content>
90 <h2 class="mj-headline4">${cur_paragraph.titleParagraph.getData()}</h2>
91 </#if>
92 <#if (cur_paragraph.descriptionContent.getData())?has_content>
93 <#if cur_paragraph.oneColumn.getData()?? && getterUtil.getBoolean(cur_paragraph.oneColumn.getData())>
94 <#assign columnClass = "" />
95 <#else>
96 <#assign columnClass = "mj-two-columns " />
97 </#if>
98
99 <div class="${columnClass}mb-20 mj-content">
100 ${cur_paragraph.descriptionContent.getData()}
101 </div>
102 </#if>
103 <#if cur_paragraph.subparagraphs.getSiblings()?has_content>
104 <#list cur_paragraph.subparagraphs.getSiblings() as cur_subparagraphs>
105 <#if (cur_subparagraphs.titleSubparagraph.getData())??>
106 <h3 class="mj-headline5">${cur_subparagraphs.titleSubparagraph.getData()}</h3>
107 </#if>
108
109 <#if (cur_subparagraphs.textSubparagraph.getData())??>
110 <div class="${columnClass}mb-20 mj-content">
111 ${cur_subparagraphs.textSubparagraph.getData()}
112 </div>
113 </#if>
114 </#list>
115 </#if>
116 </div>
117 </#if>
118 </#list>
119 </#if>
120 <#if hasVideo>
121 <#assign documentJson = jsonFactoryUtil.createJSONObject(videoyt.data) />
122 <#-- convertimos la etiqueta iframe en json -->
123 <#assign jsonIframe = jsonFactoryUtil.createJSONObject(jsonFactoryUtil.convertXMLtoJSONMLObject(documentJson.html)) />
124 <#-- leemos el campo src y lo modificamos con nocookie -->
125 <#assign iframeSrc = (jsonIframe.src)?replace("youtube","youtube-nocookie") />
126
127 <div class="embed-responsive embed-responsive-16by9">
128 <iframe title="<@liferay.language key='video' /> ${documentJson.title}" type="text/html" src="${iframeSrc}" frameborder="0" allowfullscreen></iframe>
129 </div>
130 </#if>
131 </div>
132 </#if>
133
134 <#if hasInternalLinks || hasExternalLinks || hasDocuments>
135 <div class="col-12 col-md-2">
136 <aside class="mj-aside--border">
137 <#-- enlaces, agrupados tanto internos como externos -->
138 <#if hasInternalLinks || hasExternalLinks>
139 <div class="mj-aside__links-block">
140 <h2 class="mj-label"><@liferay.language key="links" /></h2>
141 <ul class="mj-aside__list">
142 <#-- enlaces internos -->
143 <#list linksContent.linksInternal.getSiblings() as cur_link>
144 <#if (cur_link.titleInternal.getData())?has_content>
145 <li class="mj-aside__list__item">
146 <a class="mj-read-more" href="${cur_link.linkInternal.getFriendlyUrl()}" target="_self">${cur_link.titleInternal.getData()}</a>
147 </li>
148 </#if>
149 </#list>
150 <#-- enlaces externos -->
151 <#list linksContent.linksExternal.getSiblings() as cur_link>
152 <#if (cur_link.titleExternal.getData())?has_content>
153 <li class="mj-aside__list__item">
154 <a class="mj-read-more" href="${cur_link.linkExternal.getData()}" target="_blank" aria-label="<@liferay.language key='opens-new-window' /> ${cur_link.titleExternal.getData()}" title="<@liferay.language key='opens-new-window' />">${cur_link.titleExternal.getData()}</a>
155 </li>
156 </#if>
157 </#list>
158 </ul>
159 </div>
160 </#if>
161
162 <#-- documentos adjuntos -->
163 <#if hasDocuments>
164 <div class="mj-aside__attachment-block">
165 <h2 class="mj-label"><@liferay.language key="attachments" /></h2>
166 <ul class="mj-aside__list">
167 <#list documentsContent.documentContent.getSiblings() as cur_document>
168 <#if (cur_document.fileDocument.getData())?has_content && (cur_document.titleFile.getData())?has_content>
169 <li class="mj-aside__list__item">
170 <p>${cur_document.titleFile.getData()}</p>
171 <a class="mj-link-download" href="${cur_document.fileDocument.getData()}" download aria-label="<@liferay.language key='download' /> ${cur_document.titleFile.getData()}">
172 ${languageUtil.format(locale, "download-x", "", false)}
173 </a>
174 </li>
175 </#if>
176 </#list>
177 </ul>
178 </div>
179 </#if>
180 </aside>
181 </div>
182 </#if>
183 </div>
184
185 <#if (imagesContent.imagesCarrusel.imageCarrusel.getSiblings())?has_content && (imagesContent.imagesCarrusel.imageCarrusel.getData())?has_content >
186 <div class="mj-content__carousel m-0 mb-8">
187 <div class="js-carousel" data-options-slider="new-detail">
188 <#list imagesContent.imagesCarrusel.imageCarrusel.getSiblings() as cur_img>
189 <#if cur_img.getData() != "" >
190 <figure>
191 <#assign pictureAttributesKeyValue = { "class": "mj-slider__pic"} />
192 <#assign cur_imgAltText = htmlUtil.escape(cur_img.getAttribute("alt")) />
193 <#assign imgAttributesKeyValue = { "class": "mj-slider__img", "alt": cur_imgAltText } />
194 <#assign imgHtml = customAmImageUtil.createAMImageByFileEntryId(cur_img.getAttribute("fileEntryId"),600,pictureAttributesKeyValue,imgAttributesKeyValue)/>
195 ${imgHtml}
196 <figcaption class="mj-figcaption">${htmlUtil.escapeAttribute(cur_img.getAttribute('alt'))?truncate_c(90)}</figcaption>
197 </figure>
198 </#if>
199 </#list>
200 </div>
201 </div>
202 </#if>
203
204 <#-- Enlaces destacados -->
205 <#if hasCard>
206 <div class="mj-content__enlaces-destacados mb-8">
207 <#list cardsContent.cardContent.getSiblings() as cur_card>
208 <#if (cur_card.titleCard.getData())?? && cardsContent.cardContent.linkCard??>
209 <a data-senna-off="true" href="${cur_card.linkCard.getFriendlyUrl()}">
210 <div class="mj-box__rounded">
211 <div class="mj-box__rounded--text">${cur_card.titleCard.getData()}</div>
212 <span class="fj-solid fj-fl-der mj-btn-rounded"></span>
213 </div>
214 </a>
215 </#if>
216 </#list>
217 </div>
218 </#if>
219
220 <#-- Descargas -->
221 <#if hasDownload>
222 <div class="mj-section__block">
223 <h2 class="mj-section__block__title"><@liferay.language key="downloads" /></h2>
224 <#if documentsContent.downloadContent.getSiblings()?has_content>
225 <div class="mj-section__block__content mb-8">
226 <ul class="mj-links-list">
227 <#list documentsContent.downloadContent.getSiblings() as cur_dowload>
228 <#if (cur_dowload.titleDownload.getData())?has_content && (cur_dowload.fileDownload.getData())?has_content>
229 <li>
230 <div>
231 <p class="mj-links-list__text">${cur_dowload.titleDownload.getData()?truncate_w(80)}</p>
232 </div>
233 <a class="mj-link-download" href="${cur_dowload.fileDownload.getData()}" download aria-label="<@liferay.language key='download' /> ${cur_dowload.titleDownload.getData()}"><@liferay.language key="download"/></a>
234 </li>
235 </#if>
236 </#list>
237 </ul>
238 </div>
239 </#if>
240 </div>
241 </#if>
242
243 </div>
244</article>
