educaixa-search Portlet

Editor de continguts

S'ha produït un error mentre es processava la plantilla.
The following has evaluated to null or missing:
==> tipo  [in template "10154#10192#FICHA_ACTUALIDAD_TPL" at line 6, column 17]

----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign type = tipo.getData()?keep_af...  [in template "10154#10192#FICHA_ACTUALIDAD_TPL" at line 6, column 1]
----
1<#assign DLFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") /> 
2<#assign LiteralsToolsServiceUtil = serviceLocator.findService("com.aqua.literals.util.LiteralsToolsService")/> 
3<#assign language = themeDisplay.getLocale()/> 
4<#assign groupId = themeDisplay.getScopeGroupId()/> 
5<#assign theme_color = themeDisplay.getColorSchemeId()/> 
6<#assign type = tipo.getData()?keep_after('"')?keep_before('"') /> 
7 
8<div class="contenido-ficha"> 
9	<div class="contenido-ficha-central"> 
10	<#if type == "actuality" > 
11	    <#attempt> 
12		<#if highlightTitle?? && highlightTitle.getData()?has_content> 
13			<#-- Seccion video/imagen destacado --> 
14			<div id="actualidad-highlight" class="bloque"> 
15				<h3>${highlightTitle.getData()}</h3> 
16				<div> 
17				<#if highlightTitle.highlightText.getData()?has_content> 
18					${highlightTitle.highlightText.getData()} 
19				</#if> 
20				<#if highlightTitle.highlightExternalVideoLink.getData()?has_content> 
21					<#assign YTVideo = highlightTitle.highlightExternalVideoLink.getData()/> 
22					<div class="yt-video-wrapper"> 
23						<iframe src="https://www.youtube.com/embed/${YTVideo}?rel=0" allowfullscreen webkitallowfullscreen mozallowfullscreen frameborder='0'></iframe> 
24					</div> 
25					<#-- if YTVideo?contains("youtu.be") || YTVideo?contains("watch") || YTVideo?contains("embed") > 
26						<#if YTVideo?contains("youtu.be")> 
27							<#assign YTVideo =  YTVideo?split(".be/")[1]?split("#")[0]/> 
28						<#elseif YTVideo?contains("watch")> 
29							<#assign YTVideo =  YTVideo?split("v=")[1]?split("#")[0]/> 
30						</#if> 
31						<#if YTVideo?contains("?")> 
32							<#assign inter = ""/> 
33							<#if YTVideo?contains("fs=")> 
34								<#assign fs = ""/> 
35							<#else> 
36								<#assign fs = "&fs=1"/> 
37							</#if> 
38						<#else> 
39							<#assign inter = "?"/> 
40							<#if YTVideo?contains("fs=")> 
41								<#assign fs = ""/> 
42							<#else> 
43								<#assign fs = "&fs=1"/> 
44							</#if> 
45						</#if>  
46						<#assign YTVideo = "https://www.youtube.com/embed/${YTVideo}${inter}${fs}"/> 
47						<div class="yt-video-wrapper"> 
48							<iframe src="${YTVideo}?rel=0 allowfullscreen webkitallowfullscreen mozallowfullscreen frameborder='0'"></iframe> 
49						</div> 
50					</#if -->					 
51				<#elseif highlightTitle.highlightInternalFile.getData()?has_content > 
52					<#assign file = DLFileEntryLocalService.getFileEntryByUuidAndGroupId(highlightTitle.highlightInternalFile.getData()?keep_after_last("/")?keep_before("?"),groupId)/> 
53					<#assign mimeType = file.getMimeType()?keep_before("/")/> 
54					<#if mimeType == "image"> 
55						<img src="${highlightTitle.highlightInternalFile.getData()}" alt="">  
56					<#elseif mimeType == "video"> 
57						<div class="video-wrapper"> 
58							<video controls="" controlsList="nodownload"> 
59							  <source src="${highlightTitle.highlightInternalFile.getData()}" type="${file.getMimeType()}"> 
60							</video> 
61							<div class="playpause"></div> 
62						</div> 
63					</#if> 
64				</#if> 
65				</div> 
66			</div> 
67		</#if> 
68		<#recover> 
69		</#attempt> 
70		 
71		<#-- Seccion de contenido--> 
72		<#attempt> 
73		<#if contentTitle.getData()?has_content || contentTitle.contentTxt.getData()?has_content> 
74			<div id="actualidad-contenido" class="bloque bullet-bloque"> 
75				<h3>${contentTitle.getData()}</h3> 
76				<#if contentTitle.contentTxt.getData()?has_content> 
77					<div>${contentTitle.contentTxt.getData()}</div> 
78				</#if> 
79			</div> 
80		</#if> 
81		<#recover> 
82		</#attempt> 
83		 
84		<#-- Seccion entrevista--> 
85		<#attempt> 
86		<#if interviewTitle ?? && interviewTitle.getData()?has_content> 
87			<div id="actualidad-entrevista"  class="bloque bullet-bloque"> 
88				<h3>${interviewTitle.getData()}</h3> 
89				<#if interviewTitle.inteview.getData()?has_content> 
90					<div>${interviewTitle.inteview.getData()}</div> 
91				</#if> 
92			</div> 
93		</#if> 
94		<#recover> 
95		</#attempt> 
96		 
97		<#-- Seccion carrousel--> 
98		<#attempt> 
99		<#if carrouselTitle?? && carrouselTitle.getData()?has_content> 
100			<div id="actualidad-carrousel" class="bloque bullet-bloque" style="display:block;"> 
101				<h3>${carrouselTitle.getData()}</h3> 
102				<div> 
103					<#if carrouselTitle.carrouselTxt?? && carrouselTitle.carrouselTxt.getData()?has_content> 
104						${carrouselTitle.carrouselTxt.getData()} 
105					</#if> 
106					<#if carrouselTitle.carrouselElem.getSiblings()?has_content> 
107						<div class="carrousel-images-videos"> 
108							<#list carrouselTitle.carrouselElem.getSiblings() as carrouselElem> 
109								<#if carrouselElem.carrouselInternalElem?? && carrouselElem.carrouselInternalElem.getData()?has_content> 
110									<#assign file = DLFileEntryLocalService.getFileEntryByUuidAndGroupId(carrouselElem.carrouselInternalElem.getData()?keep_after_last("/")?keep_before("?"),groupId)/> 
111									<#assign mimeType = file.getMimeType()?keep_before("/")/> 
112									<#if mimeType == "image"> 
113										<div class="image-wrapper slide-1"> 
114											<img style="width:100%; height:auto" src="${carrouselElem.carrouselInternalElem.getData()}" alt="">  
115											<div class="carrousel-info"> 
116												<#if carrouselElem.videoTitle?? && carrouselElem.videoTitle.getData()?has_content> 
117													<span class="slide-title blanco">${carrouselElem.videoTitle.getData()}</span> 
118												</#if> 
119												<div class="slide-counter blanco"> 
120													<span class="blanco"></span> 
121												</div> 
122											</div> 
123										</div> 
124									<#elseif mimeType == "video"> 
125										<div class="video-wrapper slide-2"> 
126											<video style="width:100%; height:auto" controls controlsList="nodownload"> 
127											  <source src="${carrouselElem.carrouselInternalElem.getData()}" type="${file.getMimeType()}"> 
128											</video> 
129											<div class="playpause"></div> 
130											<div class="carrousel-info"> 
131												<#-- span class="slide-title blanco">${file.getTitle()?keep_before(".")}</span --> 
132												<#if carrouselElem.videoTitle?? && carrouselElem.videoTitle.getData()?has_content> 
133													<span class="slide-title blanco">${carrouselElem.videoTitle.getData()}</span> 
134												</#if> 
135												<div class="slide-counter blanco"> 
136													<span class="blanco"></span> 
137												</div> 
138											</div> 
139										</div> 
140									</#if> 
141								<#elseif carrouselElem.carrouselExternalElem?? && carrouselElem.carrouselExternalElem.getData()?has_content> 
142									<#assign YTVideo = carrouselElem.carrouselExternalElem.getData()/> 
143									<#-- if YTVideo?contains("youtu.be") || YTVideo?contains("watch") || YTVideo?contains("embed") > 
144										<#if YTVideo?contains("youtu.be")> 
145											<#assign YTVideo =  YTVideo?split(".be/")[1]?split("#")[0]/> 
146										<#elseif YTVideo?contains("watch")> 
147											<#assign YTVideo =  YTVideo?split("v=")[1]?split("#")[0]/> 
148										</#if> 
149										<#if YTVideo?contains("?")> 
150											<#assign inter = ""/> 
151											<#if YTVideo?contains("fs=")> 
152												<#assign fs = ""/> 
153											<#else> 
154												<#assign fs = "&fs=1"/> 
155											</#if> 
156										<#else> 
157											<#assign inter = "?"/> 
158											<#if YTVideo?contains("fs=")> 
159												<#assign fs = ""/> 
160											<#else> 
161												<#assign fs = "&fs=1"/> 
162											</#if> 
163										</#if>  
164										<#assign YTVideo = "https://www.youtube.com/embed/${YTVideo}${inter}${fs}&enablejsapi=1"/> 
165									</#if --> 
166									<div class="yt-video-wrapper slide-3"> 
167									 
168										<#-- Overlay para poder hacer swipe sobre el video 
169										<div class="carrousel-yt-overlay"></div> --> 
170										<#-- Div que se sustituye por iframe en caso de utilizar la API de YT, id = id del video 
171										<div class="yt-video-iframe" id="${YTVideo}"></div> --> 
172										 
173										<iframe src="https://www.youtube.com/embed/${YTVideo}?rel=0" allowfullscreen webkitallowfullscreen mozallowfullscreen frameborder='0'></iframe> 
174 
175										<#-- iframe src="${YTVideo}?rel=0" enablejsapi='1' allowfullscreen webkitallowfullscreen mozallowfullscreen frameborder='0'></iframe --> 
176										<div class="carrousel-info slide-titulo-3"> 
177											<#if carrouselElem.videoTitle?? && carrouselElem.videoTitle.getData()?has_content> 
178												<span class="slide-title blanco">${carrouselElem.videoTitle.getData()}</span> 
179											</#if> 
180											<div class="slide-counter blanco"> 
181												<span class="blanco"></span> 
182											</div> 
183										</div> 
184									</div> 
185								</#if> 
186							</#list> 
187						</div> 
188					</#if> 
189				</div> 
190			</div> 
191		</#if> 
192		<#recover> 
193		</#attempt> 
194		 
195		<#-- Seccion texto e imagen--> 
196		<#attempt> 
197		<#if txtImgTitle?? && txtImgTitle.getData()?has_content> 
198			<div id="actualidad-txtimg" class="bloque bullet-bloque"> 
199				<h3>${txtImgTitle.getData()}</h3> 
200				<div> 
201					<#if txtImgTitle.txtImgTxt?? && txtImgTitle.txtImgTxt.getData()?has_content> 
202						${txtImgTitle.txtImgTxt.getData()} 
203					</#if> 
204					<#if txtImgTitle.txtImgImage?? && txtImgTitle.txtImgImage.getData()?has_content> 
205						<div class="imagen-y-texto"> 
206							<img src="${txtImgTitle.txtImgImage.getData()}" alt="${txtImgTitle.txtImgImage.getAttribute('alt')}" /> 
207							<#if txtImgTitle.txtImgImage.txtImgImageTxt?? && txtImgTitle.txtImgImage.txtImgImageTxt.getData()?has_content> 
208								${txtImgTitle.txtImgImage.txtImgImageTxt.getData()} 
209							</#if> 
210						</div> 
211					</#if> 
212				</div> 
213			</div> 
214		</#if> 
215		<#recover> 
216		</#attempt> 
217		 
218		<#-- Seccion material didactico--> 
219		<#attempt> 
220		<#if instructionalMaterialTxt.getData()?has_content || instructionalMaterialTxt.linkTxt.getSiblings()?has_content || instructionalMaterialTxt.fileText.getSiblings()?has_content > 
221			<div class="bloque" id="descripcion-materiales-y-descarga"> 
222				<#if instructionalMaterialTxt?? && instructionalMaterialTxt.getData()?has_content> 
223				<h3>${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.materials.and.downloads")}</h3> 
224														 
225					<div class="descripcion-materiales-y-descarga-text"> 
226						${instructionalMaterialTxt.getData()} 
227					</div> 
228				</#if> 
229				<#if instructionalMaterialTxt.linkTxt.getSiblings()?has_content && (instructionalMaterialTxt.linkTxt.getSiblings()[0].internalLink.getData()?has_content || instructionalMaterialTxt.linkTxt.getSiblings()[0].externalLink.getData()?has_content)> 
230					<ul class="material"> 
231						<#list instructionalMaterialTxt.linkTxt.getSiblings() as linkTxt> 
232							<li> 
233							<#if linkTxt.internalLink?? && linkTxt.internalLink.getData()?has_content> 
234								<a href="${linkTxt.internalLink.getData()}" > 
235							<#elseif linkTxt.externalLink?? &&linkTxt.externalLink.getData()?has_content> 
236								<a href="${linkTxt.externalLink.getData()}" target="_blank"> 
237							</#if> 
238								<span class="mat-and-down-before"></span> 
239								<span class="mat-and-down-text">${linkTxt.getData()}</span> 
240								<span class="mat-and-down-after"></span> 
241								</a> 
242							</li> 
243						</#list> 
244					</ul> 
245				</#if> 
246				<#if instructionalMaterialTxt.fileText.getSiblings()?has_content && instructionalMaterialTxt.fileText.getSiblings()[0].file.getData()?has_content> 
247					<ul class="descargas"> 
248						<#list instructionalMaterialTxt.fileText.getSiblings() as fileText> 
249							<#if fileText.file?? && fileText.file.getData()?has_content> 
250								<#assign file = DLFileEntryLocalService.getFileEntryByUuidAndGroupId(fileText.file.getData()?keep_after_last("/")?keep_before("?"),groupId) /> 
251								<li> 
252									<a href="${fileText.file.getData()}" target="_blank"> 
253									<span class="mat-and-down-before"></span> 
254									<span class="mat-and-down-text">${fileText.getData()}<span> (${file.getMimeType()?keep_after_last("/")?upper_case} ${file.getSize()[0..(file.getSize()?length - 4)]}Kb)</span></span> 
255									<span class="mat-and-down-after"></span> 
256									</a> 
257								</li> 
258							</#if> 
259						</#list> 
260					</ul> 
261				</#if> 
262				<#if instructionalMaterialTxt.zipFile?? && instructionalMaterialTxt.zipFile.getData()?has_content> 
263					<p class="center"><a href="${instructionalMaterialTxt.zipFile.getData()}" class="${theme_color} font-xtra-small download">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.download.all")}</a></p> 
264				</#if> 
265			</div> 
266		</#if>	 
267		<#recover> 
268		</#attempt> 
269		 
270		<#-- Seccion ponente --> 
271		<#attempt> 
272		<#if presenterImg?? && presenterImg.getData()?has_content> 
273			<div  id="actualidad-presentador" class="bloque"> 
274				<h3>${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.presenter")}</h3> 
275				<div> 
276					<#if presenterTxt?? && presenterTxt.getData()?has_content> 
277						<div class="texto-seccion-ponente">${presenterTxt.getData()}</div> 
278					</#if> 
279					<#if presenterImg.getSiblings()?has_content> 
280						<#list presenterImg.getSiblings() as presenter> 
281							<div class="caja-autores" > 
282								<img src="${presenter.getData()}" alt="${presenter.getAttribute('alt')}" /> 
283								<div class="contenido-caja-autores"> 
284									<#if presenter.presenterName?? && presenter.presenterName.getData()?has_content> 
285										<p class="nombre-autor negro bold"> 
286											${presenter.presenterName.getData()} 
287										</p> 
288									</#if> 
289									<#if presenter.presenterCareer?? && presenter.presenterCareer.getData()?has_content> 
290										<p class="cargo-autor"> 
291											${presenter.presenterCareer.getData()} 
292										</p> 
293									</#if> 
294									<#if presenter.presenterDescription?? && presenter.presenterDescription.getData()?has_content> 
295										<div class="descripcion-ponente"> 
296											${presenter.presenterDescription.getData()} 
297										</div> 
298										<p class="wrapper-acceso-modal-ponente" data-open-ponente-index = "${presenter?index}"><a class="hide ver-mas actualidad acceso-modal-ponente">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.see.more")?upper_case}</a></p> 
299										 
300										<div class="modal-ponente hide" data-ponente-index = "${presenter?index}" > 
301											<span class="modal-close"></span> 
302											<div class="modal-caja-info margin-bottom-20">  
303												<img src="${presenter.getData()}" alt="${presenter.getAttribute('alt')}" /> 
304												<div class="modal-caja-info-txt"> 
305												<#if presenter.presenterName?? && presenter.presenterName.getData()?has_content> 
306													<p class="nombre-autor negro bold margin-top-10"> 
307														${presenter.presenterName.getData()} 
308													</p> 
309												</#if> 
310												<#if presenter.presenterCareer?? && presenter.presenterCareer.getData()?has_content> 
311													<p class="cargo-autor"> 
312														${presenter.presenterCareer.getData()} 
313													</p> 
314												</#if> 
315												<ul class="social ponente-social"> 
316													<#if presenter.presenterTwitter?? && presenter.presenterTwitter.getData()?has_content> 
317														<li> 
318															<a href="${presenter.presenterTwitter.getData()}" class="twitter" title="Ir a Twitter" target="_blank">Twitter</a> 
319														</li> 
320													</#if> 
321													<#if presenter.presenterInstagram?? && presenter.presenterInstagram.getData()?has_content> 
322														<li> 
323															<a href="${presenter.presenterInstagram.getData()}" class="instagram" title="Ir a Instagram" target="_blank">Instagram</a> 
324														</li> 
325													</#if> 
326													<#if presenter.presenterFacebook?? && presenter.presenterFacebook.getData()?has_content> 
327														<li> 
328															<a href="${presenter.presenterFacebook.getData()}" class="facebook" title="Ir a Facebook" target="_blank">Facebook</a> 
329														</li> 
330													</#if> 
331													<#if presenter.presenterLinkedin?? && presenter.presenterLinkedin.getData()?has_content> 
332														<li> 
333															<a href="${presenter.presenterLinkedin.getData()}" class="linkedin" title="Ir a LinkedIn" target="_blank">LinkedIn</a> 
334														</li> 
335													</#if> 
336												</ul> 
337												</div> 
338											</div> 
339											<div class="descripcion-ponente-modal"> 
340												${presenter.presenterDescription.getData()} 
341											</div> 
342										</div> 
343									 
344									</#if> 
345									<ul class="social ponente-social"> 
346										<#if presenter.presenterTwitter?? && presenter.presenterTwitter.getData()?has_content> 
347											<li> 
348												<a href="${presenter.presenterTwitter.getData()}" class="twitter" title="Ir a Twitter" target="_blank">Twitter</a> 
349											</li> 
350										</#if> 
351										<#if presenter.presenterInstagram?? && presenter.presenterInstagram.getData()?has_content> 
352											<li> 
353												<a href="${presenter.presenterInstagram.getData()}" class="instagram" title="Ir a Instagram" target="_blank">Instagram</a> 
354											</li> 
355										</#if> 
356										<#if presenter.presenterFacebook?? && presenter.presenterFacebook.getData()?has_content> 
357											<li> 
358												<a href="${presenter.presenterFacebook.getData()}" class="facebook" title="Ir a Facebook" target="_blank">Facebook</a> 
359											</li> 
360										</#if> 
361										<#if presenter.presenterLinkedin?? && presenter.presenterLinkedin.getData()?has_content> 
362    										<li> 
363    											<a href="${presenter.presenterLinkedin.getData()}" class="linkedin" title="Ir a LinkedIn" target="_blank">LinkedIn</a> 
364    										</li> 
365    									</#if> 
366									</ul> 
367								</div> 
368							</div> 
369						</#list> 
370					</#if> 
371				</div> 
372			</div> 
373        </#if> 
374        <#recover> 
375        </#attempt> 
376		<#else> 
377		<#attempt> 
378		<#if highlightTitle?? && highlightTitle.getData()?has_content> 
379			<#-- Seccion video/imagen destacado --> 
380			<div id="slavin-highlight" class="bloque"> 
381				<h3>${highlightTitle.getData()}</h3> 
382				<div> 
383				<#if highlightTitle.highlightText?? && highlightTitle.highlightText.getData()?has_content> 
384					${highlightTitle.highlightText.getData()} 
385				</#if> 
386				<#if highlightTitle.highlightExternalVideoLink?? && highlightTitle.highlightExternalVideoLink.getData()?has_content> 
387					<div class="yt-video-wrapper"> 
388						<iframe src="https://www.youtube.com/embed/${YTVideo}?rel=0" allowfullscreen webkitallowfullscreen mozallowfullscreen frameborder='0'></iframe> 
389					</div> 
390					<#assign YTVideo = highlightTitle.highlightExternalVideoLink.getData()/> 
391					<#-- if YTVideo?contains("youtu.be") || YTVideo?contains("watch") || YTVideo?contains("embed") > 
392						<#if YTVideo?contains("youtu.be")> 
393							<#assign YTVideo =  YTVideo?split(".be/")[1]?split("#")[0]/> 
394						<#elseif YTVideo?contains("watch")> 
395							<#assign YTVideo =  YTVideo?split("v=")[1]?split("#")[0]/> 
396						</#if> 
397						<#if YTVideo?contains("?")> 
398							<#assign inter = ""/> 
399							<#if YTVideo?contains("fs=")> 
400								<#assign fs = ""/> 
401							<#else> 
402								<#assign fs = "&fs=1"/> 
403							</#if> 
404						<#else> 
405							<#assign inter = "?"/> 
406							<#if YTVideo?contains("fs=")> 
407								<#assign fs = ""/> 
408							<#else> 
409								<#assign fs = "&fs=1"/> 
410							</#if> 
411						</#if>  
412						<#assign YTVideo = "https://www.youtube.com/embed/${YTVideo}${inter}${fs}"/> 
413						<div class="yt-video-wrapper"> 
414							<iframe src="${YTVideo}?rel=0 allowfullscreen webkitallowfullscreen mozallowfullscreen frameborder='0'"></iframe> 
415						</div> 
416					</#if -->					 
417				<#elseif highlightTitle.highlightInternalFile?? && highlightTitle.highlightInternalFile.getData()?has_content > 
418					<#assign file = DLFileEntryLocalService.getFileEntryByUuidAndGroupId(highlightTitle.highlightInternalFile.getData()?keep_after_last("/")?keep_before("?"),groupId)/> 
419					<#assign mimeType = file.getMimeType()?keep_before("/")/> 
420					<#if mimeType == "image"> 
421						<img src="${highlightTitle.highlightInternalFile.getData()}" alt="">  
422					<#elseif mimeType == "video"> 
423						<div class="video-wrapper"> 
424							<video controls="" controlsList="nodownload"> 
425							  <source src="${highlightTitle.highlightInternalFile.getData()}" type="${file.getMimeType()}"> 
426							</video> 
427							<div class="playpause"></div> 
428						</div> 
429					</#if> 
430				</#if> 
431				 
432				</div> 
433			</div> 
434		</#if> 
435		<#recover> 
436		</#attempt> 
437		</#if> 
438	</div> 
439</div> 
440 
441 
442 
443<style> 
444    .contenido-ficha-dcha .bloque.bullet-bloque ul { 
445    	list-style: unset; 
446
447    .contenido-ficha-dcha .bloque.bullet-bloque ul li { 
448	    color: #607d8b; 
449        font-family: "Lato-Regular",Arial,Helvetica,sans-serif; 
450
451	 
452	.bloque .descripcion-materiales-y-descarga-text ul{ 
453    	list-style: unset; 
454
455	.bloque .descripcion-materiales-y-descarga-text ul li { 
456	    color: #607d8b; 
457        font-family: "Lato-Regular",Arial,Helvetica,sans-serif; 
458
459    .bloque .texto-seccion-ponente ul{ 
460    	list-style: unset; 
461
462	.bloque .texto-seccion-ponente ul li { 
463	    color: #607d8b; 
464        
465       .bloque .descripcion-ponente ul{ 
466    	list-style: unset; 
467
468	.bloque .descripcion-ponente ul li { 
469	    color: #607d8b; 
470        font-family: "Lato-Regular",Arial,Helvetica,sans-serif; 
471
472</style> 
473 
474 
475<script> 
476 
477	/*if($('.video-wrapper video').length) { 
478		$('.video-wrapper').click(function () { 
479			var video = $(this).find('video').get(0); 
480			if(video.paused){      
481				video.play();   
482				$(this).find('.playpause').fadeOut(); 
483			}else{       
484				video.pause(); 
485				$(this).find('.playpause').fadeIn(); 
486
487		}); 
488 
489		$('.video-wrapper video').get(0).onended = function() { 
490			$(this).siblings('.playpause').fadeIn(); 
491		}; 
492
493 
494	$( document ).ready(function() { 
495		if ($('.carrousel-images-videos').length) { 
496			$(".carrousel-images-videos").slick({ 
497				dots: false, 
498				infinite: false, 
499				adaptiveHeight: true, 
500				swipe: false, 
501				slidesToShow: 1, 
502				slidesToScroll: 1 
503			}); 
504			 
505			// Funcion que detiene la ejecucion de los videos al cambiar de slide 
506			$('.carrousel-images-videos').on('beforeChange', function(event, slick, currentSlide, nextSlide){ 
507				var current = $('.slick-current'); 
508				if (current.find('.video-wrapper').length) { 
509					current.find('.video-wrapper video').get(0).pause(); 
510					current.find('.video-wrapper .playpause').fadeIn(); 
511					console.log('was html5'); 
512
513				else if (current.find('.yt-video-wrapper').length) { 
514					current.find('.yt-video-wrapper iframe')[0].contentWindow.postMessage('{"event":"command","func":"' + 'stopVideo' + '","args":""}', '*'); 
515
516			}); 
517			 
518			if ($('.carrousel-images-videos.slick-slider')[0].slick.slideCount > 1) { 
519				$('.carrousel-images-videos .slick-slide').each(function(){ 
520					var actualSlide = Number(this.dataset.slickIndex) + 1; 
521					$(this).find('.carrousel-info .slide-counter span').html(actualSlide + '/' + $('.slick-slider')[0].slick.slideCount); 
522				}); 
523
524			else { 
525				$(this).find('.carrousel-info .slide-counter').hide(); 
526
527
528	});*/ 
529 
530/* 
531	// Importación librería YT 
532	var tag = document.createElement('script'); 
533	tag.src = "https://www.youtube.com/iframe_api"; 
534	var firstScriptTag = document.getElementsByTagName('script')[0]; 
535	firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 
536 
537	// Crea iframe para el reproductor, sustituyendo div por el iframe 
538	var initPlayer = function(element) { 
539		var player = $(element).find('.yt-video-iframe'); 
540		var button = $(element).find('.carrousel-yt-overlay'); 
541		var ytplayer = new YT.Player(player.attr('id'), { 
542			videoId: player.attr('id'), 
543			events: { 
544			  'onStateChange': onPlayerStateChange 
545
546		}); 
547		button.on('click', function() { 
548			switch (ytplayer.getPlayerState()) { 
549			case 1: 
550				ytplayer.pauseVideo(); 
551				break; 
552			default: 
553				ytplayer.playVideo(); 
554				break; 
555
556		}) 
557
558	 
559	// La API invoca esta función cuando la página termina de descargar el código JavaScript para la API del reproductor 
560	function onYouTubeIframeAPIReady() { 
561		var container = $('.carrousel-images-videos .yt-video-wrapper'); 
562		  for (var i = 0; i < container.length; i++) { 
563			initPlayer(container[i]); 
564
565
566	 
567	function onPlayerStateChange(event) { 
568		switch (event.target.getPlayerState()) { 
569			case 1: 
570				$(event.target.a).siblings('.carrousel-yt-overlay').removeClass('hide'); 
571				break; 
572			default: 
573				$(event.target.a).siblings('.carrousel-yt-overlay').addClass('hide'); 
574				break; 
575
576
577*/ 
578</script> 

Editor de continguts

S'ha produït un error mentre es processava la plantilla.
The following has evaluated to null or missing:
==> tipo  [in template "10154#10192#FICHA_ACTUALIDAD_TPL" at line 6, column 17]

----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign type = tipo.getData()?keep_af...  [in template "10154#10192#FICHA_ACTUALIDAD_TPL" at line 6, column 1]
----
1<#assign DLFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") /> 
2<#assign LiteralsToolsServiceUtil = serviceLocator.findService("com.aqua.literals.util.LiteralsToolsService")/> 
3<#assign language = themeDisplay.getLocale()/> 
4<#assign groupId = themeDisplay.getScopeGroupId()/> 
5<#assign theme_color = themeDisplay.getColorSchemeId()/> 
6<#assign type = tipo.getData()?keep_after('"')?keep_before('"') /> 
7 
8<div class="contenido-ficha"> 
9	<div class="contenido-ficha-central"> 
10	<#if type == "actuality" > 
11	    <#attempt> 
12		<#if highlightTitle?? && highlightTitle.getData()?has_content> 
13			<#-- Seccion video/imagen destacado --> 
14			<div id="actualidad-highlight" class="bloque"> 
15				<h3>${highlightTitle.getData()}</h3> 
16				<div> 
17				<#if highlightTitle.highlightText.getData()?has_content> 
18					${highlightTitle.highlightText.getData()} 
19				</#if> 
20				<#if highlightTitle.highlightExternalVideoLink.getData()?has_content> 
21					<#assign YTVideo = highlightTitle.highlightExternalVideoLink.getData()/> 
22					<div class="yt-video-wrapper"> 
23						<iframe src="https://www.youtube.com/embed/${YTVideo}?rel=0" allowfullscreen webkitallowfullscreen mozallowfullscreen frameborder='0'></iframe> 
24					</div> 
25					<#-- if YTVideo?contains("youtu.be") || YTVideo?contains("watch") || YTVideo?contains("embed") > 
26						<#if YTVideo?contains("youtu.be")> 
27							<#assign YTVideo =  YTVideo?split(".be/")[1]?split("#")[0]/> 
28						<#elseif YTVideo?contains("watch")> 
29							<#assign YTVideo =  YTVideo?split("v=")[1]?split("#")[0]/> 
30						</#if> 
31						<#if YTVideo?contains("?")> 
32							<#assign inter = ""/> 
33							<#if YTVideo?contains("fs=")> 
34								<#assign fs = ""/> 
35							<#else> 
36								<#assign fs = "&fs=1"/> 
37							</#if> 
38						<#else> 
39							<#assign inter = "?"/> 
40							<#if YTVideo?contains("fs=")> 
41								<#assign fs = ""/> 
42							<#else> 
43								<#assign fs = "&fs=1"/> 
44							</#if> 
45						</#if>  
46						<#assign YTVideo = "https://www.youtube.com/embed/${YTVideo}${inter}${fs}"/> 
47						<div class="yt-video-wrapper"> 
48							<iframe src="${YTVideo}?rel=0 allowfullscreen webkitallowfullscreen mozallowfullscreen frameborder='0'"></iframe> 
49						</div> 
50					</#if -->					 
51				<#elseif highlightTitle.highlightInternalFile.getData()?has_content > 
52					<#assign file = DLFileEntryLocalService.getFileEntryByUuidAndGroupId(highlightTitle.highlightInternalFile.getData()?keep_after_last("/")?keep_before("?"),groupId)/> 
53					<#assign mimeType = file.getMimeType()?keep_before("/")/> 
54					<#if mimeType == "image"> 
55						<img src="${highlightTitle.highlightInternalFile.getData()}" alt="">  
56					<#elseif mimeType == "video"> 
57						<div class="video-wrapper"> 
58							<video controls="" controlsList="nodownload"> 
59							  <source src="${highlightTitle.highlightInternalFile.getData()}" type="${file.getMimeType()}"> 
60							</video> 
61							<div class="playpause"></div> 
62						</div> 
63					</#if> 
64				</#if> 
65				</div> 
66			</div> 
67		</#if> 
68		<#recover> 
69		</#attempt> 
70		 
71		<#-- Seccion de contenido--> 
72		<#attempt> 
73		<#if contentTitle.getData()?has_content || contentTitle.contentTxt.getData()?has_content> 
74			<div id="actualidad-contenido" class="bloque bullet-bloque"> 
75				<h3>${contentTitle.getData()}</h3> 
76				<#if contentTitle.contentTxt.getData()?has_content> 
77					<div>${contentTitle.contentTxt.getData()}</div> 
78				</#if> 
79			</div> 
80		</#if> 
81		<#recover> 
82		</#attempt> 
83		 
84		<#-- Seccion entrevista--> 
85		<#attempt> 
86		<#if interviewTitle ?? && interviewTitle.getData()?has_content> 
87			<div id="actualidad-entrevista"  class="bloque bullet-bloque"> 
88				<h3>${interviewTitle.getData()}</h3> 
89				<#if interviewTitle.inteview.getData()?has_content> 
90					<div>${interviewTitle.inteview.getData()}</div> 
91				</#if> 
92			</div> 
93		</#if> 
94		<#recover> 
95		</#attempt> 
96		 
97		<#-- Seccion carrousel--> 
98		<#attempt> 
99		<#if carrouselTitle?? && carrouselTitle.getData()?has_content> 
100			<div id="actualidad-carrousel" class="bloque bullet-bloque" style="display:block;"> 
101				<h3>${carrouselTitle.getData()}</h3> 
102				<div> 
103					<#if carrouselTitle.carrouselTxt?? && carrouselTitle.carrouselTxt.getData()?has_content> 
104						${carrouselTitle.carrouselTxt.getData()} 
105					</#if> 
106					<#if carrouselTitle.carrouselElem.getSiblings()?has_content> 
107						<div class="carrousel-images-videos"> 
108							<#list carrouselTitle.carrouselElem.getSiblings() as carrouselElem> 
109								<#if carrouselElem.carrouselInternalElem?? && carrouselElem.carrouselInternalElem.getData()?has_content> 
110									<#assign file = DLFileEntryLocalService.getFileEntryByUuidAndGroupId(carrouselElem.carrouselInternalElem.getData()?keep_after_last("/")?keep_before("?"),groupId)/> 
111									<#assign mimeType = file.getMimeType()?keep_before("/")/> 
112									<#if mimeType == "image"> 
113										<div class="image-wrapper slide-1"> 
114											<img style="width:100%; height:auto" src="${carrouselElem.carrouselInternalElem.getData()}" alt="">  
115											<div class="carrousel-info"> 
116												<#if carrouselElem.videoTitle?? && carrouselElem.videoTitle.getData()?has_content> 
117													<span class="slide-title blanco">${carrouselElem.videoTitle.getData()}</span> 
118												</#if> 
119												<div class="slide-counter blanco"> 
120													<span class="blanco"></span> 
121												</div> 
122											</div> 
123										</div> 
124									<#elseif mimeType == "video"> 
125										<div class="video-wrapper slide-2"> 
126											<video style="width:100%; height:auto" controls controlsList="nodownload"> 
127											  <source src="${carrouselElem.carrouselInternalElem.getData()}" type="${file.getMimeType()}"> 
128											</video> 
129											<div class="playpause"></div> 
130											<div class="carrousel-info"> 
131												<#-- span class="slide-title blanco">${file.getTitle()?keep_before(".")}</span --> 
132												<#if carrouselElem.videoTitle?? && carrouselElem.videoTitle.getData()?has_content> 
133													<span class="slide-title blanco">${carrouselElem.videoTitle.getData()}</span> 
134												</#if> 
135												<div class="slide-counter blanco"> 
136													<span class="blanco"></span> 
137												</div> 
138											</div> 
139										</div> 
140									</#if> 
141								<#elseif carrouselElem.carrouselExternalElem?? && carrouselElem.carrouselExternalElem.getData()?has_content> 
142									<#assign YTVideo = carrouselElem.carrouselExternalElem.getData()/> 
143									<#-- if YTVideo?contains("youtu.be") || YTVideo?contains("watch") || YTVideo?contains("embed") > 
144										<#if YTVideo?contains("youtu.be")> 
145											<#assign YTVideo =  YTVideo?split(".be/")[1]?split("#")[0]/> 
146										<#elseif YTVideo?contains("watch")> 
147											<#assign YTVideo =  YTVideo?split("v=")[1]?split("#")[0]/> 
148										</#if> 
149										<#if YTVideo?contains("?")> 
150											<#assign inter = ""/> 
151											<#if YTVideo?contains("fs=")> 
152												<#assign fs = ""/> 
153											<#else> 
154												<#assign fs = "&fs=1"/> 
155											</#if> 
156										<#else> 
157											<#assign inter = "?"/> 
158											<#if YTVideo?contains("fs=")> 
159												<#assign fs = ""/> 
160											<#else> 
161												<#assign fs = "&fs=1"/> 
162											</#if> 
163										</#if>  
164										<#assign YTVideo = "https://www.youtube.com/embed/${YTVideo}${inter}${fs}&enablejsapi=1"/> 
165									</#if --> 
166									<div class="yt-video-wrapper slide-3"> 
167									 
168										<#-- Overlay para poder hacer swipe sobre el video 
169										<div class="carrousel-yt-overlay"></div> --> 
170										<#-- Div que se sustituye por iframe en caso de utilizar la API de YT, id = id del video 
171										<div class="yt-video-iframe" id="${YTVideo}"></div> --> 
172										 
173										<iframe src="https://www.youtube.com/embed/${YTVideo}?rel=0" allowfullscreen webkitallowfullscreen mozallowfullscreen frameborder='0'></iframe> 
174 
175										<#-- iframe src="${YTVideo}?rel=0" enablejsapi='1' allowfullscreen webkitallowfullscreen mozallowfullscreen frameborder='0'></iframe --> 
176										<div class="carrousel-info slide-titulo-3"> 
177											<#if carrouselElem.videoTitle?? && carrouselElem.videoTitle.getData()?has_content> 
178												<span class="slide-title blanco">${carrouselElem.videoTitle.getData()}</span> 
179											</#if> 
180											<div class="slide-counter blanco"> 
181												<span class="blanco"></span> 
182											</div> 
183										</div> 
184									</div> 
185								</#if> 
186							</#list> 
187						</div> 
188					</#if> 
189				</div> 
190			</div> 
191		</#if> 
192		<#recover> 
193		</#attempt> 
194		 
195		<#-- Seccion texto e imagen--> 
196		<#attempt> 
197		<#if txtImgTitle?? && txtImgTitle.getData()?has_content> 
198			<div id="actualidad-txtimg" class="bloque bullet-bloque"> 
199				<h3>${txtImgTitle.getData()}</h3> 
200				<div> 
201					<#if txtImgTitle.txtImgTxt?? && txtImgTitle.txtImgTxt.getData()?has_content> 
202						${txtImgTitle.txtImgTxt.getData()} 
203					</#if> 
204					<#if txtImgTitle.txtImgImage?? && txtImgTitle.txtImgImage.getData()?has_content> 
205						<div class="imagen-y-texto"> 
206							<img src="${txtImgTitle.txtImgImage.getData()}" alt="${txtImgTitle.txtImgImage.getAttribute('alt')}" /> 
207							<#if txtImgTitle.txtImgImage.txtImgImageTxt?? && txtImgTitle.txtImgImage.txtImgImageTxt.getData()?has_content> 
208								${txtImgTitle.txtImgImage.txtImgImageTxt.getData()} 
209							</#if> 
210						</div> 
211					</#if> 
212				</div> 
213			</div> 
214		</#if> 
215		<#recover> 
216		</#attempt> 
217		 
218		<#-- Seccion material didactico--> 
219		<#attempt> 
220		<#if instructionalMaterialTxt.getData()?has_content || instructionalMaterialTxt.linkTxt.getSiblings()?has_content || instructionalMaterialTxt.fileText.getSiblings()?has_content > 
221			<div class="bloque" id="descripcion-materiales-y-descarga"> 
222				<#if instructionalMaterialTxt?? && instructionalMaterialTxt.getData()?has_content> 
223				<h3>${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.materials.and.downloads")}</h3> 
224														 
225					<div class="descripcion-materiales-y-descarga-text"> 
226						${instructionalMaterialTxt.getData()} 
227					</div> 
228				</#if> 
229				<#if instructionalMaterialTxt.linkTxt.getSiblings()?has_content && (instructionalMaterialTxt.linkTxt.getSiblings()[0].internalLink.getData()?has_content || instructionalMaterialTxt.linkTxt.getSiblings()[0].externalLink.getData()?has_content)> 
230					<ul class="material"> 
231						<#list instructionalMaterialTxt.linkTxt.getSiblings() as linkTxt> 
232							<li> 
233							<#if linkTxt.internalLink?? && linkTxt.internalLink.getData()?has_content> 
234								<a href="${linkTxt.internalLink.getData()}" > 
235							<#elseif linkTxt.externalLink?? &&linkTxt.externalLink.getData()?has_content> 
236								<a href="${linkTxt.externalLink.getData()}" target="_blank"> 
237							</#if> 
238								<span class="mat-and-down-before"></span> 
239								<span class="mat-and-down-text">${linkTxt.getData()}</span> 
240								<span class="mat-and-down-after"></span> 
241								</a> 
242							</li> 
243						</#list> 
244					</ul> 
245				</#if> 
246				<#if instructionalMaterialTxt.fileText.getSiblings()?has_content && instructionalMaterialTxt.fileText.getSiblings()[0].file.getData()?has_content> 
247					<ul class="descargas"> 
248						<#list instructionalMaterialTxt.fileText.getSiblings() as fileText> 
249							<#if fileText.file?? && fileText.file.getData()?has_content> 
250								<#assign file = DLFileEntryLocalService.getFileEntryByUuidAndGroupId(fileText.file.getData()?keep_after_last("/")?keep_before("?"),groupId) /> 
251								<li> 
252									<a href="${fileText.file.getData()}" target="_blank"> 
253									<span class="mat-and-down-before"></span> 
254									<span class="mat-and-down-text">${fileText.getData()}<span> (${file.getMimeType()?keep_after_last("/")?upper_case} ${file.getSize()[0..(file.getSize()?length - 4)]}Kb)</span></span> 
255									<span class="mat-and-down-after"></span> 
256									</a> 
257								</li> 
258							</#if> 
259						</#list> 
260					</ul> 
261				</#if> 
262				<#if instructionalMaterialTxt.zipFile?? && instructionalMaterialTxt.zipFile.getData()?has_content> 
263					<p class="center"><a href="${instructionalMaterialTxt.zipFile.getData()}" class="${theme_color} font-xtra-small download">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.download.all")}</a></p> 
264				</#if> 
265			</div> 
266		</#if>	 
267		<#recover> 
268		</#attempt> 
269		 
270		<#-- Seccion ponente --> 
271		<#attempt> 
272		<#if presenterImg?? && presenterImg.getData()?has_content> 
273			<div  id="actualidad-presentador" class="bloque"> 
274				<h3>${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.presenter")}</h3> 
275				<div> 
276					<#if presenterTxt?? && presenterTxt.getData()?has_content> 
277						<div class="texto-seccion-ponente">${presenterTxt.getData()}</div> 
278					</#if> 
279					<#if presenterImg.getSiblings()?has_content> 
280						<#list presenterImg.getSiblings() as presenter> 
281							<div class="caja-autores" > 
282								<img src="${presenter.getData()}" alt="${presenter.getAttribute('alt')}" /> 
283								<div class="contenido-caja-autores"> 
284									<#if presenter.presenterName?? && presenter.presenterName.getData()?has_content> 
285										<p class="nombre-autor negro bold"> 
286											${presenter.presenterName.getData()} 
287										</p> 
288									</#if> 
289									<#if presenter.presenterCareer?? && presenter.presenterCareer.getData()?has_content> 
290										<p class="cargo-autor"> 
291											${presenter.presenterCareer.getData()} 
292										</p> 
293									</#if> 
294									<#if presenter.presenterDescription?? && presenter.presenterDescription.getData()?has_content> 
295										<div class="descripcion-ponente"> 
296											${presenter.presenterDescription.getData()} 
297										</div> 
298										<p class="wrapper-acceso-modal-ponente" data-open-ponente-index = "${presenter?index}"><a class="hide ver-mas actualidad acceso-modal-ponente">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.see.more")?upper_case}</a></p> 
299										 
300										<div class="modal-ponente hide" data-ponente-index = "${presenter?index}" > 
301											<span class="modal-close"></span> 
302											<div class="modal-caja-info margin-bottom-20">  
303												<img src="${presenter.getData()}" alt="${presenter.getAttribute('alt')}" /> 
304												<div class="modal-caja-info-txt"> 
305												<#if presenter.presenterName?? && presenter.presenterName.getData()?has_content> 
306													<p class="nombre-autor negro bold margin-top-10"> 
307														${presenter.presenterName.getData()} 
308													</p> 
309												</#if> 
310												<#if presenter.presenterCareer?? && presenter.presenterCareer.getData()?has_content> 
311													<p class="cargo-autor"> 
312														${presenter.presenterCareer.getData()} 
313													</p> 
314												</#if> 
315												<ul class="social ponente-social"> 
316													<#if presenter.presenterTwitter?? && presenter.presenterTwitter.getData()?has_content> 
317														<li> 
318															<a href="${presenter.presenterTwitter.getData()}" class="twitter" title="Ir a Twitter" target="_blank">Twitter</a> 
319														</li> 
320													</#if> 
321													<#if presenter.presenterInstagram?? && presenter.presenterInstagram.getData()?has_content> 
322														<li> 
323															<a href="${presenter.presenterInstagram.getData()}" class="instagram" title="Ir a Instagram" target="_blank">Instagram</a> 
324														</li> 
325													</#if> 
326													<#if presenter.presenterFacebook?? && presenter.presenterFacebook.getData()?has_content> 
327														<li> 
328															<a href="${presenter.presenterFacebook.getData()}" class="facebook" title="Ir a Facebook" target="_blank">Facebook</a> 
329														</li> 
330													</#if> 
331													<#if presenter.presenterLinkedin?? && presenter.presenterLinkedin.getData()?has_content> 
332														<li> 
333															<a href="${presenter.presenterLinkedin.getData()}" class="linkedin" title="Ir a LinkedIn" target="_blank">LinkedIn</a> 
334														</li> 
335													</#if> 
336												</ul> 
337												</div> 
338											</div> 
339											<div class="descripcion-ponente-modal"> 
340												${presenter.presenterDescription.getData()} 
341											</div> 
342										</div> 
343									 
344									</#if> 
345									<ul class="social ponente-social"> 
346										<#if presenter.presenterTwitter?? && presenter.presenterTwitter.getData()?has_content> 
347											<li> 
348												<a href="${presenter.presenterTwitter.getData()}" class="twitter" title="Ir a Twitter" target="_blank">Twitter</a> 
349											</li> 
350										</#if> 
351										<#if presenter.presenterInstagram?? && presenter.presenterInstagram.getData()?has_content> 
352											<li> 
353												<a href="${presenter.presenterInstagram.getData()}" class="instagram" title="Ir a Instagram" target="_blank">Instagram</a> 
354											</li> 
355										</#if> 
356										<#if presenter.presenterFacebook?? && presenter.presenterFacebook.getData()?has_content> 
357											<li> 
358												<a href="${presenter.presenterFacebook.getData()}" class="facebook" title="Ir a Facebook" target="_blank">Facebook</a> 
359											</li> 
360										</#if> 
361										<#if presenter.presenterLinkedin?? && presenter.presenterLinkedin.getData()?has_content> 
362    										<li> 
363    											<a href="${presenter.presenterLinkedin.getData()}" class="linkedin" title="Ir a LinkedIn" target="_blank">LinkedIn</a> 
364    										</li> 
365    									</#if> 
366									</ul> 
367								</div> 
368							</div> 
369						</#list> 
370					</#if> 
371				</div> 
372			</div> 
373        </#if> 
374        <#recover> 
375        </#attempt> 
376		<#else> 
377		<#attempt> 
378		<#if highlightTitle?? && highlightTitle.getData()?has_content> 
379			<#-- Seccion video/imagen destacado --> 
380			<div id="slavin-highlight" class="bloque"> 
381				<h3>${highlightTitle.getData()}</h3> 
382				<div> 
383				<#if highlightTitle.highlightText?? && highlightTitle.highlightText.getData()?has_content> 
384					${highlightTitle.highlightText.getData()} 
385				</#if> 
386				<#if highlightTitle.highlightExternalVideoLink?? && highlightTitle.highlightExternalVideoLink.getData()?has_content> 
387					<div class="yt-video-wrapper"> 
388						<iframe src="https://www.youtube.com/embed/${YTVideo}?rel=0" allowfullscreen webkitallowfullscreen mozallowfullscreen frameborder='0'></iframe> 
389					</div> 
390					<#assign YTVideo = highlightTitle.highlightExternalVideoLink.getData()/> 
391					<#-- if YTVideo?contains("youtu.be") || YTVideo?contains("watch") || YTVideo?contains("embed") > 
392						<#if YTVideo?contains("youtu.be")> 
393							<#assign YTVideo =  YTVideo?split(".be/")[1]?split("#")[0]/> 
394						<#elseif YTVideo?contains("watch")> 
395							<#assign YTVideo =  YTVideo?split("v=")[1]?split("#")[0]/> 
396						</#if> 
397						<#if YTVideo?contains("?")> 
398							<#assign inter = ""/> 
399							<#if YTVideo?contains("fs=")> 
400								<#assign fs = ""/> 
401							<#else> 
402								<#assign fs = "&fs=1"/> 
403							</#if> 
404						<#else> 
405							<#assign inter = "?"/> 
406							<#if YTVideo?contains("fs=")> 
407								<#assign fs = ""/> 
408							<#else> 
409								<#assign fs = "&fs=1"/> 
410							</#if> 
411						</#if>  
412						<#assign YTVideo = "https://www.youtube.com/embed/${YTVideo}${inter}${fs}"/> 
413						<div class="yt-video-wrapper"> 
414							<iframe src="${YTVideo}?rel=0 allowfullscreen webkitallowfullscreen mozallowfullscreen frameborder='0'"></iframe> 
415						</div> 
416					</#if -->					 
417				<#elseif highlightTitle.highlightInternalFile?? && highlightTitle.highlightInternalFile.getData()?has_content > 
418					<#assign file = DLFileEntryLocalService.getFileEntryByUuidAndGroupId(highlightTitle.highlightInternalFile.getData()?keep_after_last("/")?keep_before("?"),groupId)/> 
419					<#assign mimeType = file.getMimeType()?keep_before("/")/> 
420					<#if mimeType == "image"> 
421						<img src="${highlightTitle.highlightInternalFile.getData()}" alt="">  
422					<#elseif mimeType == "video"> 
423						<div class="video-wrapper"> 
424							<video controls="" controlsList="nodownload"> 
425							  <source src="${highlightTitle.highlightInternalFile.getData()}" type="${file.getMimeType()}"> 
426							</video> 
427							<div class="playpause"></div> 
428						</div> 
429					</#if> 
430				</#if> 
431				 
432				</div> 
433			</div> 
434		</#if> 
435		<#recover> 
436		</#attempt> 
437		</#if> 
438	</div> 
439</div> 
440 
441 
442 
443<style> 
444    .contenido-ficha-dcha .bloque.bullet-bloque ul { 
445    	list-style: unset; 
446
447    .contenido-ficha-dcha .bloque.bullet-bloque ul li { 
448	    color: #607d8b; 
449        font-family: "Lato-Regular",Arial,Helvetica,sans-serif; 
450
451	 
452	.bloque .descripcion-materiales-y-descarga-text ul{ 
453    	list-style: unset; 
454
455	.bloque .descripcion-materiales-y-descarga-text ul li { 
456	    color: #607d8b; 
457        font-family: "Lato-Regular",Arial,Helvetica,sans-serif; 
458
459    .bloque .texto-seccion-ponente ul{ 
460    	list-style: unset; 
461
462	.bloque .texto-seccion-ponente ul li { 
463	    color: #607d8b; 
464        
465       .bloque .descripcion-ponente ul{ 
466    	list-style: unset; 
467
468	.bloque .descripcion-ponente ul li { 
469	    color: #607d8b; 
470        font-family: "Lato-Regular",Arial,Helvetica,sans-serif; 
471
472</style> 
473 
474 
475<script> 
476 
477	/*if($('.video-wrapper video').length) { 
478		$('.video-wrapper').click(function () { 
479			var video = $(this).find('video').get(0); 
480			if(video.paused){      
481				video.play();   
482				$(this).find('.playpause').fadeOut(); 
483			}else{       
484				video.pause(); 
485				$(this).find('.playpause').fadeIn(); 
486
487		}); 
488 
489		$('.video-wrapper video').get(0).onended = function() { 
490			$(this).siblings('.playpause').fadeIn(); 
491		}; 
492
493 
494	$( document ).ready(function() { 
495		if ($('.carrousel-images-videos').length) { 
496			$(".carrousel-images-videos").slick({ 
497				dots: false, 
498				infinite: false, 
499				adaptiveHeight: true, 
500				swipe: false, 
501				slidesToShow: 1, 
502				slidesToScroll: 1 
503			}); 
504			 
505			// Funcion que detiene la ejecucion de los videos al cambiar de slide 
506			$('.carrousel-images-videos').on('beforeChange', function(event, slick, currentSlide, nextSlide){ 
507				var current = $('.slick-current'); 
508				if (current.find('.video-wrapper').length) { 
509					current.find('.video-wrapper video').get(0).pause(); 
510					current.find('.video-wrapper .playpause').fadeIn(); 
511					console.log('was html5'); 
512
513				else if (current.find('.yt-video-wrapper').length) { 
514					current.find('.yt-video-wrapper iframe')[0].contentWindow.postMessage('{"event":"command","func":"' + 'stopVideo' + '","args":""}', '*'); 
515
516			}); 
517			 
518			if ($('.carrousel-images-videos.slick-slider')[0].slick.slideCount > 1) { 
519				$('.carrousel-images-videos .slick-slide').each(function(){ 
520					var actualSlide = Number(this.dataset.slickIndex) + 1; 
521					$(this).find('.carrousel-info .slide-counter span').html(actualSlide + '/' + $('.slick-slider')[0].slick.slideCount); 
522				}); 
523
524			else { 
525				$(this).find('.carrousel-info .slide-counter').hide(); 
526
527
528	});*/ 
529 
530/* 
531	// Importación librería YT 
532	var tag = document.createElement('script'); 
533	tag.src = "https://www.youtube.com/iframe_api"; 
534	var firstScriptTag = document.getElementsByTagName('script')[0]; 
535	firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 
536 
537	// Crea iframe para el reproductor, sustituyendo div por el iframe 
538	var initPlayer = function(element) { 
539		var player = $(element).find('.yt-video-iframe'); 
540		var button = $(element).find('.carrousel-yt-overlay'); 
541		var ytplayer = new YT.Player(player.attr('id'), { 
542			videoId: player.attr('id'), 
543			events: { 
544			  'onStateChange': onPlayerStateChange 
545
546		}); 
547		button.on('click', function() { 
548			switch (ytplayer.getPlayerState()) { 
549			case 1: 
550				ytplayer.pauseVideo(); 
551				break; 
552			default: 
553				ytplayer.playVideo(); 
554				break; 
555
556		}) 
557
558	 
559	// La API invoca esta función cuando la página termina de descargar el código JavaScript para la API del reproductor 
560	function onYouTubeIframeAPIReady() { 
561		var container = $('.carrousel-images-videos .yt-video-wrapper'); 
562		  for (var i = 0; i < container.length; i++) { 
563			initPlayer(container[i]); 
564
565
566	 
567	function onPlayerStateChange(event) { 
568		switch (event.target.getPlayerState()) { 
569			case 1: 
570				$(event.target.a).siblings('.carrousel-yt-overlay').removeClass('hide'); 
571				break; 
572			default: 
573				$(event.target.a).siblings('.carrousel-yt-overlay').addClass('hide'); 
574				break; 
575
576
577*/ 
578</script> 

Editor de continguts

Editor de continguts

com.educaixa.cta.

educaixa-valoraciones Portlet

-/5

Valoració mitjana global

Basat en 0 valoracions

HAS PARTICIPAT?

Aplicacions anidades

Consentimiento GDPR