What is
the CBIO?
The Center for Biomedical Engineering of the University of Navarra (CBIO) integrates the research and transfer that is developed in Tecnun-School of Engineering at the interface between engineering and biomedicine in partnership with others. Schoolsthe Clínica Universidad de Navarra y Cima.
Research areas
An error occurred while processing the template.
Syntax error in template "10136#10174#153676878" in line 70, column 65:
Encountered "</#if>", but at this place only this can be closed: "#list". This usually because of wrong nesting of FreeMarker directives, like a missed or malformed end-tag somewhere. (Note that FreeMarker end-tags must have # or @ after the / character.)
Was expecting one of these patterns:
<ATTEMPT>
<IF>
<LIST>
<ITEMS>
<SEP>
<FOREACH>
<SWITCH>
<ASSIGN>
<GLOBALASSIGN>
<LOCALASSIGN>
<_INCLUDE>
<IMPORT>
<FUNCTION>
<MACRO>
<TRANSFORM>
<VISIT>
<STOP>
<RETURN>
<CALL>
<SETTING>
<OUTPUTFORMAT>
<AUTOESC>
<NOAUTOESC>
<COMPRESS>
<COMMENT>
<TERSE_COMMENT>
<NOPARSE>
<END_LIST>
<ELSE>
<BREAK>
<CONTINUE>
<SIMPLE_RETURN>
<HALT>
<FLUSH>
<TRIM>
<LTRIM>
<RTRIM>
<NOTRIM>
<SIMPLE_NESTED>
<NESTED>
<SIMPLE_RECURSE>
<RECURSE>
<FALLBACK>
<ESCAPE>
<NOESCAPE>
<UNIFIED_CALL>
<STATIC_TEXT_WS>
<STATIC_TEXT_NON_WS>
<STATIC_TEXT_FALSE_ALARM>
"${"
"#{"
"[="
1<#assign dateFormat = "dd|MM|yyyy">
2<#if (locale == "en_US")>
3 <#assign dateFormat = "yyyy|MM|dd">
4<#elseif (locale == "eu_ES")>
5 <#assign dateFormat = "MM|dd|yyyy">
6</#if>
7<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
8<#assign dlFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") />
9<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
10
11<#assign groupFriendlyURL = themeDisplay.getScopeGroup().getFriendlyURL() />
12<#assign friendlyURL = themeDisplay.getScopeGroup().getPathFriendlyURL(false,themeDisplay) + groupFriendlyURL />
13<#assign actualURLFriendly = portalUtil.getHost(request) + friendlyURL />
14
15
16<#assign PortalUtil = staticUtil["com.liferay.portal.kernel.util.PortalUtil"] />
17<#assign URLEncoder = staticUtil["java.net.URLEncoder"] />
18<#assign Normalizer = staticUtil["java.text.Normalizer"] />
19<#assign currentGroupSite = themeDisplay.getLayout().getGroup().getFriendlyURL() />
20<#if themeDisplay.getLayout().getPrivateLayout() == true >
21 <#assign state = themeDisplay.getPathFriendlyURLPrivateGroup()/>
22<#else>
23 <#assign state = themeDisplay.getPathFriendlyURLPublic()/>
24</#if>
25
26
27
28<#assign readMore = languageUtil.get(locale, "leer.mas")>
29<#assign instanceId = themeDisplay.getPortletDisplay().getId()?replace("com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet_INSTANCE_", "")>
30<#assign currentPageUrl = PortalUtil.getLayoutURL(themeDisplay.getLayout(),themeDisplay)>
31
32
33<#assign instanceId ="lovPblW1fC70">
34
35
36
37<#if entries?has_content>
38 <div class="container">
39 <div class="row">
40 <#list entries as curEntry>
41 <#assign article = journalArticleLocalService.fetchLatestArticle(curEntry.getClassPK()) />
42 <#assign assetRendererDate = curEntry.getAssetRenderer() />
43 <#assign contentFecha = article.getDisplayDate()?date />
44 <#assign contentFechaURLString = contentFecha?date?string["dd/MM/yyyy"] />
45 <#assign contentFechaString = contentFecha?date?string["dd | MM | yyyy"] />
46
47 <#assign aArticleXML = saxReaderUtil.read(article.getContentByLocale(locale)) />
48 <#assign tituloNoticia = aArticleXML.valueOf("//dynamic-element[@name='Titulo_noticia']/dynamic-content/text()") />
49 <#assign entradilla = aArticleXML.valueOf("//dynamic-element[@name='subtitulo']/dynamic-content/text()") />
50 <#assign autorNombre = aArticleXML.valueOf("//dynamic-element[@name='Nombre_autor']/dynamic-content/text()") />
51 <#assign autorImagen = aArticleXML.valueOf("//dynamic-element[@name='Autor_imagen']/dynamic-content/text()") />
52 <#assign jsonObjectString = aArticleXML.valueOf("//dynamic-element[@name='Imagen']/dynamic-content/text()") />
53 <#assign journalArticleStructure = article.getDDMStructure().getName(locale)/>
54 <#assign dateToUse = article.getDisplayDate()/>
55 <#if journalArticleStructure = "7_Noticia">
56 <#assign rawDate = aArticleXML.valueOf("//dynamic-element[@name='Fecha_noticia']/dynamic-content/text()") />
57
58<#if rawDate?has_content>
59 <#assign parsedDate = rawDate?date("yyyy-MM-dd") />
60
61 <#assign dateToUse = parsedDate />
62 <#assign contentFechaURLString = parsedDate?string["dd/MM/yyyy"] />
63 <#assign contentFechaString = parsedDate?string["dd | MM | yyyy"] />
64<#else>
65 <#assign dateToUse = article.getDisplayDate() />
66 <#assign contentFechaURLString = dateToUse?string["dd/MM/yyyy"] />
67 <#assign contentFechaString = dateToUse?string["dd | MM | yyyy"] />
68</#if>
69 </#if>
70 </#if>
71
72 <#assign idNoticia = curEntry.getClassPK()/>
73
74 <#assign video = aArticleXML.valueOf("//dynamic-element[@name='Video_youtube']/dynamic-content/text()") />
75
76 <#assign friendlyContentURL = assetPublisherHelper.getAssetViewURL(portalUtil.getLiferayPortletRequest(renderRequest), portalUtil.getLiferayPortletResponse(renderResponse), curEntry,true) />
77
78 <#assign tituloNoticiaEncoded = friendlyUrlDecode(tituloNoticia)>
79
80 <#-- Urls generated always the same page for unav requirements -->
81 <#assign urlNews = languageUtil.get(locale, "url.news.details", "/noticias")>
82
83
84
85 <#-- WORKAROUND FOR TEMPORAL SITES GO LIVE -->
86
87 <#if scopeGroupId = 11140003>
88
89 <#assign urlNews = "/unidad-de-cultura-cientifica/noticias">
90 <#if actualURLFriendly?contains("lfr.cloud")>
91 <#assign urlNews = "/web"+groupFriendlyURL + "/unidad-de-cultura-cientifica/noticias">
92 </#if>
93
94 <#assign instanceId = "yhapDUuDh4hp">
95 </#if>
96 <#if scopeGroupId = 5284696>
97 <#if actualURLFriendly?contains("lfr.cloud")>
98 <#assign urlNews = "/web"+groupFriendlyURL + "/noticias">
99 </#if>
100 <#assign instanceId = "J0z0CEIllYkO">
101 </#if>
102 <#if scopeGroupId = 18305454>
103 <#if actualURLFriendly?contains("lfr.cloud")>
104 <#assign urlNews = "/web"+groupFriendlyURL + "/noticias">
105 </#if>
106 <#assign instanceId = "LafHSsNmQzOW">
107 </#if>
108 <#if scopeGroupId = 24729411>
109 <#if actualURLFriendly?contains("lfr.cloud")>
110 <#assign urlNews = "/web"+groupFriendlyURL + "/news">
111 </#if>
112 <#assign instanceId = "X6fAQfzqF5af">
113 </#if>
114 <#if scopeGroupId = 31657203>
115 <#if actualURLFriendly?contains("lfr.cloud")>
116 <#assign urlNews = "/web"+groupFriendlyURL + "/noticias">
117 </#if>
118 <#assign instanceId = "ja3fYkrbU86Q">
119 </#if>
120 <#if scopeGroupId = 24233193>
121 <#if actualURLFriendly?contains("lfr.cloud")>
122 <#assign urlNews = "/web"+groupFriendlyURL + "/sala-de-prensa/noticias-y-eventos">
123 </#if>
124 <#assign instanceId = "1tZ9oin6Nj8k">
125 </#if>
126 <#if scopeGroupId = 23796512>
127 <#if actualURLFriendly?contains("lfr.cloud")>
128 <#assign urlNews = "/web"+groupFriendlyURL + "/noticias">
129 </#if>
130 <#assign instanceId = "jlsoUQnQ3VKq">
131 </#if>
132 <#if scopeGroupId = 20757644>
133 <#if actualURLFriendly?contains("lfr.cloud")>
134 <#assign urlNews = "/web"+groupFriendlyURL + "/noticias">
135 </#if>
136 <#assign instanceId = "Hy05yqXifLyo">
137 </#if>
138 <#if scopeGroupId = 19239240>
139 <#if actualURLFriendly?contains("lfr.cloud")>
140 <#assign urlNews = "/web"+groupFriendlyURL + "/noticias">
141 </#if>
142 <#assign instanceId = "4CDvZCujBWZJ">
143 </#if>
144 <#if scopeGroupId = 25489263>
145 <#if actualURLFriendly?contains("lfr.cloud")>
146 <#assign urlNews = "/web"+groupFriendlyURL + "/noticias">
147 </#if>
148 <#assign instanceId = "Hk7OgfYuivNX">
149 </#if>
150 <#if scopeGroupId = 5318873>
151 <#if actualURLFriendly?contains("lfr.cloud")>
152 <#assign urlNews = "/web"+groupFriendlyURL + "/el-museo/noticias">
153 </#if>
154 <#assign instanceId = "Hw8G">
155 </#if>
156 <#assign urlDetail = urlNews+"/-/contents/"+contentFechaURLString+"/"+tituloNoticiaEncoded+"/content/"+instanceId+"/"+curEntry.getEntryId()>
157
158
159
160
161
162
163
164 <#if validator.isNotNull(video)>
165
166
167 <#assign foto = "http://img.youtube.com/vi/"+video+"/0.jpg">
168
169 <#else>
170
171 <#if jsonObjectString?? && jsonObjectString?has_content>
172 <#attempt>
173 <#assign jsonObject = jsonObjectString?eval>
174 <#assign entryUuid = jsonObject.uuid />
175 <#assign entryGroupId = getterUtil.getLong(jsonObject.groupId) />
176 <#assign dlFileEntry = dlFileEntryLocalService.getDLFileEntryByUuidAndGroupId(entryUuid, entryGroupId) />
177 <#assign assetEntry = assetEntryLocalService.getEntry("com.liferay.document.library.kernel.model.DLFileEntry", dlFileEntry.fileEntryId) />
178 <#assign assetRenderer = assetEntry.assetRenderer />
179 <#assign foto = assetRenderer.getURLDownload(themeDisplay) />
180
181
182 <#recover>
183 <#assign foto = "" />
184
185 </#attempt>
186
187 </#if>
188 </#if>
189 <a id="${idNoticia}" class="col-xs-12 col-md-4 noticia-secundaria" href="${urlDetail}" alt="" title="">
190 <div class="col-xs-12 panel panel panel-default">
191 <div class="col-xs-12 col-sm-6 col-md-12 img-responsive noticia-img" style="background:url(${foto}) no-repeat"></div>
192 <div class="col-xs-12 col-sm-6 col-md-12 panel-body">
193 <p class="fecha">${dateUtil.getDate(dateToUse, dateFormat, locale)}</p>
194 <p class="antetitulo">${autorNombre}</p>
195 <h3 class="titulo">
196 <#if (tituloNoticia?length > 200)>
197 ${newsTitle[0..199]}
198 <#else>
199 ${newsTitle}
200 </#if>
201 </h3>
202 <p class="visible-md visible-lg entradilla">
203 <#if (entradilla?length > 135)>
204 ${entradilla[0..134]}
205 <#else>
206 ${intro}
207 </#if>
208 </p>
209 </div>
210 <p class="col-xs-12 col-sm-6 col-sm-offset-6 col-md-12 col-md-offset-0 enlace">
211
212 <span href="${urlDetail}">${readMore}</span>
213 </p>
214 </div>
215 </a>
216
217 <#if validator.isNotNull(video)>
218 <!-- Modal de video -->
219 <div class="modal fade modal-unav" id="noticia_${idNoticia}_modal_video" tabindex="-1" role="dialog" aria-labelledby="exampleModalLongTitle" aria-hidden="true">
220 <div class="modal-dialog" role="document">
221 <div class="modal-content">
222 <div class="modal-body">
223 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
224 <span aria-hidden="true">×</span>
225 </button>
226 <div class="embed-responsive embed-responsive-16by9">
227 <iframe class="embed-responsive-item" src="" id="noticia_${idNoticia}_video_iframe" allowscriptaccess="always" allow="autoplay"></iframe>
228 </div>
229 </div>
230 </div>
231 </div>
232 </div>
233
234 <script>
235 $(document).ready(function() {
236 var $videoSrc;
237 $('#${idNoticia}.modal_opener').click(function(e) {
238 e.preventDefault();
239 $videoSrc = $(this).getData()( "src" );
240 $("#noticia_${idNoticia}_video_iframe").attr('src',$videoSrc + "?autoplay=1&modestbranding=1&showinfo=0" );
241 });
242
243 $('#noticia_${idNoticia}_modal_video button').click(function(e) {
244 $("#noticia_${idNoticia}_video_iframe").attr('src', '');
245 });
246 });
247 </script>
248 </#if>
249 </#list>
250 </div>
251 </div>
252</#if>
253
254<#function friendlyUrlDecode title>
255
256 <#assign titleFriendly = title?replace("[^A-Za-z0-9À-ú ]", "", "r")?lower_case>
257 <#assign titleFriendly = titleFriendly?replace("á", "a", "r")>
258 <#assign titleFriendly = titleFriendly?replace("é", "e", "r")>
259 <#assign titleFriendly = titleFriendly?replace("í", "i", "r")>
260 <#assign titleFriendly = titleFriendly?replace("ó", "o", "r")>
261 <#assign titleFriendly = titleFriendly?replace("ú", "u", "r")>
262 <#assign titleFriendly = titleFriendly?replace("ñ", "n", "r")>
263 <#assign titleFriendly = URLEncoder.encode(titleFriendly)>
264 <#assign titleFriendly = titleFriendly?replace("\\+", "-","r")>
265 <#return titleFriendly>
266</#function>