Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> article.getDisplayDate()  [in template "16924578#16924624#30950" at line 60, column 55]

----
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: ${article.getDisplayDate()?string["dd...  [in template "16924578#16924624#30950" at line 60, column 53]
----
1<#assign journalArticleId = .vars['reserved-article-id'].data> 
2 
3<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
4<#assign AssetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")> 
5<#assign AssetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")> 
6<#assign AssetTagLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetTagLocalService")> 
7<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")> 
8<#assign DLAppLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppLocalService")> 
9<#assign ImageToolUtil = serviceLocator.findService("com.liferay.portal.kernel.image.ImageToolUtil")> 
10 
11<#assign blogVocabulary = AssetVocabularyLocalService.getGroupVocabulary(groupId, "Blog")> 
12 
13<#if separator.getSiblings()?has_content> 
14    <#list separator.getSiblings() as separatorField> 
15     
16        <#assign postTitle = separatorField.title.getData() > 
17 
18		<#if separatorField.intro?? && separatorField.intro.getData()?has_content> 
19            <#assign postIntro = separatorField.intro.getData() > 
20		</#if> 
21		<#if separatorField.image.getData()?has_content> 
22            <#assign postImage = separatorField.image.getData() > 
23		</#if> 
24		<#if separatorField.youtubeInsertionCode?? && separatorField.youtubeInsertionCode.getData()?has_content> 
25        	<#assign postYoutubeInsertionCode = separatorField.youtubeInsertionCode.getData() > 
26		</#if> 
27        <#assign postContent = separatorField.content.getData() > 
28 
29        <#-- Recuperamos el web content --> 
30		<#assign article = JournalArticleLocalService.fetchArticle(groupId, journalArticleId)> 
31	 
32		<#-- Recuperamos las categorías del web content --> 
33		<#assign articleCategories = AssetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", article.getResourcePrimKey())> 
34     
35		<#-- Recuperamos los tags del web content --> 
36		<#assign articleTags = AssetTagLocalService.getTags("com.liferay.journal.model.JournalArticle", article.getResourcePrimKey())> 
37 
38		<div id="main"> 
39			<article id="post-${journalArticleId}" class="post-${journalArticleId} post type-post status-publish format-standard hentry"> 
40			 
41				<div class="post-header"> 
42					<span class="cat"> 
43						<#if articleCategories?has_content> 
44							<#list articleCategories as articleCategory> 
45								<#-- Categorías del vocabulario Blog --> 
46								<#if articleCategory.getVocabularyId() == blogVocabulary.getVocabularyId() > 
47									<#assign categoryName = articleCategory.getName()?upper_case /> 
48									<#assign categoryID = articleCategory.getCategoryId() /> 
49									<#assign categoryURL = '/cat/-/categories/' + categoryID /> 
50									<a href="${categoryURL}" rel="category tag">${categoryName}</a> 
51								</#if> 
52							</#list> 
53						</#if> 
54					</span> 
55 
56					<h1>${postTitle}</h1> 
57					<span class="title-divider"></span> 
58					<span class="post-date"> 
59                        <#if (locale == "es_ES") > 
60                            <span class="post-date">${article.getDisplayDate()?string["dd/MM/yyyy"]}</span> 
61                        <#else> 
62                            <span class="post-date">${article.getDisplayDate()?string["MM/dd/yyyy"]}</span> 
63                        </#if> 
64					</span> 
65 
66					<#if postIntro?? > 
67						<div class="post-entry-intro"> 
68							${postIntro} 
69						</div> 
70					</#if> 
71				</div> 
72				 
73				<#if postYoutubeInsertionCode?? && (postYoutubeInsertionCode?length > 10) > 
74					<div class="embed-container">${postYoutubeInsertionCode}</div> 
75				<#elseif postImage?? > 
76					<#assign parts = stringUtil.split(postImage, "/")> 
77					<#assign parts = stringUtil.split(parts?last, "?")> 
78					<#assign uuid = parts[0]> 
79					<#assign fileEntry = DLAppLocalService.getFileEntryByUuidAndGroupId(uuid, groupId)> 
80					<#assign fileEntryContentStrean = fileEntry.getContentStream()> 
81					<#assign image = ImageToolUtil.getImage(fileEntryContentStrean)> 
82					<#assign imageWidth = image.width > 
83					<#assign imageHeight = image.height > 
84					<#assign srcset = "" > 
85					<#assign sizes = ", " + imageWidth + "px" > 
86					<#assign useResponsiveImages = false > 
87 
88 
89					<#if separatorField.image.responsiveImage?? > 
90						<#if separatorField.image.responsiveImage.getSiblings()?has_content> 
91							<#list separatorField.image.responsiveImage.getSiblings() as responsiveImageField> 
92								<#assign responsiveImageData = responsiveImageField.getData() > 
93								 
94								<#if responsiveImageData?has_content > 
95									<#assign respParts = stringUtil.split(responsiveImageData, "/")> 
96									<#assign respParts = stringUtil.split(respParts?last, "?")> 
97									<#assign respUuuid = respParts[0]> 
98									<#assign respFileEntry = DLAppLocalService.getFileEntryByUuidAndGroupId(respUuuid, groupId)> 
99									<#assign respFileEntryContentStrean = respFileEntry.getContentStream()> 
100									<#assign respImage = ImageToolUtil.getImage(respFileEntryContentStrean)> 
101									<#assign respImageWidth = respImage.width > 
102									<#assign srcset = srcset + responsiveImageData + " " + respImageWidth + "w " > 
103									<#assign sizes = sizes + ", " + respImageWidth + "px" > 
104									<#assign useResponsiveImages = true > 
105								</#if> 
106							</#list> 
107						</#if> 
108					</#if> 
109 
110					<#if useResponsiveImages > 
111							<div class="post-img"> 
112								<img src="${postImage}" class="attachment-full-thumb size-full-thumb wp-post-image" srcset="${srcset}" sizes="(max-width: ${imageWidth}px) 100vw${sizes}" width="${imageWidth}" height="${imageHeight}"> 
113							</div> 
114					<#else> 
115						<div class="post-img"> 
116							<img src="${postImage}" class="attachment-full-thumb size-full-thumb wp-post-image"> 
117 
118						</div> 
119					</#if> 
120 
121                </#if> 
122 
123				<div class="post-entry"> 
124				    <div class="post-entry-content"> 
125					    ${postContent} 
126			        </div> 
127 
128				    <#if articleTags?has_content> 
129    					<div class="post-tags"> 
130    			            <#list articleTags as articleTag> 
131                                <#assign tagName = articleTag.getName()?upper_case /> 
132                                <#assign tagURL = '/tag/-/tag/' + tagName /> 
133    			                <a href="${tagURL}" rel="tag">${tagName}</a> 
134        		            </#list> 
135    					</div> 
136                    </#if> 
137						 
138				</div>			 
139				 
140				<div class="post-share"> 
141				 
142                    <#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()> 
143                    <#assign themeDisplay = serviceContext.getThemeDisplay() /> 
144                    <#assign currentUrl = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() /> 
145                     
146					<div class="post-share-box share-buttons"> 
147						<a target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=${currentUrl}"> 
148							<i class="fa fa-facebook"></i> 
149						</a> 
150						<a target="_blank" href="https://twitter.com/intent/tweet?text=Check%20out%20this%20article:%20${postTitle}&amp;url=${currentUrl}"> 
151							<i class="fa fa-twitter"></i> 
152						</a> 
153						<a target="_blank" href="https://www.linkedin.com/shareArticle?mini=true&url=${currentUrl}&title=${postTitle}"> 
154							<i class="fa fa-linkedin"></i> 
155						</a> 
156<!--						 
157                        <#if postImage??> 
158                            <#assign pinterestImageUrl = themeDisplay.getPortalURL() + postImage /> 
159							<a data-pin-do="none" target="_blank" href="https://pinterest.com/pin/create/button?url=${currentUrl}&amp;media=${pinterestImageUrl}&amp;description=${postTitle}"> 
160    							<i class="fa fa-pinterest"></i> 
161    						</a> 
162    					</#if> 
163						<a target="_blank" href="https://plus.google.com/share?url=${currentUrl}"> 
164							<i class="fa fa-google-plus"></i> 
165						</a> 
166--> 
167					</div> 
168				</div> 
169 
170        		<#-- Buscamos artículos relacionados por la primera categoría --> 
171        	    <#if articleCategories?has_content> 
172					<#list articleCategories as articleCategory> 
173						<#-- Categorías del vocabulario Blog --> 
174						<#if articleCategory.getVocabularyId() == blogVocabulary.getVocabularyId() > 
175							<#assign category = articleCategory > 
176							<#break> 
177						</#if> 
178					</#list> 
179 
180                    <#assign assetEntries = AssetEntryLocalService.getAssetCategoryAssetEntries(category.getCategoryId()) > 
181                    <#if assetEntries?has_content> 
182        				<div class="post-related"> 
183        					<div class="post-box"> 
184        						<h4 class="post-box-title"> 
185									<#if (locale == "es_ES") > 
186										<span>Tambi&eacute;n podr&iacute;a gustarte</span> 
187									<#else> 
188										<span>You may also like</span> 
189									</#if> 
190        						</h4> 
191        					</div> 
192        					 
193        					<#--<div class="row"> --> 
194         
195                                <#-- #assign relatedAssetEntries = assetEntries?reverse?chunk(4)?first --> 
196                                <#assign relatedAssetEntries = assetEntries?reverse > 
197                                 
198                                <#if relatedAssetEntries?has_content> 
199                                    <#assign counter = 0 > 
200                                    <#list relatedAssetEntries as relatedAssetEntry> 
201                                        <#if relatedAssetEntry.getClassPK() != article.getResourcePrimKey() && relatedAssetEntry.getVisible() > 
202                                            <#assign relatedArticle = JournalArticleLocalService.fetchLatestArticle (relatedAssetEntry.getClassPK()) > 
203                                            <#if relatedArticle.getDDMStructureKey() == article.getDDMStructureKey() > 
204     
205                                    			<#-- Recuperamos la url de visualización del artículo --> 
206                                                <#assign relatedArticleURL = '/-/' + relatedArticle.getUrlTitle() /> 
207         
208                                                <#-- Extraemos los campos del web content recorriendo su estructura --> 
209                                                <#assign document = saxReaderUtil.read(relatedArticle.getContent()) /> 
210                                                <#assign rootElement = document.getRootElement() /> 
211                                                <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='separator']") > 
212                                                <#list xPathSelector.selectNodes(rootElement) as separatorNode> 
213                                                	<#assign titleXPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='title']") > 
214                                                	<#list titleXPathSelector.selectNodes(separatorNode) as title> 
215                                                		<#assign relatedArticleTitle = title.getStringValue() /> 
216                                                	</#list> 
217                                                	<#assign imageXPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='image']") > 
218                                                	<#list imageXPathSelector.selectNodes(separatorNode) as image> 
219                                                		<#if image.getData()?has_content > 
220                                                			<#assign relatedArticleImage = image.getStringValue()?trim /> 
221                                                		</#if>     
222                                                	</#list> 
223                                                </#list> 
224     
225                            				<#--	<div class="col-xs-12 col-lg-4">  --> 
226                                					<div class="item-related"> 
227                                					    <#if relatedArticleImage?has_content > 
228                                    						<a href="${relatedArticleURL}"><img src="${relatedArticleImage}" class="attachment-misc-thumb size-misc-thumb wp-post-image" alt="" width="520" height="400"></a> 
229                                						</#if> 
230                                												 
231                                						<h3> 
232                                							<a href="${relatedArticleURL}">${relatedArticleTitle}</a> 
233                                						</h3> 
234                                						 
235                                                        <#if (locale == "es_ES") > 
236                                                            <span class="date">${relatedArticle.getDisplayDate()?string["dd/MM/yyyy"]}</span> 
237                                                        <#else> 
238                                                            <span class="date">${relatedArticle.getDisplayDate()?string["MM/dd/yyyy"]}</span> 
239                                                        </#if> 
240                                							 
241                                					</div> 
242                            				<#--	</div>  --> 
243     
244                                                <#assign counter = counter + 1 > 
245                                            </#if> 
246                                        </#if> 
247                                         
248                                        <#if counter == 3> 
249                                            <#break> 
250                                        </#if> 
251                                    </#list> 
252                                </#if> 
253                            <#--</div>  --> 
254                        </div> 
255                    </#if> 
256        	    </#if> 
257			</article> 
258		</div> 
259	</#list> 
260</#if> 

SÍGUENOS EN FACEBOOK

VIDEOS INNOVACIÓN

VIDEOS IFRIDAYS

CONTACTO SACYR

Condesa de Venadito, 7
28027 - Madrid (España)
Teléfono: +34 91 545 50 00

www.sacyr.com