Publicador de contenidos

Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> request.getParameter('resourcePK')  [in template "10154#10192#21258889" at line 2, column 23]

----
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 resourcePK = request.getParam...  [in template "10154#10192#21258889" at line 2, column 1]
----
1<#-- Parameters --> 
2<#assign resourcePK = request.getParameter('resourcePK') /> 
3<#assign isBanner = request.getParameter('isBanner') /> 
4 
5<#-- Services--> 
6 
7<#assign LiteralsToolsServiceUtil = serviceLocator.findService("com.aqua.literals.util.LiteralsToolsService")/> 
8<#assign UtilsService = serviceLocator.findService("com.educaixa.utils.service.EduCaixaUtilsService")/> 
9<#assign UserBookmarkLocalService = serviceLocator.findService("com.educaixa.services.service.UserBookmarkLocalService") /> 
10<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()> 
11<#assign journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")/> 
12<#assign DLFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") /> 
13 
14<#-- Variables --> 
15 
16<#assign article = journalArticleService.getLatestArticle(resourcePK?number, 0) /> 
17<#assign journalArticleId = article.getArticleId() /> 
18<#assign document = saxReaderUtil.read(article.getContentByLocale(locale)) /> 
19<#assign language = themeDisplay.getLocale() /> 
20<#assign companyId =themeDisplay.getCompanyId()/> 
21<#assign groupId = themeDisplay.getScopeGroupId()/> 
22<#assign userId =themeDisplay.getUserId()/> 
23<#assign jaUrlTitle = article.getUrlTitle() /> 
24<#assign url = "https://${request.serverName}/-/${jaUrlTitle}" /> 
25<#assign is_signed_in = themeDisplay.isSignedIn()/> 
26<#assign type = document.valueOf("//dynamic-element[@name='tipo']/dynamic-content/text()")?keep_after('"')?keep_before('"') /> 
27<#assign title = document.valueOf("//dynamic-element[@name='title']/dynamic-content/text()") /> 
28 
29<#assign avilableDownload = ""/> 
30<#assign css = ""/> 
31<#if type == "program"> 
32	<#assign css = "programas"/> 
33<#elseif type == "evidence" || type == "slavin"> 
34	<#assign css = "evidencias"/> 
35<#elseif type == "activity"> 
36	<#assign css = "actividades"/> 
37<#elseif type == "actuality"> 
38	<#assign css = "actualidad"/> 
39<#elseif type == "center"> 
40	<#assign css = "educaixa"/> 
41<#elseif type?contains("training")> 
42	<#assign css = "formacion"/> 
43<#elseif type == "experience"> 
44	<#assign css = "educaixa"/> 
45<#elseif type?contains("resource")> 
46	<#assign css = "recursos"/> 
47</#if> 
48 
49<#assign files = "" /> 
50<#if isBanner == "true"> 
51	<#assign bannerTitle = "" /> 
52	<#assign bannerDescription = "" /> 
53	<#if type == "activity"> 
54		<#assign bannerObj = document.valueOf("//dynamic-element[@name='bannerVideo']/dynamic-content/text()") /> 
55	<#elseif type?contains("resource")> 
56		<#assign docprincipal = document.valueOf("//dynamic-element[@name='docprincipal']/dynamic-content/text()") /> 
57		<#assign siteMeta = UtilsService.getDocumentMetadataInJSON(docprincipal, themeDisplay) /> 
58		<#assign title = document.valueOf("//dynamic-element[@name='titulo']/dynamic-content/text()")?replace('<[^>]+>','','r') /> 
59		<#assign downloable = document.valueOf("//dynamic-element[@name='descargable']/dynamic-content/text()") /> 
60		<#if type?contains("resourceImage") || type?contains("resourceInfograph")> 
61			<#assign files = [docprincipal] /> 
62			<#assign otherImages = document.selectNodes("//dynamic-element[@name='otraimagenficha']") /> 
63			<#if otherImages?has_content && otherImages?size gt 0> 
64				<#list otherImages as otherImg> 
65					<#if otherImg.elementText("dynamic-content")?has_content> 
66						<#assign files = files + [otherImg.elementText("dynamic-content")] /> 
67					</#if> 
68				</#list> 
69			</#if> 
70		<#elseif type?contains("resourcePodcast")> 
71			<#assign file = DLFileEntryLocalService.getFileEntryByUuidAndGroupId(docprincipal?keep_after_last("/")?keep_before("?"),groupId)/> 
72			<#assign mimeType = file.getMimeType()?keep_before("/")/> 
73			<#if mimeType == "audio"> 
74				<#assign bannerObj = docprincipal /> 
75			<#else> 
76				<#if siteMeta.get(0).audio_id?has_content> 
77					<#assign bannerObjYT = siteMeta.get(0).audio_id /> 
78				</#if> 
79			</#if> 
80		<#elseif type?contains("resourceVideo")> 
81			<#assign file = DLFileEntryLocalService.getFileEntryByUuidAndGroupId(docprincipal?keep_after_last("/")?keep_before("?"),groupId)/> 
82			<#assign mimeType = file.getMimeType()?keep_before("/")/> 
83				<#if siteMeta.get(0).brightcove_id?has_content> 
84					<#assign bannerObjYT = siteMeta.get(0).brightcove_id /> 
85				</#if> 
86		</#if> 
87	<#else> 
88		<#assign bannerObjYT = document.valueOf("//dynamic-element[@name='video']/dynamic-element[@name='videoYTBanner']/dynamic-content/text()") /> 
89		<#assign bannerObj = document.valueOf("//dynamic-element[@name='video']/dynamic-content/text()") /> 
90		<#assign bannerTitle = document.valueOf("//dynamic-element[@name='video']/dynamic-element[@name='videoTitle']/dynamic-content/text()") /> 
91		<#assign bannerDescription = document.valueOf("//dynamic-element[@name='video']/dynamic-element[@name='videoDescription']/dynamic-content/text()") /> 
92	</#if> 
93	 
94<#else> 
95    <#-- excperiencias B5--> 
96    <#if type?contains("experience")> 
97		<#assign highlightTitle = document.valueOf("//dynamic-element[@name='highlightTitle']/dynamic-content/text()") /> 
98		<#assign highlightText = document.valueOf("//dynamic-element[@name='highlightTitle']/dynamic-element[@name='highlightText']/dynamic-content/text()") /> 
99		<#assign highlightExternalVideoLink = document.valueOf("//dynamic-element[@name='highlightTitle']/dynamic-element[@name='highlightExternalVideoLink']/dynamic-content/text()") /> 
100    <#elseif type?contains("resourcePhysical")> 
101	    <#assign files = document.selectNodes("//dynamic-element[@name='MaterialRelacionado']") /> 
102	<#else> 
103	    <#assign files = document.selectNodes("//dynamic-element[@name='videoOrImage']") /> 
104    </#if> 
105</#if> 
106 
107<input id="falsa-modal-recurso-comp-id" value="${themeDisplay.getCompanyId()}" type="hidden" /> 
108<input id="falsa-modal-recurso-user-id" value="${themeDisplay.getUserId()}" type="hidden" /> 
109 
110<div id="falsa-modal-recurso"> 
111	<div class="falsa-modal-rec-header"> 
112		<a class="modal-rec-home" href="/home" alt="Home"><img src="/o/edu-caixa-theme/images/logo_eduCaixa.png" alt="EduCaixa" class="logo"></a> 
113		<div class="falsa-modal-rec-header-info"> 
114			<span class="modal-rec-title modal-rec-tit-${css} bold ">${title}</span> 
115		</div> 
116		<#if files?has_content && files?size gt 1> 
117		<div class="slide-counter blanco"> 
118			<span class="blanco"></span> 
119		</div> 
120		</#if> 
121	</div> 
122	<div class="falsa-modal-rec-content"> 
123		<div class="falsa-modal-rec-content-item"> 
124			<#if type?contains("resourceInfograph")> 
125				<#if files?first?has_content> 
126					<img src="${files?first}" /> 
127				</#if> 
128			<#else> 
129				<#if isBanner == "true"> 
130					<#if type?contains("resource")> 
131						<#if files?has_content> 
132						<div class="modal-rec-carrousel-items"> 
133							<#list files as file> 
134								<div class="modal-rec-image-wrapper" data-download="">  
135									<img data-fileentryid="" alt="alt" src="${file}" /> 
136								</div> 
137							</#list> 
138						</div> 
139						<#elseif bannerObjYT?has_content && bannerObjYT != ""> 
140							<div class="yt-video-wrapper modal-rec-yt-wrapper"> 
141								<iframe src="https://www.youtube.com/embed/${bannerObjYT}?rel=0" enablejsapi='1' allowfullscreen webkitallowfullscreen mozallowfullscreen frameborder='0'></iframe> 
142							</div> 
143						<#elseif bannerObj?has_content && bannerObj != ""> 
144							<div class="video-wrapper modal-rec-video-wrapper"> 
145								<video controls="" controlsList="nodownload"> 
146								  <source src="${bannerObj}"> 
147								</video> 
148								<div class="playpause"></div> 
149							</div> 
150						</#if> 
151					<#else> 
152						<#if bannerObjYT?has_content && bannerObjYT != ""> 
153						<#assign avilableDownload = "no-rec-download"/> 
154						<div class="yt-video-wrapper modal-rec-yt-wrapper"> 
155							<iframe src="https://www.youtube.com/embed/${bannerObjYT}?rel=0" enablejsapi='1' allowfullscreen webkitallowfullscreen mozallowfullscreen frameborder='0'></iframe> 
156						</div> 
157						<#elseif bannerObj?has_content && bannerObj != ""> 
158						<div class="video-wrapper modal-rec-video-wrapper" data-download="${bannerObj}"> 
159							<video controls="" controlsList="nodownload"> 
160							  <source src="${bannerObj}"> 
161							</video> 
162							<div class="playpause"></div> 
163						</div> 
164						</#if> 
165					</#if> 
166				<#else> 
167					<#-- experiencias B5--> 
168					<#if  type?contains("experience")> 
169						<#if highlightExternalVideoLink?has_content && highlightExternalVideoLink != ""> 
170							<#assign avilableDownload = "no-rec-download"/>				 
171							<div class="yt-video-wrapper modal-rec-yt-wrapper"> 
172								<iframe src="https://www.youtube.com/embed/${highlightExternalVideoLink}?rel=0" enablejsapi='1' allowfullscreen webkitallowfullscreen mozallowfullscreen frameborder='0'></iframe> 
173							</div> 
174						</#if> 
175					<#else> 
176						<div class="modal-rec-carrousel-items"> 
177						<#list files as file> 
178							<#if file.elementText("dynamic-content")?has_content> 
179								<#assign fileContent = DLFileEntryLocalService.getFileEntryByUuidAndGroupId(file.elementText("dynamic-content")?keep_after_last("/")?keep_before("?"),groupId)/> 
180								<#assign mimeType = fileContent.getMimeType()?keep_before("/")/> 
181								<#if mimeType == "image"> 
182									<div class="modal-rec-image-wrapper" data-download="${file.elementText("dynamic-content")}">  
183									 
184										<img data-fileentryid="" alt="alt" src="${file.elementText("dynamic-content")}" /> 
185									</div> 
186								<#elseif mimeType == "video"> 
187									<div class="video-wrapper modal-rec-video-wrapper" data-download="${file.elementText("dynamic-content")}"> 
188										<video controls="" controlsList="nodownload"> 
189										  <source src="${file.elementText("dynamic-content")}" type="${fileContent.getMimeType()}"> 
190										</video> 
191										<div class="playpause"></div> 
192									</div> 
193								</#if> 
194							<#elseif file.valueOf("dynamic-element[@name='youtubeVideo']/dynamic-content/text()")?has_content && file.valueOf("dynamic-element[@name='youtubeVideo']/dynamic-content/text()") != ""> 
195								<#if file?is_first> 
196									<#assign avilableDownload = "no-rec-download"/> 
197								</#if> 
198								<div class="yt-video-wrapper modal-rec-yt-wrapper"> 
199									<iframe src="https://www.youtube.com/embed/${file.valueOf("dynamic-element[@name='youtubeVideo']/dynamic-content/text()")}?rel=0" enablejsapi='1' allowfullscreen webkitallowfullscreen mozallowfullscreen frameborder='0'></iframe> 
200								</div> 
201							</#if> 
202						</#list> 
203						</div> 
204					</#if>	 
205				</#if> 
206			</#if> 
207			<div class="modal-rec-actions"> 
208				<#if type?contains("resource")> 
209					<#if !downloable?has_content> 
210						<#assign avilableDownload = "no-rec-download"/> 
211						<#assign downloable = ""/> 
212					</#if> 
213					<a href="${downloable}" class="modal-rec-download-but-resource boton small boton-${css} ${avilableDownload} width-100">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.download")}</a> 
214				<#else> 
215					<a href="" class="modal-rec-download-but boton small boton-${css} ${avilableDownload} width-100">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.download")}</a> 
216				</#if> 
217				<a class="modal-rec-compartir" data-url="${url}"></a> 
218				<div id="share" class="hide"> 
219					<span class="modal-close"></span> 
220					<p class="negro bold">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.share")}</p> 
221					<p class="margin-bottom-20">${title}</p> 
222					<div id="share-content"></div> 
223				</div> 
224				<#if is_signed_in> 
225					<#assign isUserBookmark = UserBookmarkLocalService.isUserBookmark(companyId,userId,journalArticleId,groupId)/> 
226					<#if isUserBookmark> 
227						<a class="modal-rec-bookmark bookmarked ${css}" onClick="updateUserBookmark(${journalArticleId},false);" data-articleid="${journalArticleId}"></a>  
228					<#else> 
229						<a class="modal-rec-bookmark ${css}" onClick="updateUserBookmark(${journalArticleId},true);" data-articleid="${journalArticleId}" ></a> 
230					</#if> 
231					<#-- a class="modal-rec-bookmark" data-articleid="${journalArticleId}"></a --> 
232				<#else> 
233					<#assign httpServletRequest = serviceContext.getRequest() /> 
234					<#assign plid = portalUtil.getPlidFromPortletId(themeDisplay.getScopeGroupId(), "EducaixaMyeducaixaLogin") /> 
235					<#assign renderURL = portletURLFactory.create(httpServletRequest, "EducaixaMyeducaixaLogin", plid, "RENDER_PHASE") /> 
236					${renderURL.setParameter("mvcPath", "/login_modal.jsp")} 
237					${renderURL.setWindowState("POP_UP")} 
238					<a class="modal-rec-bookmark not-log" onClick="openPopup('${renderURL}','','500', '650')"></a> 
239				</#if> 
240				<#if (isBanner == "true" && (!bannerTitle?has_content && !bannerDescription?has_content)) || type?contains("activity")> 
241				<#else> 
242					<a class="zoom-in"></a> 
243				</#if> 
244			</div> 
245		</div> 
246					 
247		<#if (type?contains("resource") && files?has_content) || (isBanner=="false" && !type?contains("experience"))> 
248			<div class="falsa-modal-rec-content-info falsa-modal-rec-content-info-slick"> 
249		<#else> 
250			<div class="falsa-modal-rec-content-info"> 
251		</#if> 
252			<#if isBanner == "true"> 
253				<div class="falsa-modal-rec-info-item"> 
254					<p class="negro bold uppercase" style="width:100%;">${bannerTitle}</p> 
255					<p style="width:100%;">${bannerDescription}</p> 
256				</div> 
257			<#else> 
258				<#-- experiencias B5--> 
259				<#if  type?contains("experience")> 
260					<#if highlightTitle?has_content> 
261						<div class="falsa-modal-rec-info-item"> 
262							<p class="negro bold uppercase">${highlightTitle}</p> 
263							<#if highlightText?has_content> 
264								<p>${highlightText}</p> 
265							</#if> 
266						</div> 
267					</#if> 
268				<#else> 
269					<#list files as file> 
270						<#assign fileTitle = "" /> 
271						<#assign fileDescr = "" /> 
272						<#if file.valueOf("dynamic-element[@name='fileItemTitle']/dynamic-content/text()")?has_content && file.valueOf("dynamic-element[@name='fileItemTitle']/dynamic-content/text()") != ""> 
273							<#assign fileTitle = file.valueOf("dynamic-element[@name='fileItemTitle']/dynamic-content/text()") /> 
274						</#if> 
275						<#if file.valueOf("dynamic-element[@name='fileItemTitle']/dynamic-element[@name='fileItemDescription']/dynamic-content/text()")?has_content && file.valueOf("dynamic-element[@name='fileItemTitle']/dynamic-element[@name='fileItemDescription']/dynamic-content/text()") != ""> 
276							<#assign fileDescr = file.valueOf("dynamic-element[@name='fileItemTitle']/dynamic-element[@name='fileItemDescription']/dynamic-content/text()") /> 
277						</#if> 
278						<div class="falsa-modal-rec-info-item"> 
279							<p class="negro bold uppercase">${fileTitle}</p> 
280							<p>${fileDescr}</p> 
281						</div> 
282					</#list> 
283				</#if> 
284			</#if> 
285		</div> 
286	</div> 
287</div> 
288 
289 <#-- Modal confirmacion eliminar--> 
290<div id="modal-confirm-delete" class="close-modal hide"> 
291	<span class="modal-close" onclick="javascript:closeModal();"></span> 
292	<input type="hidden" class="titulo-confirmacion" value="${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.are.you.sure.to.delete")} "> 
293	<#--El titulo y los datos del boton eliminar se rellenan por js --> 
294	<h3 class="center uppercase"></h3>	 
295	<p class=" button-wrapper center"> 
296		<a onClick="closeModal();" class="cancel uppercase boton width-150 margin-top-20 boton-blanco medium margin-bottom-10"> 
297			${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.no.cancel")} 
298		</a> 
299		<a data-articleid="" class="delete uppercase boton width-150 margin-top-20 boton-educaixa medium margin-bottom-10"> 
300			${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.yes.delete")} 
301		</a> 
302	</p> 
303</div> 
304 
305<style> 
306#share { 
307	width: 15rem; 
308	position: fixed; 
309	top: 5rem; 
310	left: 50%; 
311	transform: translateX(-50%); 
312	top: 50%; 
313	transform: translateY(-50%); 
314	padding: 2rem; 
315	background-color: white; 
316	text-align: left; 
317	z-index: 10; 
318
319#share p { 
320	color: $blue-grey; 
321
322#share .jssocials-share { 
323	width: 100%; 
324
325#share .jssocials-share  a { 
326	width: 100%; 
327	text-align: left; 
328	margin: 0 !important; 
329
330#share .jssocials-share  a i { 
331	color: white; 
332
333#share .jssocials-share  a span { 
334	color: white; 
335
336#share .jssocials-share  a .copyLink { 
337	background-color: darkgray; 
338
339 
340#share  .modal-close { 
341	position: absolute; 
342	top: 0; 
343	right: 0; 
344	font-size: 16px; 
345	margin: .5rem; 
346	padding: 2px; 
347	cursor: pointer; 
348
349 
350 
351#falsa-modal-recurso .falsa-modal-rec-info-item p { 
352	color: #607d8b; 
353
354#falsa-modal-recurso .falsa-modal-rec-content-info { 
355	padding: 2rem 3rem; 
356
357	 
358	 
359</style> 
360 
361<script> 
362$('.modal-rec-carrousel-items').on('beforeChange', function(event, slick, currentSlide, nextSlide){ 
363	//var content = $('.slide-counter span').html(); 
364	//var newContent =  (Number(nextSlide)+1) + content.substring(content.indexOf('/'), content.length); 
365	var newContent =  (Number(nextSlide)+1) + "/" + $('.slick-slider')[0].slick.slideCount; 
366	$('.slide-counter span').html(newContent); 
367	 
368	if($('.modal-rec-carrousel-items [data-slick-index = "'+nextSlide+'"] [data-download]').length > 0 && $('.modal-rec-carrousel-items [data-slick-index = "'+nextSlide+'"] [data-download]').data("download") != "") { 
369		var href = $('.modal-rec-carrousel-items [data-slick-index = '+nextSlide+'] [data-download]').data("download"); 
370		$('.modal-rec-download-but').attr('href', href); 
371		$('.modal-rec-download-but').removeClass('no-rec-download'); 
372	} else { 
373		$('.modal-rec-download-but').addClass('no-rec-download'); 
374
375}); 
376 
377$('#banner').addClass('hide'); 
378 
379$(document).ready(function(){ 
380 
381	// Acciones bookmark 
382	var userId = $('#falsa-modal-recurso-user-id').val(); 
383	var companyId = $('#falsa-modal-recurso-comp-id').val(); 
384 
385	/*if (!$('.modal-rec-bookmark').hasClass('not-log')) { 
386		var articleId = $('.modal-rec-bookmark').data('articleid'); 
387		if (isUserBookmark(companyId, userId, articleId) { 
388			$('.modal-rec-bookmark').addClass('bookmarked'); 
389
390	}*/ 
391 
392	/*$('.modal-rec-bookmark').on('click', function() { 
393		if (!$(this).hasClass('not-log')) { 
394			var articleId = $(this).data('articleid'); 
395			if ($(this).hasClass('bookmarked')) { 
396				deleteUserBookmark(companyId, userId, articleId); 
397				$(this).removeClass('bookmarked'); 
398
399			else { 
400				addUserBookmark(companyId, userId, articleId); 
401				$(this).addClass('bookmarked'); 
402
403
404	});*/ 
405 
406	// Contador slides 
407	if ($('.modal-rec-carrousel-items').children().length > 1) { 
408		$('.slide-counter span').html('1/' + $('.modal-rec-carrousel-items').children().length); 
409
410	$('.modal-rec-carrousel-items').slick({ 
411		slidesToShow: 1, 
412		slidesToScroll: 1, 
413		infinite: false, 
414		adaptiveHeight: true, 
415		lazyLoad: 'ondemand', 
416		asNavFor: '.falsa-modal-rec-content-info' 
417	}); 
418	//$('.falsa-modal-rec-content-info').slick({ 
419	$('.falsa-modal-rec-content-info-slick').slick({ 
420		slidesToShow: 1, 
421		slidesToScroll: 1, 
422		infinite: false, 
423		arrows: false, 
424		draggable: false, 
425		speed: 0 
426	}); 
427	// Acciones abrir descripcion elemento 
428	$("#falsa-modal-recurso .zoom-in").on('click', function(){ 
429		if ($(this).hasClass('zoomed')) { 
430			$(this).removeClass('zoomed'); 
431			$('.falsa-modal-rec-content-item').removeClass('open'); 
432			$('.falsa-modal-rec-content-info').removeClass('open'); 
433		} else { 
434			$(this).addClass('zoomed'); 
435			$('.falsa-modal-rec-content-item').addClass('open'); 
436			$('.falsa-modal-rec-content-info').addClass('open'); 
437
438		if ($('.modal-rec-carrousel-items').length) { 
439			if ($('.modal-rec-carrousel-items').hasClass('slick-initialized') && $('.modal-rec-carrousel-items')[0].slick.slideCount > 1) { 
440				var initSlide = Number($('.modal-rec-carrousel-items .slick-active')[0].dataset.slickIndex); 
441				$('.modal-rec-carrousel-items').slick("unslick"); 
442				$('.modal-rec-carrousel-items').slick({ 
443					slidesToShow: 1, 
444					slidesToScroll: 1, 
445					infinite: false, 
446					asNavFor: '.falsa-modal-rec-content-info' 
447				}); 
448				$('.modal-rec-carrousel-items').slick('slickGoTo',parseInt(initSlide),true); 
449			} else { 
450				$('.modal-rec-carrousel-items').slick("unslick"); 
451				$('.modal-rec-carrousel-items').slick({ 
452					slidesToShow: 1, 
453					slidesToScroll: 1, 
454					infinite: false 
455				}); 
456
457
458	}); 
459 
460	// Seteo download  
461	if (!$('.modal-rec-download-but').hasClass('no-rec-download')) { 
462		var href = $("[data-download]")[0].dataset.download; 
463		$('.modal-rec-download-but').attr('href', href); 
464
465	 
466	trimElemAndAddTitleAt($('#falsa-modal-recurso .modal-rec-title'), 60); 
467 
468	$(".modal-rec-compartir").on('click', function (event) { 
469		//event.preventDefault(); 
470		event.stopPropagation(); 
471		var url = $(this).data('url'); 
472		var title = $('#falsa-modal-recurso .modal-rec-title').attr('title'); 
473		var subtitle = $(this).parents('.tarjeta').find('.subtitulo').data('subtitle');  
474 
475		$("#falsa-modal-recurso #share-content").jsSocials({ 
476			url: url, 
477			text: title + ": " + subtitle, 
478			showCount: false, 
479			showLabel: true, 
480			shares: [ { share: "facebook", label: "Facebook" },  
481					  { share: "twitter", label: "Twitter", shareUrl: "https://twitter.com/share?url={url}&via={via}&hashtags={hashtags}", hashtags: "EduCaixa" },  
482					  { share: "email", label: "E-mail", shareUrl: "mailto:{to}?subject={text}&body={url}"},  
483					  "whatsapp"] 
484		}); 
485		if(!isMobile()) { 
486			$('#falsa-modal-recurso .jssocials-share-whatsapp').addClass("hide"); 
487
488		var buttonCopy = "<div class='jssocials-share' style='background-color: gray;'><a class='copyLink jssocials-share-link' onclick='copyCardLink($(this));'><i class='fa fa-copy jssocials-share-logo'></i><span class='jssocials-share-label'>Copiar enlace</span></a></div>"; 
489		$(".jssocials-share-whatsapp").after(buttonCopy); 
490		$(this).next().removeClass("hide");	 
491	}); 
492 
493	$("#falsa-modal-recurso #share .modal-close").on('click', function (event) { 
494 
495		$("#falsa-modal-recurso #share").addClass("hide"); 
496	}); 
497 
498}); 
499</script>