Discovering Life

Who we are

Unraveling Evolution

Who we are

Conserving Biodiversity

Who we are

Back PRBB Open Day 2010

An error occurred while processing the template.
The following has evaluated to null or missing:
==> .vars['separadorimatge']  [in template "10155#10193#NOTICIA" at line 449, column 8]

----
Tip: It's the final [] step that caused this error, not those before it.
----
Tip: If the failing expression is known to 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: #if .vars["separadorimatge"].getChild...  [in template "10155#10193#NOTICIA" at line 449, column 3]
----
1<#assign colorSite = getterUtil.getString(themeDisplay.getThemeSetting("color-site")) /> 
2<script type="text/javascript" src="/documents/6323808/129176989/jquery.captionate.js"></script> 
3<script> 
4function extractYouTubeParameter(url) { 
5    // Expresión regular para YouTube y Shorts 
6    var regExp = /(?:youtube\.com\/(?:shorts\/|watch\?v=)|youtu\.be\/)([^&?#]+)/; 
7    var match = url.match(regExp); 
8 
9    if (match && match[1]) { 
10        // Devuelve el ID del video con cualquier parámetro de consulta adicional 
11        var paramIndex = url.indexOf('?'); 
12        return paramIndex !== -1 ? match[1] + url.substring(paramIndex) : match[1]; 
13    } else { 
14        return null; 
15
16
17</script> 
18<#assign zona = timeZoneUtil.getTimeZone("Europe/Madrid") /> 
19 
20<#assign AssetEntryLocalservice = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
21<#assign journalLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
22<#assign viewURL = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() /> 
23<#assign groupId = getterUtil.getLong(groupId)/> 
24 
25<#-- apliquem les traduccions -->  
26 
27<#switch themeDisplay.getLocale()> 
28<#case "ca_ES"> 
29    <#assign translations = { 
30        "categories", "Categories", 
31        "multimedia", "Multimèdia",  
32        "perfils", "Perfils dels protagonistes",  
33        "info", "Per a més informació",  
34        "noticies", "Notícia publicada per",  
35        "unitat", "Oficina de Comunicació", 
36        "ods", "ODS - Objectius de desenvolupament sostenible", 
37        "odsupf","Els ODS a la UPF" 
38    }/> 
39        <#break> 
40<#case "es_ES"> 
41    <#assign translations = { 
42        "categories", "Categorías", 
43        "multimedia", "Multimedia",  
44        "perfils", "Perfiles de los protagonistas",  
45        "info", "Para más información",  
46        "noticies", "Noticia publicada por",  
47        "unitat", "Oficina de Comunicación", 
48        "ods", "ODS - Objetivos de desarrollo sostenible", 
49        "odsupf","Els ODS a la UPF" 
50    }/> 
51        <#break> 
52<#default> 
53<#assign translations = { 
54        "categories", "Categories", 
55        "multimedia", "Multimedia",  
56        "perfils", "Profiles of the protagonists",  
57        "info", "For more information",  
58        "noticies", "News published by",  
59        "unitat", "Communication Office", 
60        "ods", "SDG - Sustainable Development Goals", 
61        "odsupf","Els ODS a la UPF" 
62    }/> 
63</#switch> 
64 
65<#--<#assign site = groupId />--> 
66<#assign site = groupId /> 
67 
68<#if ( site?is_number) > 
69    <#assign resourcePrimKey =  
70    journalLocalService.getArticle(getterUtil.getLong(site), .vars['reserved-article-id'].data).resourcePrimKey /> 
71    <#assign entry = AssetEntryLocalservice.getEntry("com.liferay.journal.model.JournalArticle", getterUtil.getLong(resourcePrimKey)) /> 
72   <#if entry.getPublishDate()?? > 
73     <#assign fecha_de_creacion = entry.getPublishDate()?string("dd.MM.yyyy")/> 
74   <#else> 
75     <#assign fecha_de_creacion = .now?string("dd.MM.yyyy")/> 
76   </#if> 
77 
78   <#if entry.getModifiedDate()?? > 
79     <#assign fecha_de_modificacion = entry.getModifiedDate()?string("dd.MM.yyyy")/> 
80   <#else> 
81     <#assign fecha_de_modificacion = .now?string("dd.MM.yyyy")/> 
82   </#if> 
83</#if> 
84 
85<#assign cat = "" /> 
86<#assign listaCategorias = entry.getCategories() /> 
87<#list listaCategorias as categoria > 
88    <#if stringUtil.equalsIgnoreCase("OpenCms", categoria.name) > 
89        <#assign cat = categoria.name /> 
90    </#if> 
91</#list> 
92<div class="container noticia-maximized nova"> 
93            <div id="nom_page"> 
94                <h1>${.vars['reserved-article-title'].data}</h1> 
95            </div> 
96            <div class="contingut subtitol"> 
97        <#if .vars['Resum']?? > 
98                    ${.vars['Resum'].getData()} 
99        </#if> 
100            </div> 
101            <div class="data_flex"> 
102        <#if ( fecha_de_creacion?length == 10) > 
103        <div class="data">${fecha_de_creacion}</div> 
104        </#if> 
105         <div class="xarxes-socials"> 
106         <script type="text/javascript"> 
107            var url_link = window.location.href; 
108            var encode_url_link = encodeURIComponent(url_link); 
109            var titular = "${.vars['reserved-article-title'].data}"; 
110            var encode_titular = encodeURIComponent(titular); 
111            function copiar() { 
112                navigator.clipboard.writeText(url_link); 
113
114            function carrega() { 
115                document.querySelectorAll('.ft-btn-rrss--whatsapp').forEach(function(element) { 
116                    element.href = `https://api.whatsapp.com/send?text='%C2%BF`+encode_titular+`%22%20`+encode_url_link+`%3Futm_source%3Dwhatsapp%26utm_medium%3Dsocial%26utm_campaign%3Dbtn-share`; 
117                }); 
118                document.querySelectorAll('.ft-btn-rrss--facebook').forEach(function(element) { 
119                    element.href = `https://www.facebook.com/sharer/sharer.php?u=`+encode_url_link; 
120                    element.setAttribute('data-href', url_link);  
121                }); 
122                document.querySelectorAll('.ft-btn-rrss--twitter').forEach(function(element) { 
123                    element.href = `https://twitter.com/intent/tweet?original_referer=https%3A%2F%2Fupf.edu%2F&ref_src=twsrc%5Etfw%7Ctwcamp%5Ebuttonembed%7Ctwterm%5Eshare%7Ctwgr%5E&text=`+encode_titular+`&url=`+encode_url_link; 
124                }); 
125                document.querySelectorAll('.ft-btn-rrss--email').forEach(function(element) { 
126                    element.href = `mailto:?subject=`+encode_titular+`&body=`+url_link; 
127                }); 
128            }; 
129            if (document.readyState !== "loading") { 
130                carrega(); 
131            }  
132            document.addEventListener("DOMContentLoaded", function(){ 
133                carrega(); 
134            }); 
135        </script> 
136        <div class="ft-mol-rrss-column__items"> 
137            <a href="#" target="_blank" title="WhatsApp" class="ft-btn-rrss ft-btn-rrss--whatsapp" rel="nofollow" data-share-button="whatsapp"> 
138                <span class="fa-stack"><i class="fa-solid fa-circle fa-stack-2x"></i><i class="fa-brands fa-whatsapp fa-stack-1x"></i></span> 
139                <span class="ft-btn-rrss__text"> RRSS WhatsApp</span> 
140            </a> 
141            <a href="#" target="_blank" title="Twitter" class="ft-btn-rrss ft-btn-rrss--twitter" rel="nofollow" data-share-button="twitter"> 
142                <span class="fa-stack"><i class="fa-solid fa-circle fa-stack-2x"></i><i class="fa-brands fa-x-twitter fa-stack-1x "></i></span> 
143                <span class="ft-btn-rrss__text"> RRSS Twitter</span> 
144            </a> 
145            <a href="#" target="_blank" title="Facebook" class="fb-share-button ft-btn-rrss--facebook" rel="nofollow" data-share-button="facebook" data-type="facebook"> 
146                <span class="fa-stack"><i class="fa-solid fa-circle fa-stack-2x"></i><i class="fa-brands fa-facebook-f fa-stack-1x "></i></span> 
147                <span class="ft-btn-rrss__text"> RRSS Facebook</span> 
148            </a> 
149            <a href="#" target="_blank" title="email" class="ft-btn-rrss ft-btn-rrss--email" rel="nofollow" data-share-button="mail"> 
150                 <span class="fa-stack"><i class="fa-solid fa-circle fa-stack-2x"></i><i class="fa-regular fa-envelope fa-stack-1x"></i></span> 
151                <span class="ft-btn-rrss__text"> RRSS email</span> 
152            </a> 
153            <a href="javascript: copiar()" title="Copiar URL" class="ft-btn-nav ft-btn-nav--copy ft-btn-nav--bordered" data-share-button="url"> 
154               <span class="fa-stack"><i class="fa-solid fa-circle fa-stack-2x"></i><i class="fa-regular fa-copy fa-stack-1x"></i></span> 
155                <span class="ft-btn-nav__text">Copiar URL</span> 
156            </a> 
157        </div> 
158            </div> 
159        </div> 
160<div class="row"> 
161    <div class="asset-full-content col-md-8 left"> 
162        <#-- end xarxes socials--> 
163        <div class="content" id="content"> 
164        <#if .vars['separadorimatge']?? > 
165            <#attempt> 
166                <#if ( .vars['separadorimatge'].getChild('url_youtube').getData() != "") > 
167                <!--zona youtube--> 
168                <p id="youtube" class="youtube"> 
169                    <script type="text/javascript"> 
170                        function getYoutube() { 
171                        var id = $(this).parent('p').attr("id"); 
172                        var url = "${.vars['separadorimatge'].getChild('url_youtube').getData()}" 
173                        var parm_youtube = extractYouTubeParameter(url) 
174                        if (parm_youtube.length != 0 ) { 
175                        return '<iframe title="Youtube video player" width="560" height="315" src="https://www.youtube.com/embed/'+ parm_youtube +'" frameborder="0" allowfullscreen></iframe>'; 
176                        } else { 
177                        return ''; 
178
179
180                        document.getElementById("youtube").innerHTML = getYoutube(); 
181                    </script> 
182                </p> 
183                <#elseif (.vars['separadorimatge'].getChild('Imatge_inicial').getData() != "" && .vars['separadorimatge'].getChild('url_youtube').getData() == "" ) > 
184                <p><img alt="Imatge inicial - ${.vars['separadorimatge'].getChild('Imatge_inicial').getChild('peufoto').getData()}" title="${.vars['separadorimatge'].getChild('Imatge_inicial').getChild('peufoto').getData()}" src="${.vars['separadorimatge'].getChild('Imatge_inicial').getData()}" width="100%" /></p> 
185                </#if> 
186            <#recover> 
187            </#attempt> 
188        </#if> 
189        <#if .vars['Noticia']?? > 
190            <div class="content-body">${.vars['Noticia'].getData()}</div> 
191        </#if> 
192        </div> 
193    </div> 
194 
195        <#-- Mostrem les categories que siguin filles de la categoria "Notícies"--> 
196        <#-- Preparació url dels enllaços a les categories--> 
197        <#assign wordCategories = languageUtil.get(locale, "categories-nom-page")> 
198        <#assign wordCategories = wordCategories?lower_case /> 
199        <#assign catUrl = "/web/focus/" + wordCategories + "?p_p_id=122_INSTANCE_4xkc6d8xhKAC&p_p_lifecycle=0&p_p_state=normal&p_p_mode=view&p_p_col_id=column-1&p_r_p_564233524_resetCur=true&p_r_p_564233524_categoryId=" /> 
200        <#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") /> 
201    
202<div class="col-md-4" id="right"> 
203        <#if  .vars['Camps_addicionalsb']?? && .vars['Camps_addicionalsb'].getChild('text_dreta')??> 
204            ${.vars['Camps_addicionalsb'].getChild('text_dreta').getData()} 
205        </#if> 
206         <h2 class="audio">${translations["multimedia"]}</h2> 
207          <div class="audio"> 
208                        <div id="media"></div> 
209                    </div> 
210        <#if .vars['Camps_addicionalsb']?? > 
211            <#attempt> 
212                <#assign prota = .vars['Camps_addicionalsb'].getChild('Protagonistes') /> 
213                <#if ( prota.getChild('nomperfil').getData() != "") > 
214                <h2>${translations["perfils"]}:</h2> 
215                <#list prota.getChild('nomperfil').getSiblings() as perfil > 
216                        <div class="names"> 
217                        <div class="nom">  
218                            ${perfil.getData()} 
219                        </div> 
220                        <div class="xarxes"> 
221                        <#list perfil.getChild('urlperfil').getSiblings() as sub_element > 
222                     
223                            <#-- Formatem l'enllaç perquè no el tracti com si fos una subpàgina --> 
224                            <#assign enllac = sub_element.getData() /> 
225                            <#if !enllac?starts_with("http")  >              
226                                <#assign enllac = "http://" + enllac />  
227                            </#if> 
228                     
229                            <a href="${enllac}" title="${enllac}" target="_blank"> 
230                                <#if (enllac?contains("facebook") ) > 
231                                    <img alt="Facebook UPF" height="16" src="//www.upf.edu/documents/213531008/213545108/facebook.png" width="16"> 
232                                <#elseif ( enllac?contains("twitter") ) > 
233                                    <img alt="Twitter UPF" height="16" src="//www.upf.edu/documents/213531008/213545108/twitter.png" width="16"> 
234                                <#elseif ( enllac?contains("instagram") ) > 
235                                    <img alt="Instagram UPF" height="16" src="//www.upf.edu/documents/213531008/213545108/instagram.png" width="16"> 
236                                <#elseif ( enllac?contains("youtube") ) > 
237                                    <img alt="Youtube UPF" height="16" src="//www.upf.edu/documents/213531008/213545108/youtube_new.png" width="16"> 
238                                <#elseif ( enllac?contains("linkedin") ) > 
239                                    <img alt="Linkedin UPF" height="16" src="//www.upf.edu/documents/213531008/213545108/linkedin.png" width="16"> 
240                                <#elseif ( enllac?contains("flickr") ) > 
241                                    <img alt="Flickr UPF" height="16" src="//www.upf.edu/documents/213531008/213545108/flickr.png" width="16"> 
242                                <#elseif ( enllac?contains("vimeo") ) > 
243                                    <img alt="Vimeo UPF" height="16" src="//www.upf.edu/documents/213531008/213545108/vimeo.png" width="16"> 
244                                <#elseif ( enllac?contains("pinterest") ) > 
245                                    <img alt="Pinterest UPF" height="16" src="//www.upf.edu/documents/213531008/213545108/pinterest.png" width="16"> 
246                                <#else> 
247                                <i class="fa-solid fa-link" aria-label="enllacos"></i> 
248                                 
249                                </#if> 
250                            </a> 
251                    </#list> 
252                        </div> 
253                        </div> 
254                </#list> 
255                </#if> 
256            <#recover>    
257            </#attempt> 
258        </#if>     
259        <div class="categories"> 
260            <h2>${translations["categories"]}:</h2> 
261             
262            <#list listaCategorias as categoria > 
263 
264            <#if categoria.getParentCategoryId() != 0 > <#--arreglo CG --> 
265             
266                <#assign assetCategory = "" /> 
267                <#assign assetCategory = assetCategoryLocalService.getCategory(categoria.getParentCategoryId()) />   
268                <#if (assetCategory.getName() == "Notícies") > 
269                    <div class="tipus"><a href="${catUrl}${categoria.getCategoryId()}">${categoria.getTitle(locale)}</a></div> 
270                </#if> 
271                 
272            </#if>   
273             
274            </#list> 
275        </div> 
276 
277     <div class="block_ods"> 
278         <h2>${translations["ods"]}:</h2> 
279                   <#list listaCategorias as categoria > 
280            <#if categoria.getParentCategoryId() != 0 > <#--arreglo CG --> 
281                <#assign assetCategory = "" /> 
282                <#assign assetCategory = assetCategoryLocalService.getCategory(categoria.getParentCategoryId()) />   
283                <#if (assetCategory.getName() == "ODS") > 
284                 
285                    <#if categoria.getTitle(locale)?contains('01.')> 
286                    <div class="ods_01">${categoria.getTitle(locale)}</div> 
287                    <#elseif categoria.getTitle(locale)?contains('02.')> 
288                    <div class="ods_02">${categoria.getTitle(locale)}</div> 
289                     <#elseif categoria.getTitle(locale)?contains('03.')> 
290                    <div class="ods_03">${categoria.getTitle(locale)}</div> 
291                     <#elseif categoria.getTitle(locale)?contains('04.')> 
292                    <div class="ods_04">${categoria.getTitle(locale)}</div> 
293                     <#elseif categoria.getTitle(locale)?contains('05.')> 
294                    <div class="ods_05">${categoria.getTitle(locale)}</div> 
295                     <#elseif categoria.getTitle(locale)?contains('06.')> 
296                    <div class="ods_06">${categoria.getTitle(locale)}</div> 
297                     <#elseif categoria.getTitle(locale)?contains('07.')> 
298                    <div class="ods_07">${categoria.getTitle(locale)}</div> 
299                     <#elseif categoria.getTitle(locale)?contains('08.')> 
300                    <div class="ods_08">${categoria.getTitle(locale)}</div> 
301                     <#elseif categoria.getTitle(locale)?contains('09.')> 
302                    <div class="ods_09">${categoria.getTitle(locale)}</div> 
303                     <#elseif categoria.getTitle(locale)?contains('10.')> 
304                    <div class="ods_10">${categoria.getTitle(locale)}</div> 
305                     <#elseif categoria.getTitle(locale)?contains('11.')> 
306                    <div class="ods_11">${categoria.getTitle(locale)}</div> 
307                     <#elseif categoria.getTitle(locale)?contains('12.')> 
308                    <div class="ods_12">${categoria.getTitle(locale)}</div> 
309                     <#elseif categoria.getTitle(locale)?contains('13.')> 
310                    <div class="ods_13">${categoria.getTitle(locale)}</div> 
311                     <#elseif categoria.getTitle(locale)?contains('14.')> 
312                    <div class="ods_14">${categoria.getTitle(locale)}</div> 
313                     <#elseif categoria.getTitle(locale)?contains('15.')> 
314                    <div class="ods_15">${categoria.getTitle(locale)}</div> 
315                     <#elseif categoria.getTitle(locale)?contains('16.')> 
316                    <div class="ods_16">${categoria.getTitle(locale)}</div> 
317                     <#elseif categoria.getTitle(locale)?contains('17.')> 
318                    <div class="ods_17">${categoria.getTitle(locale)}</div> 
319                    </#if> 
320                </#if> 
321                 
322            </#if>   
323            </#list> 
324            <a href="/web/responsabilitat-social/agenda-2030-ods" target="_blank" class="btn button_ods">${translations["odsupf"]} <i class="fa-solid fa-chevron-right" aria-hidden="true"></i></a> 
325    </div> 
326<h2 class="mark">Contact</h2> 
327<#if .vars['Camps_addicionalsb']?? > 
328    <#attempt> 
329    <#if .vars['Camps_addicionalsb'].getChild('espremsa').getData() == "true"> 
330        <div class="caixa-contacte"> 
331                <p><strong>${translations["noticies"]}:</strong></p> 
332                <p>${translations["unitat"]}</p> 
333                        <ul> 
334                            <li><a href="tel:616107518">616 107 518</a></li> 
335                            <li><a class="correuContacte" href="mailto:[email protected]">[email protected]</a></li> 
336                        </ul> 
337        </div> 
338             
339    </#if> 
340    <#recover> 
341    </#attempt> 
342</#if> 
343 
344    </div>    
345</div> 
346</div> 
347 
348   
349<#-- decidim si pintem la zona youtube o ivoox  --> 
350        <#if .vars['Camps_addicionalsb']?? > 
351            <#attempt> 
352                <#assign multi = .vars['Camps_addicionalsb'].getChild('Multimedia') /> 
353                <#list multi.getChild('youtubelist').getSiblings() as videos > 
354                    <#if ( videos.getChild('urlyoutubelist').getData()?contains("youtu") ) > 
355                        <script type="text/javascript"> 
356                        function getYoutube() { 
357                        var id = $(this).parent('p').attr("id"); 
358                        var url = "${videos.getChild('urlyoutubelist').getData()}" 
359                        var parm_youtube = extractYouTubeParameter(url) 
360                        if (parm_youtube.length != 0) { 
361                                return "<p>${videos.getChild("titolyoutubelist").getData()}</p><iframe title='Youtube video player' width='560' height='315' src='https://www.youtube.com/embed/"+ parm_youtube +"' frameborder='0' allowfullscreen></iframe>"; 
362                        } else { 
363                        return 'error'; 
364
365
366                        document.getElementById("media").innerHTML += getYoutube(); 
367                        </script> 
368                    <#elseif ( videos.getChild('urlyoutubelist').getData()?contains("ivoox") ) > 
369                        <script type="text/javascript"> 
370                                function getIvoox() { 
371                                if (!"${videos.getChild('urlyoutubelist').getData()}".includes("rf_")) {                           
372                                return "<p class='titol'>${videos.getChild("titolyoutubelist").getData()}</p><br /> Error. Use a valid audio URL";                             
373                                } else {             
374                                var Y = "rf_" 
375                                var X = "${videos.getChild('urlyoutubelist').getData()}" 
376                                var Z = X.slice(X.indexOf(Y) + Y.length) 
377                                return "<p class='titol'>${videos.getChild("titolyoutubelist").getData()}</p><iframe title='Youtube video player' width='238' height='48' frameborder='0' allowfullscreen='' scrolling='no' src='https://www.ivoox.com/player_ek_" + Z + "'></iframe>"; 
378
379
380                                document.getElementById("media").innerHTML += getIvoox(); 
381                        </script> 
382                    </#if>                        
383                </#list> 
384            <#recover> 
385            </#attempt> 
386        </#if> 
387<script> 
388 
389    if (!('remove' in Element.prototype)) { 
390        Element.prototype.remove = function() { 
391            if (this.parentNode) { 
392                this.parentNode.removeChild(this); 
393
394        }; 
395
396    // Si tenim els bookmarks posicionats d forma horitzontal, els movem 
397    if($(".taglib-social-bookmarks").length != 0){ 
398        $(".taglib-social-bookmarks").prependTo(".asset-full-content"); 
399        $(".taglib-social-bookmarks").get(0).remove(); 
400
401     
402    ajustaRelatedContentFullSize(); 
403     
404 
405    // Eliminem seccions si no n'hi ha cap 
406    if ($(".categories div").length == 0){ 
407        $(".categories").remove(); 
408
409    if ($(".block_ods div").length == 0){ 
410        $(".block_ods").remove(); 
411
412    if($('#media').is(':empty')) { 
413    $("h2.audio").hide(); 
414
415   
416   $('#content img[title]').captionate(); // imatges amb class caption mostraran la descripció 
417   
418    function ajustaRelatedContentFullSize(){ 
419        if ($(".list-group.sidebar-list-group").length!= 0){ 
420                $(".asset-links").appendTo("#right").insertAfter('.categories'); 
421                $(".asset-links").css("padding-left","0px !important");          
422        }else{ 
423            setTimeout(function(){ajustaRelatedContentFullSize();},100); 
424
425
426         
427/*Treure el títol de la pàgina 7.2*/ 
428 
429document.querySelector(".upf__titol-pagina")?.remove() 
430</script> 
431 
432<script type="application/ld+json"> 
433
434   "@context": "https://schema.org", 
435   "@type": "NewsArticle", 
436   "mainEntityOfPage":"${viewURL}", 
437   <#if .vars['reserved-article-title']?? >"headline":"${.vars['reserved-article-title'].data}",</#if> 
438   <#if entry.getPublishDate()?? >"datePublished":"${entry.getPublishDate()?string["yyyy-MM-dd,+HH:mm"]}",</#if> 
439   <#if .vars['Resum']?? >"description":"${.vars['Resum'].getData()}",</#if> 
440   "publisher":{ 
441      "@type":"Organization", 
442      "name":"Universitat Pompeu Fabra (UPF)", 
443      "logo":{ 
444         "@type":"ImageObject", 
445         "url":"https://www.upf.edu/o/upf-2016-theme/images/upf/logo.png" 
446
447   }, 
448   
449  <#if .vars['separadorimatge'].getChild('Imatge_inicial')?? >"image": { 
450     "@type":"ImageObject", 
451    "url":"https://www.upf.edu${.vars['separadorimatge'].getChild('Imatge_inicial').getData()}"</#if>  
452
453  
454
455</script> 
456 
457<style> 
458    /*Xarxes socials*/ 
459    .data_flex { 
460        display: flex; 
461        flex-direction: row; 
462        flex-wrap: nowrap; 
463        align-items: center; 
464        justify-content: space-between; 
465
466    .ft-mol-rrss-column__items span.ft-btn-rrss__text,.ft-mol-rrss-column__items .ft-btn-nav__text { 
467    display: none; 
468
469    .ft-mol-rrss-column__items { 
470        text-align: end; 
471
472    .ft-mol-rrss-column__items a { 
473        text-decoration: none; 
474
475    .ft-mol-rrss-column__items .fa-stack > i { 
476    color: ${colorSite}; 
477
478    .ft-mol-rrss-column__items .fa-stack > i:first-child { 
479        background-color: transparent; 
480        color: transparent; 
481
482    /*Unificar estils de padding*/ 
483    .layout-content > section > div, .layout-content > section > div .row > div, .container.noticia-maximized.nova .left { 
484        padding-left: 0 !important; 
485        padding-right: 0 !important; 
486
487    /*Fix notícies relacionades*/ 
488    ul.list-group.sidebar-list-group .autofit-col .list-group-title:only-child { 
489    height: auto; 
490
491    ul.list-group.sidebar-list-group .text-truncate-inline .text-truncate { 
492        display: inline-block; 
493        color: #363733; 
494        text-decoration: none; 
495        max-width: 100%; 
496        overflow: auto; 
497        text-overflow: initial; 
498        vertical-align: bottom; 
499        white-space: normal; 
500        word-wrap: normal; 
501
502    ul.list-group.sidebar-list-group .text-truncate-inline .text-truncate:hover { 
503        color: #8c8f85; 
504
505    /*FI fix notícies relacionades*/ 
506 
507    #media p { 
508    margin: 10px 0 5px; 
509
510    /* ----- Estil per adaptar a themes que no són UPF 2016 ----- */ 
511    #nom_page h1 { 
512        color: ${colorSite} !important; 
513        font-size: 23px; 
514        font-weight: bold; 
515        line-height: normal; 
516        margin-bottom: 15px; 
517        margin-top: 0; 
518        padding: 0; 
519
520    .contingut.subtitol, .contingut.subtitol p, .contingut.subtitol ul, .contingut.subtitol ol { 
521        color: ${colorSite} !important; 
522
523     
524    .data { 
525        color: #989b8f; 
526
527    #right h2 { 
528        font-weight: normal; 
529        font-size: 20px; 
530        color: ${colorSite}; 
531        line-height: normal; 
532        margin-bottom: 1em !important; 
533        margin-top: 1em !important; 
534        text-decoration: none; 
535        text-transform: none; 
536        padding: 0; 
537
538    #right h2:first-child { 
539        margin-top: 0 !important; 
540
541    .tipus a { 
542        text-decoration: none !important; 
543
544     
545    li.list-group.sidebar-list-group-item a { 
546        color: ${colorSite} !important; 
547
548     
549    span.taglib-text { 
550        color:  ${colorSite}; 
551    }  
552     
553    .categories div.tipus a{ 
554        background-color: ${colorSite}; 
555        margin-bottom: 5px; 
556        margin-right: 5px; 
557        max-width: 100%; 
558        position: relative; 
559        display: inline-block; 
560        text-decoration: none; 
561        color: #FFFFFF; 
562        padding: 5px 10px; 
563    }    
564     
565 
566    /* ----- Fi estil per adaptar a themes que no són UPF 2016 ----- */ 
567 
568    /* En aplicar aquesta class a un div .container, limitem amb auto per no ser sempre 1170px */ 
569    .noticia-maximized{ 
570        max-width: 1280px !important; 
571        width: auto !important; 
572
573    .noticia-maximized .row { 
574        align-items: stretch; 
575        align-content: stretch; 
576
577 
578    #nom_page{ 
579        display:block !important; 
580
581    #contingut > #nom_page{ 
582        display:none !important; 
583
584     
585    /* Per treure la icona de davant del títol Continguts relacionats*/ 
586    .asset-links h2{ 
587        background:none !important; 
588
589    .asset-links{ 
590        padding-left: 4px; 
591        margin-top: 0px; 
592
593    .list-group.sidebar-list-group{ 
594        padding-left: 25px !important; 
595
596    .list-group.sidebar-list-group-item{ 
597        list-style: initial !important; 
598
599    .list-group.sidebar-list-group-item img{ 
600        display:none; 
601
602    .contingut.subtitol, .contingut.subtitol p, .contingut.subtitol ul, .contingut.subtitol ol { 
603        font-weight: normal; 
604        padding-top: 0; 
605        line-height: normal !important; 
606
607     
608    .contingut.subtitol { 
609        border-bottom: 1px solid #ddd; 
610        margin-bottom: 10px; 
611        padding-bottom: 10px; 
612
613    .asset-full-content .tipus > a { 
614        background-color: ${colorSite} !important; 
615        margin-right: 5px; 
616        margin-bottom: 5px; 
617        position: relative; 
618        max-width:100%; 
619        text-decoration:none; 
620
621    .asset-full-content .tipus > a:hover { 
622        color: #ffffff !important; 
623
624     
625    .asset-full-content .tipus{ 
626        display: inline; 
627
628     
629    .taglib-social-bookmarks { 
630        display: block; 
631        float: right; 
632        background:none; 
633        margin-top:0px; 
634
635    .taglib-social-bookmarks a{ 
636        margin-bottom: 0px; 
637
638    .taglib-social-bookmarks ul{ 
639        padding:0px; 
640        margin-bottom:0px; 
641
642    .taglib-social-bookmarks ul li{ 
643        margin-right:0px; 
644
645    .asset-full-content .content { 
646        border-bottom: 0px solid #fff; 
647        margin-bottom: 20px; 
648        padding-bottom: 10px; 
649        padding-left: 12px; 
650        padding-right: 12px; 
651        width: 100%; 
652
653    div#content img { 
654        max-width: 100%; 
655
656    .asset-full-content .content::before { 
657        content: ""; 
658        display: inline-table; 
659        width: 100%; 
660
661    .asset-full-content .content h3 { 
662        font-size: 18px; 
663        font-weight: normal; 
664
665    .categories::after { 
666        content: ""; 
667        display: inline-table; 
668        width: 100%; 
669
670    .categories h2, .sheet-tertiary-title{ 
671        color: ${colorSite} !important; 
672
673 
674     
675    @media (min-width: 979px) and (max-width: 1200px) { 
676         
677
678    @media (max-width: 978px) { 
679        .asset-full-content .data { 
680            display:inline-table;} 
681
682    @media (max-width: 480px) {  
683        .asset-full-content .tipus > a { 
684            float:none;} 
685
686 
687     /*Nova notícia*/ 
688   .nova .names a { 
689    text-decoration: none !important; 
690    transition: 0.4s all; 
691
692    .nova .names a:hover img, .nova .names a:hover i { 
693    transform: translateY(-4px)!important; 
694    transition: 0.2s all; 
695
696    .nova .names { 
697    display: table; 
698    box-sizing: border-box; 
699    width: 100%; 
700
701    .nova .names .nom { 
702    width: 50%; 
703    display: inline-table; 
704
705    .nova .names .xarxes { 
706    width: 50%; 
707    display: inline-table; 
708
709    .nova p.youtube { 
710    margin: 0 0 20px; 
711
712    .nova p.subtitol:after { 
713    content: ""; 
714    width: 100%; 
715    height: 1px; 
716    background-color: #ddd; 
717    position: relative; 
718    display: table; 
719
720    .nova #right { 
721        padding-top: 25px; 
722
723    .nova .asset-full-content figure { 
724    display: inline-block; 
725    margin-bottom: 20px; 
726    border: 1px solid transparent; 
727    margin-right: 0; 
728    margin-left: 0; 
729    margin-top: 0; 
730
731    .nova .asset-full-content figcaption {display: block; text-align: center; font-size: 0.8em; font-style: italic; } 
732    .nova .fa-caret-down:before { 
733        content: "\f0d7" !important; 
734
735    @media (max-width: 480px) {  
736        .nova .asset-full-content figure { 
737        float: none !important; 
738
739
740    .nova .asset-full-content .content .content-body > p:nth-child(1):first-letter { 
741    color: ${colorSite}; 
742    float: left; 
743    font-family: Georgia; 
744    font-size: 5rem; 
745    line-height: 4rem; 
746    padding-top: 0; 
747    padding-right: 1rem; 
748    padding-left: 0px; 
749    padding-bottom: 0px; 
750    margin-top: -1rem; 
751
752     
753    ul.list-group.sidebar-list-group { 
754    list-style: none !important; 
755    margin: 0 !important; 
756    padding: 0 !important; 
757
758.asset-links .list-group.sidebar-list-group-item { 
759    list-style: none !important; 
760
761.asset-links li.list-group.sidebar-list-group-item a { 
762    color: #353430 !important; 
763    text-decoration: none !important; 
764    border: 1px solid #ddd; 
765    border-radius: 4px; 
766    display: block; 
767    padding: 10px; 
768    background-color: #eee; 
769
770.asset-links .list-group.sidebar-list-group-item a:hover { 
771    text-decoration: none !important; 
772
773.asset-links .list-group.sidebar-list-group-item a:before { 
774    content: "\f0c1"; 
775    font-family: 'fontawesome-alloy'; 
776    font-size: 25px; 
777    display: inline-block; 
778    margin-right: 4px; 
779    width: 10%; 
780    vertical-align: middle; 
781
782.asset-links li.list-group.sidebar-list-group-item a span.taglib-text { 
783    color: #353430 !important; 
784    display: inline-block; 
785    width: 80%; 
786    vertical-align: middle; 
787    text-decoration: none; 
788
789 
790.asset-links .list-group.sidebar-list-group-item:hover a, .asset-links .list-group.sidebar-list-group-item:hover a span.taglib-text { 
791    background-color: #353430 !important; 
792    color: #eee !important; 
793    text-decoration: none; 
794
795 
796/*Caixa contacte*/ 
797.caixa-contacte { 
798    border: 1px solid #ddd; 
799    padding: 10px; 
800    margin-bottom: 20px; 
801    margin-top: 30px; 
802    top: 60px; 
803    position: -webkit-sticky; 
804    position: sticky; 
805    box-sizing: border-box !important; 
806
807h2.mark { 
808    display: block; 
809    font-size: 0 !important; 
810    color: #fff !important; 
811    background-color: #fff !important; 
812
813 
814/*Elements notícia*/ 
815/*cita*/ 
816.nova cite { 
817    margin-top: 30px; 
818    margin-bottom: 30px; 
819    font-size: 20px; 
820    color: #666; 
821    padding-left: 10px; 
822    box-sizing: border-box; 
823    vertical-align: middle; 
824    display: inline-block; 
825    border-left: 3px solid #666; 
826    padding-top: 10px; 
827    padding-bottom: 10px; 
828    width: 80%; 
829    margin-left: 20%; 
830    line-height: normal !important; 
831
832 .nova .asset-full-content .content h3 { 
833    font-size: 18px; 
834    font-weight: normal; 
835    line-height: normal; 
836    margin-top: 40px; 
837    margin-bottom: 20px; 
838    color:  ${colorSite}; 
839
840.nova .asset-full-content .content h4 { 
841    font-size: 16px; 
842    font-weight: normal; 
843    line-height: normal; 
844    margin-top: 30px; 
845    margin-bottom: 10px; 
846    color: ${colorSite}; 
847
848 
849/*ODS*/ 
850@import url('https://fonts.googleapis.com/css2?family=Source+Sans+Pro&display=swap'); 
851 
852[class*=ods_] { 
853    font-family: 'Source Sans Pro', sans-serif; 
854    font-weight: bold; 
855    line-height: normal; 
856    text-transform: uppercase; 
857    font-size: 10px; 
858    color: white; 
859    display: inline-table; 
860    width: calc(50% - 4px); 
861    max-width: 130px; 
862    height: 130px; 
863    padding: 1em; 
864    box-sizing: border-box; 
865    background-color: grey; 
866    background-repeat: no-repeat; 
867    background-position: bottom; 
868    background-size: 100%; 
869    margin-left: 4px; 
870    margin-bottom: 4px; 
871
872.ods_01 { 
873    background-color: #e5233d; 
874    background-image: url(/documents/10193/252729907/ods_01.png); 
875
876.ods_02 { 
877    background-color: #dda73a; 
878     background-image: url(/documents/10193/252729907/ods_02.png); 
879
880.ods_03 { 
881    background-color: #4ca146; 
882     background-image: url(/documents/10193/252729907/ods_03.png); 
883
884.ods_04 { 
885    background-color: #c7212f; 
886     background-image: url(/documents/10193/252729907/ods_04.png); 
887
888.ods_05 { 
889    background-color: #ef402d; 
890     background-image: url(/documents/10193/252729907/ods_05.png); 
891
892.ods_06 { 
893    background-color: #27bfe6; 
894     background-image: url(/documents/10193/252729907/ods_06.png); 
895
896.ods_07 { 
897    background-color: #fbc412; 
898     background-image: url(/documents/10193/252729907/ods_07.png); 
899
900.ods_08 { 
901    background-color: #a31c44; 
902     background-image: url(/documents/10193/252729907/ods_08.png); 
903
904.ods_09 { 
905    background-color: #f26a2e; 
906     background-image: url(/documents/10193/252729907/ods_09.png); 
907
908.ods_10 { 
909    background-color: #dd1667; 
910     background-image: url(/documents/10193/252729907/ods_10.png); 
911
912.ods_11 { 
913    background-color: #f89d2a; 
914     background-image: url(/documents/10193/252729907/ods_11.png); 
915
916.ods_12 { 
917    background-color: #bf8d2c; 
918     background-image: url(/documents/10193/252729907/ods_12.png); 
919
920.ods_13 { 
921    background-color: #407f46; 
922     background-image: url(/documents/10193/252729907/ods_13.png); 
923
924.ods_14 { 
925    background-color: #1f97d4; 
926     background-image: url(/documents/10193/252729907/ods_14.png); 
927
928.ods_15 { 
929    background-color: #59ba47; 
930     background-image: url(/documents/10193/252729907/ods_15.png); 
931
932.ods_16 { 
933    background-color: #136a9f; 
934     background-image: url(/documents/10193/252729907/ods_16.png); 
935
936.ods_17 { 
937    background-color: #14496b; 
938     background-image: url(/documents/10193/252729907/ods_17.png); 
939
940 
941a.btn.button_ods { 
942    position: relative; 
943    display: table !important; 
944    width: auto; 
945    margin-top: 1em; 
946    margin-bottom: 0; 
947    background-image: none; 
948    background-color: ${colorSite}; 
949    color: #fff; 
950    text-shadow: none; 
951    border: none !important; 
952    float: none; 
953    font-size: inherit; 
954    border-radius: 0; 
955
956a.btn.button_ods:hover, a.btn.button_ods:focus { 
957    background-image: none; 
958    background-color: ${colorSite}70; 
959    color: #fff; 
960
961 
962</style> 

Connect with IBE

Stay tuned to the most important news and events at the institute

Subscribe

Trustees

 
Universitat Pompeu FabraCSICMinisterio de ciencia, innovación y universidades


 

With the support of

 


 


 
Member of

Associate
member of


Distinctions