Youth Start: premiant el talent de joves que emprenen
S'ha produït un error mentre es processava la plantilla.
The following has evaluated to null or missing:
==> bannerImage.getAttribute("alt") [in template "76121110924137#32361#FICHA_EXPERIENCIA_TPL" at line 48, column 50]
----
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: #if bannerImage?? && bannerImage.getD... [in template "76121110924137#32361#FICHA_EXPERIENCIA_TPL" at line 48, column 1]
----
1<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
2<#assign assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") />
3<#assign UtilsService = serviceLocator.findService("com.educaixa.common.service.EduCaixaCommonService")/>
4<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")/>
5<#assign valoracionesDisplay = serviceLocator.findService("com.educaixa.services.service.RatingStatsLocalService")/>
6<#assign LiteralsToolsServiceUtil = serviceLocator.findService("com.aqua.literals.util.LiteralsToolsService")/>
7<#assign language = themeDisplay.getLocale()/>
8<#assign groupId = themeDisplay.getScopeGroupId()/>
9<#assign restultsLiteral = LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.common.link.resultados") />
10<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()>
11<#assign httpServletRequest = serviceContext.getRequest() />
12<#assign UserBookmarkLocalService = serviceLocator.findService("com.educaixa.services.service.UserBookmarkLocalService") />
13
14<#-- get the content categories -->
15<#assign article = journalArticleLocalService.getArticle(getterUtil.getLong(scopeGroupId), .vars['reserved-article-id'].data) />
16<#assign asset = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", article.resourcePrimKey) />
17
18<#-- get the results URL and valoration value-->
19<#assign results_url = "${themeDisplay.getPortalURL()}/${locale.getLanguage()}${restultsLiteral}?q=" /><#assign valoracionesDisplayAverage = 0/>
20<#if valoracionesDisplay.fetchByResourcePK(themeDisplay.getScopeGroupId(),themeDisplay.getCompanyId(),article.getResourcePrimKey()) ??>
21 <#assign valoracionesDisplayValue = valoracionesDisplay.findByResourcePK(themeDisplay.getScopeGroupId(),themeDisplay.getCompanyId(),article.getResourcePrimKey()) />
22 <#assign valoracionesDisplayAverage = valoracionesDisplayValue.getAverageGlobalScore() />
23</#if>
24
25<#assign journalArticleId = .vars['reserved-article-id'].data/>
26<#assign userId =themeDisplay.getUserId()/>
27<#assign isUserBookmark = UserBookmarkLocalService.isUserBookmark(themeDisplay.getCompanyId(),userId,journalArticleId,groupId)/>
28
29<#assign resourceType = LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.seccion.experiencia") >
30
31<#-- Escape title text -->
32<#if title.getData()??>
33 <#assign titleEscaped = title.getData()?replace('<p>','','r')/>
34 <#assign titleEscaped = titleEscaped?replace('</p>','','r')/>
35 <#assign titleEscaped = titleEscaped?replace('<div>','','r')/>
36 <#assign titleEscaped = titleEscaped?replace('</div>','','r')/>
37 <#assign titleEscaped = titleEscaped?replace('<h1>','','r')/>
38 <#assign titleEscaped = titleEscaped?replace('</h1>','','r')/>
39</#if>
40
41<#if subtitle.getData()??>
42 <#assign subtituloEscaped = subtitle.getData() />
43 <#assign subtituloEscaped = subtituloEscaped?replace('<p>','','r')/>
44 <#assign subtituloEscaped = subtituloEscaped?replace('</p>','','r')/>
45</#if>
46
47<#-- get image alt -->
48<#if bannerImage?? && bannerImage.getData()?? && bannerImage.getAttribute("alt") != "">
49 <#assign altImage = bannerImage.getAttribute("alt") />
50<#else>
51 <#assign altImage = titleEscaped />
52</#if>
53
54<#-- get image banner -->
55<#if bannerImage ?? && bannerImage.getData() != "" && bannerImage.getData() != "">
56 <#assign imagenthumbnailSrc = bannerImage.getData() />
57<#else>
58 <#assign imagenthumbnailSrc = "/o/educaixa-theme/images/blured-lights-experiencia.png" />
59</#if>
60
61<#assign thesaurusCategories = UtilsService.getThesaurusCategories(asset) />
62<#assign tagsCategories = UtilsService.getTagsCategories(asset) />
63<#assign categories = thesaurusCategories + tagsCategories />
64
65<#assign language = themeDisplay.getLocale()/>
66<#assign nivel_educativo_vocabularyId = assetVocabularyLocalService.getGroupVocabulary(groupId, "Nivel educativo").getVocabularyId() />
67<#assign area_conocimiento_vocabularyId = assetVocabularyLocalService.getGroupVocabulary(groupId, "Área de conocimiento").getVocabularyId() />
68<#assign competencias_vocabularyId = assetVocabularyLocalService.getGroupVocabulary(groupId, "Competencias clave").getVocabularyId() />
69
70
71<#assign nivel_educativo = []>
72<#assign area_conocimiento = []>
73<#assign competencias = []>
74<#assign objectius = []>
75
76
77<#list asset.getCategories() as cur_category>
78 <#if cur_category.vocabularyId == nivel_educativo_vocabularyId>
79 <#assign nivel_educativo = nivel_educativo + [cur_category.getTitle(language)]>
80 <#elseif cur_category.vocabularyId == area_conocimiento_vocabularyId>
81 <#assign area_conocimiento = area_conocimiento + [cur_category.getTitle(language)]>
82 <#elseif cur_category.vocabularyId == competencias_vocabularyId>
83 <#assign competencias = competencias + [cur_category.getTitle(language)]>
84 </#if>
85
86</#list>
87
88
89<#-- Login -->
90<#assign is_signed_in = themeDisplay.isSignedIn()/>
91<#assign plid = portalUtil.getPlidFromPortletId(themeDisplay.getScopeGroupId(), "EducaixaMyeducaixaLogin") />
92<#assign loginURL = portletURLFactory.create(httpServletRequest, "EducaixaMyeducaixaLogin", plid, "RENDER_PHASE") />
93${loginURL.setParameter("mvcPath", "/login_modal.jsp")}
94${loginURL.setWindowState("POP_UP")}
95
96<div class="container vertical image-view" style="padding: 0px;">
97 <div class="row">
98 <img alt="${altImage}" src="${imagenthumbnailSrc}" class="img-fluid col-lg-7" style="padding: 0px; width: auto; flex-basis: auto;" width="900" height="548">
99 <div class="box-img col-lg square">
100 <p class="box-img-pre-o color-caixa-red">${resourceType}</p>
101 <#if title?has_content>
102 <h3 class="element-title">${titleEscaped}</h3>
103 </#if>
104 <#if subtitle?has_content>
105 <p class="element-body">${subtituloEscaped}</p>
106 </#if>
107
108 <div class="valoration-row">
109 <div class="links-wrapper">
110
111 </div>
112 </div>
113 <div>
114 <p></p>
115 <div class="card-share flex">
116 <div class="card-actions flex">
117 <div class="statistics">
118 <svg viewBox="0 0 36 36" class="circular-chart orange"><line x1="18" y1="-5" x2="18" y2="5" stroke="black" stroke-width="2"></line>
119 <path class="circle-bg" d="M18 2.0845
120 a 15.9155 15.9155 0 0 1 0 31.831
121 a 15.9155 15.9155 0 0 1 0 -31.831"></path>
122 <path class="circle" stroke-dasharray="${valoracionesDisplayAverage*20}, 100" d="M18 2.0845
123 a 15.9155 15.9155 0 0 1 0 31.831
124 a 15.9155 15.9155 0 0 1 0 -31.831"></path>
125 <text x="18" y="22" class="percentage">${valoracionesDisplayAverage}</text>
126 </svg>
127 </div>
128 <div class="share">
129 <button id="share"></button>
130 <div class="a2a_kit a2a_kit_size_32 a2a_default_style tooltip" data-a2a-title="${titleEscaped}" data-a2a-icon-color="#009AD8">
131 <a class="a2a_button_facebook"></a>
132 <a class="a2a_button_x"></a>
133 <a class="a2a_button_whatsapp"></a>
134 <a class="a2a_button_email"></a>
135 </div>
136 </div>
137 <div class="bookmark">
138 <#if is_signed_in>
139 <#if isUserBookmark>
140 <button id="bookmark" onClick="updateUserBookmark(${journalArticleId},false);" data-articleid="${journalArticleId}" class="bookmark bookmarked"></button>
141 <#else>
142 <button id="bookmark" onClick="updateUserBookmark(${journalArticleId},true);" data-articleid="${journalArticleId}" class="bookmark"></button>
143 </#if>
144 <#else>
145 <button id="bookmark" onClick="event.stopPropagation();openPopup('${loginURL}','','500', '650')"></button>
146 </#if>
147 </div>
148 </div>
149 </div>
150 </div>
151 </div>
152 </div>
153</div>
154
155<div class="container">
156 <div class="row" style="margin-top: 4%;">
157 <div class="col-lg-7">
158 <#if interviewTitle.getData()?? && interviewTitle.getData() != "">
159 <p class="main-text-title color-caixa-red">${interviewTitle.getData()}</p>
160 <p class="main-text">${interviewTitle.inteview.getData()?replace('<iframe','<iframe sandbox="allow-scripts allow-same-origin"')}</p>
161 </#if>
162 <#if highlightTitle.getData()?? && highlightTitle.getData() != "">
163 <p class="main-text-title color-caixa-red">${highlightTitle.getData()}</p>
164 <p class="main-text">${highlightTitle.highlightText.getData()?replace('<iframe','<iframe sandbox="allow-scripts allow-same-origin"')}</p>
165 <#if highlightTitle.highlightInternalFile.getData()?? && highlightTitle.highlightInternalFile.getData() != "">
166 <img alt="${title.getData()}" class="img-fluid col-lg" src="${highlightTitle.highlightInternalFile.getData()}">
167 </#if>
168 </#if>
169 <#if carrouselTitle.getData()?? && carrouselTitle.getData() != "">
170 <p class="main-text-title color-caixa-red">${carrouselTitle.getData()}</p>
171 <p class="main-text">${carrouselTitle.carrouselTxt.getData()}</p>
172 </#if>
173 <#if highlightTitle.highlightExternalVideoLink.getData()?has_content>
174 <#assign YTVideo = highlightTitle.highlightExternalVideoLink.getData()/>
175 <div class="yt-video-wrapper hide-print">
176 <iframe src="https://www.youtube.com/embed/${YTVideo}?rel=0" allowfullscreen webkitallowfullscreen mozallowfullscreen frameborder='0'></iframe>
177 </div>
178 <#elseif highlightTitle.highlightInternalFile.getData()?has_content >
179 <#assign file = DLFileEntryLocalService.getFileEntryByUuidAndGroupId(highlightTitle.highlightInternalFile.getData()?keep_after_last("/")?keep_before("?"),groupId)/>
180 <#assign mimeType = file.getMimeType()?keep_before("/")/>
181 <#if mimeType == "image">
182 <img src="${highlightTitle.highlightInternalFile.getData()}" alt="">
183 <#elseif mimeType == "video">
184 <div class="video-wrapper hide-print">
185 <video controls="" controlsList="nodownload">
186 <source src="${highlightTitle.highlightInternalFile.getData()}" type="${file.getMimeType()}">
187 </video>
188 <div class="playpause"></div>
189 </div>
190 </#if>
191 </#if>
192 </div>
193 <#-- Register content -->
194 <#if journalArticleLocalService.fetchArticle(groupId, "CAPTACION_EXPERIENCIA") ??>
195 <#assign register = journalArticleLocalService.getArticle(groupId, "CAPTACION_EXPERIENCIA")/>
196 <#if register?? && register != "">
197 <#assign registerContent = journalArticleLocalService.getArticleContent(register, register.DDMTemplateKey, "VIEW", themeDisplay.getLocale(),NULL, themeDisplay) />
198 </#if>
199 <#assign registerContent = journalArticleLocalService.getArticleContent(register, register.DDMTemplateKey, "VIEW", themeDisplay.getLocale(),NULL, themeDisplay) />
200 <div class= "captacion-ficha">
201 ${registerContent}
202 </div>
203 </#if>
204 </div>
205</div>
206
207<script>
208$( document ).ready(function() {
209 initAddThis();
210 $("a.header-back-to").attr('onClick','');
211 $("a.header-back-to").attr("href","/es/experiencias");
212 <#if language=='ca_ES'>
213 $("a.header-back-to ").attr("href","/ca/experiencias");
214 </#if>
215});
216</script>
217
218<style>
219.yt-video-wrapper iframe {
220 position: absolute;
221 top: 0;
222 left: 0;
223 width: 100%;
224 height: 100%;
225}
226.image-wrapper, .video-wrapper, .yt-video-wrapper {
227 position: relative;
228}
229.yt-video-wrapper {
230 position: relative;
231 padding-bottom: 56.25%;
232 padding-top: 25px;
233 height: 0;
234}
235.contenido-dcha-item > span {
236 width: 100%;
237 height: 1px;
238 display: inline-block;
239}
240.asset-full-content.clearfix.mb-5.default-asset-publisher.no-title > .align-items-center.d-flex.mb-2 {
241 max-width: 1140px;
242 margin: 0 auto;
243 margin-bottom: 0px;
244 margin-top:20px;
245}
246
247p.component-title.h4 span.header-back-to > a.taglib-icon::after {
248 content: "${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.atras")}";
249 color:#009AD8;
250}
251
252
253.asset-full-content.clearfix.mb-5.default-asset-publisher.no-title > .align-items-center.d-flex.mb-2 .lexicon-icon.lexicon-icon-angle-left {
254 fill: #009AD8;
255 width: 15px;
256 height: 15px;
257 margin-right: 10px;
258}
259.container.vertical.image-view.ficha-evidencias .box-img.col-lg.square {
260 box-shadow: 1px 1px 8px #d0d0d0;
261}
262
263.journal-content-article .col-lg-7 {
264 font-size: 17px;
265 line-height: 27px;
266}
267.journal-content-article p.main-text-title {
268 font-weight: bold;
269 margin-bottom: 20px;
270 font-size: 20px;
271 line-height: 30px;
272}
273
274.journal-content-article a:not([class]) {
275 color: #006fe7;
276}
277.journal-content-article a:not([class]):hover {
278 color: #0056b3;
279}
280
281.has-control-menu .lfr-asset-anchor {
282 display:inline-block;
283}
284
285.register-content a.register-button {
286 display: inline-flex;
287 justify-content: center;
288 align-items: center;
289}
290.journal-content-article .tags a {
291 color: #000000;
292}
293
294.journal-content-article .yt-video-wrapper.hide-print { margin-top:20px;}
295
296</style>



