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#21258898" at line 1, 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#21258898" at line 1, column 1]
----
1<#assign resourcePK = request.getParameter('resourcePK') /> 
2 
3<#assign DLFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") /> 
4<#assign LiteralsToolsServiceUtil = serviceLocator.findService("com.aqua.literals.util.LiteralsToolsService")/> 
5<#assign journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")/> 
6<#assign article = journalArticleService.getLatestArticle(resourcePK?number, 0) /> 
7<#assign document = saxReaderUtil.read(article.getContentByLocale(locale)) /> 
8<#assign jaUrlTitle = article.getUrlTitle() /> 
9<#assign url = "https://${request.serverName}/-/${jaUrlTitle}" /> 
10<#assign theme_color = themeDisplay.getColorSchemeId()/> 
11<#assign groupId = themeDisplay.getScopeGroupId()/> 
12<#assign language = themeDisplay.getLocale()/> 
13 
14<#-- Seccion cabecera--> 
15<div class="module-a1 module-a1 background-${theme_color} "> 
16	<#assign headerTitle = document.valueOf("//dynamic-element[@name='physicalMaterial']/dynamic-element[@name='headerTitle']/dynamic-content/text()") /> 
17	<#if headerTitle?has_content && headerTitle != "" >  
18		<h3 class="uppercase blanco module-a1-title">${headerTitle}</h3> 
19	</#if> 
20	<#assign headerText = document.valueOf("//dynamic-element[@name='physicalMaterial']/dynamic-element[@name='headerTitle']/dynamic-element[@name='headerText']/dynamic-content/text()") /> 
21	<#if  headerText?has_content && headerText != "" >  
22		<span class="module-a1-subtitle blanco">${headerText}</span> 
23	</#if> 
24</div> 
25<div class="contenido-ficha"> 
26	<div class="contenido-ficha-central"> 
27		<#-- Seccion informativa --> 
28		<#assign infoTitle = document.valueOf("//dynamic-element[@name='physicalMaterial']/dynamic-element[@name='infoTitle']/dynamic-content/text()") /> 
29		<#if infoTitle?has_content && infoTitle != "" >  
30			<div class="bloque"> 
31				<h3>${infoTitle}</h3> 
32				<#assign materialInfo = document.valueOf("//dynamic-element[@name='physicalMaterial']/dynamic-element[@name='infoTitle']/dynamic-element[@name='materialInfo']/dynamic-content/text()") /> 
33				<#if materialInfo?has_content && materialInfo != "" >  
34					<div> 
35						${materialInfo} 
36					</div> 
37				</#if> 
38			</div> 
39		</#if> 
40		 
41		<#-- Seccion carrousel --> 
42		<#assign carrouselTitle = document.valueOf("//dynamic-element[@name='physicalMaterial']/dynamic-element[@name='carrouselTitle']/dynamic-content/text()") /> 
43		<#if carrouselTitle?has_content && carrouselTitle != ""> 
44			<div class="bloque" style="display:block;"> 
45				<h3>${carrouselTitle}</h3> 
46				<div> 
47					<#assign carrouselTxt = document.valueOf("//dynamic-element[@name='physicalMaterial']/dynamic-element[@name='carrouselTitle']/dynamic-element[@name='carrouselTxt']/dynamic-content/text()") /> 
48					<#if carrouselTxt?has_content && carrouselTxt != ""> 
49						${carrouselTxt} 
50					</#if> 
51					 
52					<div class="carrousel-images-videos"> 
53					<#list document.selectNodes("//dynamic-element[@name='physicalMaterial']/dynamic-element[@name='carrouselTitle']/dynamic-element[@name='carrouselElem']") as carrouselElem> 
54						<#assign carrouselInternalElem = carrouselElem.valueOf("dynamic-element[@name='carrouselInternalElem']/dynamic-content/text()") /> 
55						<#if carrouselInternalElem?has_content && carrouselInternalElem != ""> 
56							<#assign file = DLFileEntryLocalService.getFileEntryByUuidAndGroupId(carrouselInternalElem?keep_after_last("/")?keep_before("?"),groupId)/> 
57							<#assign mimeType = file.getMimeType()?keep_before("/")/> 
58							<#if mimeType == "image"> 
59								<div class="image-wrapper slide-1"> 
60									<img style="width:100%; height:auto" src="${carrouselInternalElem}" alt="">  
61									<div class="carrousel-info"> 
62										<#assign videoTitle = carrouselElem.valueOf("dynamic-element[@name='videoTitleCarr']/dynamic-content/text()") /> 
63										<#if videoTitle?has_content && videoTitle != ""> 
64											<span class="slide-title blanco">${videoTitle}</span> 
65										</#if> 
66										<div class="slide-counter blanco"> 
67											<span class="blanco"></span> 
68										</div> 
69									</div> 
70								</div> 
71							<#elseif mimeType == "video"> 
72								<div class="video-wrapper slide-2"> 
73									<video style="width:100%; height:auto" controls controlsList="nodownload"> 
74									  <source src="${carrouselInternalElem}" type="${file.getMimeType()}"> 
75									</video> 
76									<div class="playpause"></div> 
77									<div class="carrousel-info"> 
78										<#assign videoTitle = carrouselElem.valueOf("dynamic-element[@name='videoTitleCarr']/dynamic-content/text()") /> 
79										<#if videoTitle?has_content && videoTitle != ""> 
80											<span class="slide-title blanco">${videoTitle}</span> 
81										</#if> 
82										<div class="slide-counter blanco"> 
83											<span class="blanco"></span> 
84										</div> 
85									</div> 
86								</div> 
87							</#if> 
88						<#else> 
89							<#assign YTVideo = carrouselElem.valueOf("dynamic-element[@name='carrouselExternalElem']/dynamic-content/text()") /> 
90							<#if YTVideo?has_content && YTVideo != ""> 
91								<div class="yt-video-wrapper slide-3"> 
92									<iframe src="https://www.youtube.com/embed/${YTVideo}?rel=0" allowfullscreen webkitallowfullscreen mozallowfullscreen frameborder='0'></iframe> 
93									<div class="carrousel-info slide-titulo-3"> 
94										<#assign videoTitle = carrouselElem.valueOf("dynamic-element[@name='videoTitleCarr']/dynamic-content/text()") /> 
95										<#if videoTitle?has_content && videoTitle != ""> 
96											<span class="slide-title blanco">${videoTitle}</span> 
97										</#if> 
98										<div class="slide-counter blanco"> 
99											<span class="blanco"></span> 
100										</div> 
101									</div> 
102								</div> 
103							</#if> 
104						</#if> 
105					</#list> 
106					</div> 
107				</div> 
108			</div> 
109		</#if> 
110		 
111		<#-- Seccion solicitar material --> 
112		<#assign orderMaterial = document.valueOf("//dynamic-element[@name='physicalMaterial']/dynamic-element[@name='orderMaterial']/dynamic-content/text()") /> 
113		<#if orderMaterial?has_content && orderMaterial != ""> 
114			<div class="bloque center" style="display:block;"> 
115				<h3>${orderMaterial}</h3> 
116				<#assign orderMatText = document.valueOf("//dynamic-element[@name='physicalMaterial']/dynamic-element[@name='orderMaterial']/dynamic-element[@name='orderMatText']/dynamic-content/text()") /> 
117				<#if orderMatText?has_content && orderMatText != ""> 
118					<div> 
119						${orderMatText} 
120					</div> 
121				</#if> 
122				<button class="solicitar-material-button boton boton-${theme_color} redondo" type="button">${LiteralsToolsServiceUtil.getLiteral(groupId, language, "com.educaixa.ask.for.material")}</button> 
123			</div> 
124		</#if> 
125	</div> 
126</div> 

educaixa-formularios Portlet