Specialized collections
The libraries provide special collections about different subjects, or collections transferred from important figures of catalan culture.
At our libraries you will find specialized collections in more than a hundred issues.
Choose the topic that interests you and find out in which library you can use it!
Asset Publisher
An error occurred while processing the template.
The following has evaluated to null or missing:
==> imatgeJson [in template "10901#10934#415529031" at line 58, column 30]
----
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 imatgeJson.has("uuid") && imatgeJ... [in template "10901#10934#415529031" at line 58, column 25]
---- 1<#assign DlAppServiceUtil = staticUtil["com.liferay.document.library.kernel.service.DLAppServiceUtil"]/> 2<#assign JSONFactoryUtil = staticUtil["com.liferay.portal.kernel.json.JSONFactoryUtil"]/> 3<#assign DLFileEntryLocalServiceUtil = staticUtil["com.liferay.document.library.kernel.service.DLFileEntryLocalServiceUtil"]/> 4<#assign DlAppServiceUtil = staticUtil["com.liferay.document.library.kernel.service.DLAppServiceUtil"] /> 5<#assign portletId = themeDisplay.getPortletDisplay().getId() /> 6<#assign cont=0> 7<#assign veureMesText = languageUtil.get(locale, "publisher.veuremes")> 8<#assign veureMenysText = languageUtil.get(locale, "publisher.veuremenys")> 9 10<div class="destacatsSup container radius-container py-4 ${themeDisplay.portletDisplay.id}"> 11 <div class="row"> 12 <#list entries as curEntry> 13 <#assign display=""> 14 <#assign fila1=""> 15 <#assign fila2=""> 16 <#assign assetRenderer=curEntry.getAssetRenderer()/> 17 <#assign journalArticle=assetRenderer.getAssetObject()/> 18 <#assign document = saxReaderUtil.read(journalArticle.getContentByLocale(locale))> 19 <#assign rootElement = document.getRootElement()> 20 <#assign title=saxReaderUtil.createXPath("dynamic-element[@field-reference='title']/dynamic-content").selectSingleNode(rootElement).getStringValue()> 21 <#assign url=saxReaderUtil.createXPath("dynamic-element[@field-reference='url']/dynamic-content").selectSingleNode(rootElement).getStringValue()> 22 <#assign description=saxReaderUtil.createXPath("dynamic-element[@field-reference='description']/dynamic-content").selectSingleNode(rootElement).getStringValue()> 23 <#assign highlightedType=saxReaderUtil.createXPath("dynamic-element[@field-reference='highlightedType']/dynamic-content").selectSingleNode(rootElement).getStringValue()> 24 <#if url=""> 25 <#assign url="/noticies/-/contingut/${groupId}/${journalArticle.getUrlTitle(locale)}"> 26 </#if> 27 <#assign imgSrc=""> 28 <#assign imageFieldSet=saxReaderUtil.createXPath("dynamic-element[@field-reference='imageFieldSet']").selectSingleNode(rootElement)> 29 30 <#assign imageFieldSetNode = rootElement.selectSingleNode("dynamic-element[@field-reference='imageFieldSet']")> 31 <#if imageFieldSetNode??> 32 <#assign imageNode = imageFieldSetNode.selectSingleNode("dynamic-element[@field-reference='image']")> 33 <#assign urlExternaNode = imageFieldSetNode.selectSingleNode("dynamic-element[@field-reference='urlExterna']")> 34 35 <#if imageNode?? && validator.isNotNull(imageNode.getStringValue())> 36 <#assign imatgeJson=JSONFactoryUtil.createJSONObject(imageNode.getStringValue())> 37 </#if> 38 <#if urlExternaNode?? && validator.isNotNull(urlExternaNode.getStringValue())> 39 <#assign imgSrc=urlExternaNode.getStringValue()> 40 </#if> 41 </#if> 42 43 <#if cont gte 8> 44 <#assign display="d-none"> 45 </#if> 46 <#if cont gte 8 && cont lt 12> 47 <#assign fila1="fila1"> 48 </#if> 49 <#if cont gte 12> 50 <#assign fila2="fila2"> 51 </#if> 52 <div class="col-xl-3 col-md-6 col-12 mb-4 ${display} ${fila1} ${fila2}" > 53 <div class="d-flex flex-column"> 54 <div class="imatge mb-2"> 55 <#if imgSrc!=""> 56 <img class="w-100 h-100" loading="lazy" src="${imgSrc}" alt="Portada ${title}"> 57 </#if> 58 <#if imatgeJson.has("uuid") && imatgeJson.has("groupId")> 59 <#assign imagenDlFile = DLFileEntryLocalServiceUtil.getDLFileEntryByUuidAndGroupId(imatgeJson.getString("uuid")?string,imatgeJson.getLong("groupId")?number)> 60 <@adaptive_media_image["img"] class="w-100 h-100" fileVersion=DlAppServiceUtil.getFileEntry(imagenDlFile.fileEntryId?number).getFileVersion()/> 61 </#if> 62 </div> 63 <a class="font-weight-bold font-18 mb-1" href="${url}">${title}</a> 64 <p class="line-clamp-3 mb-0"> 65 ${description} 66 </p> 67 </div> 68 </div> 69 <#assign cont++> 70 </#list> 71 </div> 72 <div class="mt-3 d-flex justify-content-end"> 73 <button type="button" class="botonMesDestacats w-auto"><@liferay.language key="publisher.veuremes" /></button> 74 </div> 75</div> 76<script> 77/* SPA FIX: DOMContentLoaded no dispara al navegar per Senna; usar readyState + Liferay.on('endNavigate') + guard per no duplicar handlers */ 78(function () { 79 function initVeureMes() { 80 81 const container = document.querySelector( 82 '.destacatsSup.${themeDisplay.portletDisplay.id}' 83 ); 84 85 if (!container) { 86 return; 87 } 88 89 const button = container.querySelector('.botonMesDestacats'); 90 91 if (!button) { 92 return; 93 } 94 95 if (button.dataset.veuremesBound === '1') { 96 return; 97 } 98 button.dataset.veuremesBound = '1'; 99 100 let general = 0; 101 102 const fila1 = container.querySelectorAll('.fila1'); 103 const fila2 = container.querySelectorAll('.fila2'); 104 105 const veureMes = 106 "${veureMesText?js_string}"; 107 const veureMenys = 108 "${veureMenysText?js_string}"; 109 110 button.addEventListener('click', function () { 111 112 if (general === 0) { 113 114 fila1.forEach(function (element) { 115 element.classList.remove('d-none'); 116 }); 117 118 general++; 119 120 } else if (general === 1) { 121 122 fila2.forEach(function (element) { 123 element.classList.remove('d-none'); 124 }); 125 126 general++; 127 128 button.textContent = veureMenys; 129 130 } else { 131 132 fila1.forEach(function (element) { 133 element.classList.add('d-none'); 134 }); 135 136 fila2.forEach(function (element) { 137 element.classList.add('d-none'); 138 }); 139 140 general = 0; 141 142 button.textContent = veureMes; 143 } 144 145 }); 146 } 147 148 if (document.readyState === 'loading') { 149 document.addEventListener('DOMContentLoaded', initVeureMes); 150 } else { 151 initVeureMes(); 152 } 153 if (window.Liferay && typeof Liferay.on === 'function') { 154 Liferay.on('endNavigate', initVeureMes); 155 } 156})(); 157</script> 158<style> 159 #portlet_${portletId} .portlet-content {padding-top: 10px; border-radius:8px;} 160 161 .botonMesDestacats{ 162 display: block; 163 font-family: "Lato", sans-serif; 164 border: 1px solid #811424; 165 background: #fff; 166 color: #811424; 167 padding: 10px; 168 font-size: 18px; 169 margin-bottom: 15px; 170 } 171 .botonMesDestacats:focus{ 172 background: #fff; 173 color: #811424; 174 } 175 .botonMesDestacats:hover{ 176 background: #811424; 177 color: #fff; 178 text-decoration: none; 179 } 180 @media (min-width: 575.99px) { 181 .destacatsSup .imatge{height:155px;} 182 } 183 .destacatsSup .font-18{font-size:18px;} 184 .destacatsSup .line-clamp-3{ 185 display: -webkit-box; 186 -webkit-line-clamp: 3; 187 -webkit-box-orient: vertical; 188 overflow: hidden; 189 } 190 .btn-temporal{ 191 background: #811424 !important; 192 color: #fff !important; 193 text-decoration: none !important; 194 display: block !important; 195 font-family: 'Lato',sans-serif !important; 196 border: 1px solid #811424 !important; 197 padding: 10px; 198 font-size: 18px; 199 }</style> Asset Publisher
6200569 - 6353074

Pick and choose among the resources included in every special issues: interesting web resources, research guides, library activities, recommendations, quizzes, ... Get to know more about things that interest you.
6200569 - 6534790
The libraries provide special collections about different subjects, or collections transferred from important figures of catalan culture.
6200569 - 6333825

Libraries help to explore and discover the world around you. Created and maintained by librarians, research guides provide information and resources on a variety of topics. Choose between books, CDs and movies and make use of our loan service.
6200569 - 6353009

A més dels llibres, cd i pel·lícules que trobaràs a les biblioteques, al Gènius també hi pots trobar enciclopèdies en línia i recursos de molts temes, als quals podràs accedir amb el teu número de carnet.




















