Comprender para prevenir

La Fundación Línea Directa apuesta por la educación vial como herramienta para fomentar buenas prácticas que reduzcan los errores humanos en la conducción. Así, la Fundación cuenta con diversas iniciativas cuyo denominador común es mejorar la concienciación vial en nuestra sociedad.

An error occurred while processing the template.
Failed to "?eval" string with this error:

---begin-message---
Syntax error in ?eval-ed string in line 1, column 10:
Encountered "y", but was expecting one of:
    ".."
    <DOT_DOT_LESS>
    "..*"
    ")"
    "."
    "["
    "("
    "?"
    "!"
    <TERMINATING_EXCLAM>
    "??"
    "+"
    "-"
    "*"
    "/"
    "%"
    "!="
    "="
    "=="
    ">="
    <ESCAPED_GTE>
    ">"
    <ESCAPED_GT>
    <LESS_THAN_EQUALS>
    <LESS_THAN>
    <AND>
    <OR>
---end-message---

The failing expression:
==> imagen_listado?eval  [in template "10512#10549#390490" at line 60, column 60]

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign imagen_listado_Json = imagen_...  [in template "10512#10549#390490" at line 60, column 29]
----
1<style> 
2.news-feed .pull-right { 
3    position: absolute; 
4    right: 0; 
5    padding: 10px 20px; 
6
7 
8.news-feed .pull-right a { 
9    padding: 0; 
10    position: absolute; 
11    background:  
12    white; 
13    border: 1px solid; 
14
15 
16.news-feed .pull-right .lexicon-icon.lexicon-icon-pencil { 
17    margin: 10px; 
18
19</style> 
20 
21<#assign anchor1 = themeDisplay.getPortletDisplay().getId()> 
22<#assign anchor = anchor1?split("INSTANCE_")[1]> 
23 
24<#assign dlService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")> 
25 
26<#if entries?has_content> 
27    <div class="news-feed"> 
28        <div class="wpr"> 
29            <div class="anchor" id="${anchor}"></div> 
30            <#foreach entry in entries> 
31                <#assign 
32            		entry = entry 
33             
34            		assetRenderer = entry.getAssetRenderer() 
35             
36            		entryTitle = htmlUtil.escape(assetRenderer.getTitle(locale)) 
37             
38            		viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, assetRenderer, entry, !stringUtil.equals(assetLinkBehavior, "showFullContent")) 
39            	/> 
40                <#if entry.getClassName() == "com.liferay.journal.model.JournalArticle" > 
41                    <section> 
42                        <div class="pull-right"> 
43            			    <@getEditIcon /> 
44            		    </div> 
45            		     
46                        <#assign assetRenderer = entry.getAssetRenderer()/> 
47                        <#assign journalArticle =  assetRenderer.getAssetObject() /> 
48                        <#assign document = saxReaderUtil.read(journalArticle.getContent())> 
49                        <#assign rootElement = document.getRootElement()> 
50                        <#assign defaultLanguageId = parseXml ("@default-locale", rootElement)> 
51                        <#assign imagen_listado = getField("imagen_listado", locale, defaultLanguageId, rootElement)> 
52                        <#assign alt_imagen_listado = getField("alt_imagen_listado", locale, defaultLanguageId, rootElement)> 
53                        <#assign fecha = getField("fecha", locale, defaultLanguageId, rootElement)> 
54                        <#assign titulo = getField("titulo", locale, defaultLanguageId, rootElement)> 
55                        <#assign entradilla = getField("entradilla", locale, defaultLanguageId, rootElement)> 
56 
57 <!--${journalArticle}--> 
58 
59                        <#if imagen_listado?? && imagen_listado != ""> 
60                            <#assign imagen_listado_Json = imagen_listado?eval> 
61                            <p class="summary-image"> 
62                                <#assign fileEntry = dlService.getFileEntryByUuidAndGroupId(imagen_listado_Json.uuid, groupId)> 
63                                <#if fileEntry != ""> 
64                                    <img src="/documents/${fileEntry.getRepositoryId()}/${fileEntry.getFolderId()}/${fileEntry.getFileName()}/${fileEntry.getUuid()}" alt="${alt_imagen_listado}"> 
65                                </#if> 
66                            </p> 
67                        <#else> 
68                            <p class="summary-no-image"></p> 
69                        </#if> 
70 
71                        <#assign link = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, entry, true)> 
72                        <#assign link = link + "#" + anchor > 
73 
74                        <a href="${link}" class="link"> 
75                            <p>${fecha}</p> 
76                            <h3 class="title">${titulo}</h3> 
77                            <p class="summary">${entradilla}</p> 
78                        </a> 
79 
80                        <div class="hide-text"></div> 
81                    </section> 
82                </#if> 
83            </#foreach> 
84        </div> 
85 
86        <#assign url = themeDisplay.getURLCurrent() > 
87        <#assign paramPrefix = "_" + themeDisplay.getPortletDisplay().getId() + "_" > 
88        <#assign deltaParam = paramPrefix + "delta" > 
89        <#assign curParam = paramPrefix + "cur" > 
90        <#assign deltaParamValue = httpUtil.getParameter(themeDisplay.getURLCurrent(), deltaParam, false) > 
91 
92        <#if deltaParamValue == ""> 
93            <#assign deltaParamValue = 6 > 
94        </#if> 
95 
96        <#if entries?size == getterUtil.getInteger(deltaParamValue)> 
97            <#assign deltaParamValue = getterUtil.getInteger(deltaParamValue) + 6 > 
98 
99            <#if (url?index_of("?") > 0)> 
100                <#assign url = url?substring(0, url?index_of("?"))> 
101            </#if> 
102 
103            <#assign urlParams = "p_p_id=" + themeDisplay.getPortletDisplay().getId() + "&" + deltaParam + "=" + deltaParamValue + "&" + curParam + "=1" > 
104            <#assign url = url + "?" + urlParams + "#" + anchor > 
105            <div class="load-more"> 
106                <a href="${url}"><span></span></a> 
107            </div> 
108        </#if> 
109 
110    </div> 
111</#if> 
112 
113<#function getField field languageId defaultLanguageId xml> 
114    <#local defaultSelector = "//dynamic-content[@language-id='" + defaultLanguageId + "' and ancestor-or-self::*[@name='" + field + "']]"> 
115    <#local localeSelector = "//dynamic-content[@language-id='" + languageId + "' and parent::*[@name='" + field + "']]"> 
116 
117    <#local selector = saxReaderUtil.createXPath(localeSelector)> 
118    <#local value = selector.selectSingleNode(xml)!> 
119 
120    <#if value?has_content> 
121        <#return value.getText()> 
122    </#if> 
123 
124    <#local selector = saxReaderUtil.createXPath(defaultSelector)> 
125    <#local value = selector.selectSingleNode(xml)!> 
126 
127    <#if value?has_content> 
128        <#return value.getText()> 
129    </#if> 
130 
131    <#return ""> 
132</#function> 
133 
134<#function getFieldAttribute attribute field languageId defaultLanguageId xml> 
135    <#local defaultSelector = "//dynamic-content[@language-id='" + defaultLanguageId + "' and ancestor-or-self::*[@name='" + field + "']]"> 
136    <#local localeSelector = "//dynamic-content[@language-id='" + languageId + "' and parent::*[@name='" + field + "']]"> 
137 
138    <#local selector = saxReaderUtil.createXPath(localeSelector)> 
139    <#local value = selector.selectSingleNode(xml)!> 
140 
141    <#if value?has_content> 
142        <#return value.attribute(attribute)> 
143    </#if> 
144 
145    <#local selector = saxReaderUtil.createXPath(defaultSelector)> 
146    <#local value = selector.selectSingleNode(xml)!> 
147 
148    <#if value?has_content> 
149        <#return value.attribute(attribute)> 
150    </#if> 
151 
152    <#return ""> 
153</#function> 
154 
155<#function parseXml xpath xml> 
156    <#local selector = saxReaderUtil.createXPath(xpath)> 
157    <#local result = selector.selectSingleNode(xml)!> 
158 
159    <#if result?has_content> 
160        <#return result.getStringValue()> 
161    </#if> 
162 
163    <#return ""> 
164</#function> 
165 
166<#macro getEditIcon> 
167	<#if assetRenderer.hasEditPermission(themeDisplay.getPermissionChecker())> 
168		<#assign redirectURL = renderResponse.createRenderURL() /> 
169 
170		${redirectURL.setParameter("mvcPath", "/add_asset_redirect.jsp")} 
171		${redirectURL.setWindowState("pop_up")} 
172 
173		<#assign editPortletURL = assetRenderer.getURLEdit(renderRequest, renderResponse, windowStateFactory.getWindowState("pop_up"), redirectURL)!"" /> 
174 
175		<#if validator.isNotNull(editPortletURL)> 
176			<#assign title = languageUtil.format(locale, "edit-x", entryTitle, false) /> 
177 
178			<@liferay_ui["icon"] 
179				cssClass="icon-monospaced visible-interaction" 
180				icon="pencil" 
181				markupView="lexicon" 
182				message=title 
183				url="javascript:Liferay.Util.openWindow({id:'" + renderResponse.getNamespace() + "editAsset', title: '" + title + "', uri:'" + htmlUtil.escapeURL(editPortletURL.toString()) + "'});" 
184			/> 
185		</#if> 
186	</#if> 
187</#macro>