Produciuse un erro ao procesar o modelo.
The following has evaluated to null or missing:
==> dlTool.getFileEntryByJSON(Catalogo.data) [in template "34012#34047#198466" at line 6, column 22]
----
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: #assign fileEntry = dlTool.getFileEnt... [in template "34012#34047#198466" at line 6, column 1]
---- 1<#assign dlTool = utilLocator.findUtil("lportal-ce-hook", "as.asac.template.tools.DLTool") /> 2<#assign journalTool = utilLocator.findUtil("lportal-ce-hook", "as.asac.template.tools.JournalTool") /> 3 4<#assign title = .vars["reserved-article-title"].data> 5 6<#assign fileEntry = dlTool.getFileEntryByJSON(Catalogo.data) /> 7<#assign previewCount = dlTool.getPreviewFileEntryCount(fileEntry) /> 8 9<#assign docUrl = dlTool.getPathByJSON(Catalogo.data, groupId) /> 10<#assign previewUrl = httpUtil.addParameter(docUrl, "previewFileIndex", "") /> 11 12<#assign request = .vars['request']> 13<#assign title=.vars["reserved-article-title"].data /> 14<#assign articleId=.vars["reserved-article-id"].data /> 15<#assign date=.vars["reserved-article-display-date"].data /> 16<#assign smallImageUrl=.vars["reserved-article-small-image-url"].data /> 17<#assign description=.vars["reserved-article-description"].data /> 18<#assign themeDisplayStr = request['theme-display']!> 19 20<#assign dateFormatted = journalTool.getDateFormat(date, "dd MMMM yyyy", locale, timezone)> 21 22<script src="${themeDisplay.getPathThemeJavaScript()}/needsharebutton/needsharebutton.js"></script> 23 24<div class="template template-detail template-publicacion-detail"> 25 ${journalTool.getHTMLTitle(request, title, "portlet-title-wrapper", "portlet-title")} 26 27 <section class="row mt-4"> 28 <#assign columnClass1 = "col-12" /> 29 <#assign columnClass2 = "" /> 30 <#if validator.isNotNull(smallImageUrl)> 31 <#assign columnClass1 = "col-sm-9 col-12" /> 32 <#assign columnClass2 = "col-sm-3 col-12" /> 33 </#if> 34 <section class="${columnClass1}"> 35 <div class="text-metadata"> 36 <span id="share-${articleId}" class="need-share-button-default" 37 data-share-icon-style="box" 38 data-share-networks="Mailto,Twitter,Pinterest,Facebook,Linkedin" 39 data-share-url="${htmlUtil.escape(themeDisplay.getURLCurrent())}" 40 data-share-title="${htmlUtil.escape(title)}"><!--share--></span> 41 <span class="date">${dateFormatted}</span> 42 </div> 43 44 <section class="mt-4"> 45 <dl class="d-flex flex-wrap"> 46 <#if validator.isNotNull(Autores.data)> 47 <dt class="w-25 py-2">${languageUtil.get(locale, "author")}</dt> 48 <dd class="w-75 py-2 border-bottom"> 49 <#list Autores.getSiblings() as Autor> 50 <#if validator.isNotNull(Autor.data)> 51 ${Autor.data}<#if Autor_has_next>, </#if> 52 </#if> 53 </#list> 54 </dd> 55 </#if> 56 57 <#if previewCount!=0> 58 <dt class="w-25 py-2">${languageUtil.get(locale, "number")} ${languageUtil.get(locale, "of")} ${languageUtil.get(locale, "pages")}</dt> 59 <dd class="w-75 py-2 border-bottom">${previewCount}</dd> 60 </#if> 61 </dl> 62 </section> 63 64 <#if validator.isNotNull(description)> 65 <div class="text-abstract">${description}</div> 66 </#if> 67 <#if validator.isNotNull(Texto.data)> 68 <div class="text">${Texto.getData()}</div> 69 </#if> 70 </section> 71 <section class="${columnClass2}"> 72 <#if validator.isNotNull(smallImageUrl)> 73 <a href="${smallImageUrl}" title="Imagen ${title}" class="image-wrapper image-wrapper-cover image-wrapper-style lightbox" style="background-image: url('${dlTool.getThumbnail(smallImageUrl, 3)}');"> 74 <img src="${dlTool.getThumbnail(smallImageUrl, 3)}" alt="Imagen ${title}" /> 75 </a> 76 </#if> 77 </section> 78 </section> 79 80 <#assign htmlDocuments = journalTool.getHTMLDocuments(Documentos.Documento.getSiblings()) /> 81 <#if validator.isNotNull(htmlDocuments)> 82 <section class="documents"> 83 <div class="h4">${languageUtil.get(locale, "documents")}</div> 84 ${htmlDocuments} 85 </section> 86 87 </#if> 88 89 <#assign htmlGallery = journalTool.getHTMLGallery(Galeria.Imagen.getSiblings(), 3, "gallery-thumbs") /> 90 <#if validator.isNotNull(htmlGallery)> 91 <section class="image-gallery"> 92 <div class="h4">${languageUtil.get(locale, "image-gallery")}</div> 93 ${htmlGallery} 94 </section> 95 </#if> 96 97 98 <#if Catalogo?? && validator.isNotNull(Catalogo.data) && previewCount gt 0 > 99 <#assign htmlCatalogo = journalTool.getHTMLDocuments(Catalogo.getSiblings()) /> 100 <#if validator.isNotNull(htmlCatalogo)> 101 <section class="documents"> 102 ${htmlCatalogo} 103 </section> 104 105 </#if> 106 <div id="canvas"> 107 <div class="zoom-icon zoom-icon-in"></div> 108 <a class="download-pdf" href="${docUrl}">Descargar PDF</a> 109 110 <div class="magazine-viewport"> 111 <div class="container"> 112 <div class="magazine"> 113 <div ignore="1" class="next-button"></div> 114 <div ignore="1" class="previous-button"></div> 115 </div> 116 </div> 117 <div class="bottom" style="display:none;"> 118 <div id="slider-bar" class="turnjs-slider"> 119 <div id="slider"></div> 120 </div> 121 </div> 122 </div> 123 </div> 124 125 <script type="text/javascript"> 126 //share 127 new needShareDropdown(document.getElementById('share-${articleId}')); 128 129 //BackURL 130 $('.header-back-to a').click(function(event) { 131 event.preventDefault(); 132 window.location = "https://www.lalin.gal" 133 }); 134 135 //Eliminar efecto senna.js para los enlaces de esta página 136 $('a').attr('data-senna-off','true'); 137 138 139 //Variable con el directorio de imágenes 140 window.previewUrl = "https://www.lalin.gal${previewUrl}"; 141 window.previewCount = ${previewCount}; 142 143 var scriptTag = document.createElement("script"); 144 scriptTag.type = "text/javascript"; 145 scriptTag.async = true; 146 scriptTag.src = "${themeDisplay.getPathThemeJavaScript()}/flipbook/jquery-ui-1.8.20.custom.min.js"; 147 scriptTag.setAttribute('data-senna-track','temporary'); 148 document.getElementsByTagName('head')[0].appendChild(scriptTag); 149 150 scriptTag = document.createElement("script"); 151 scriptTag.type = "text/javascript"; 152 scriptTag.async = true; 153 scriptTag.src = "${themeDisplay.getPathThemeJavaScript()}/flipbook/modernizr.2.5.3.min.js"; 154 scriptTag.setAttribute('data-senna-track','temporary'); 155 document.getElementsByTagName('head')[0].appendChild(scriptTag); 156 157 scriptTag = document.createElement("script"); 158 scriptTag.type = "text/javascript"; 159 scriptTag.async = true; 160 scriptTag.src = "${themeDisplay.getPathThemeJavaScript()}/flipbook/hash.js"; 161 scriptTag.setAttribute('data-senna-track','temporary'); 162 document.getElementsByTagName('head')[0].appendChild(scriptTag); 163 164 scriptTag = document.createElement("script"); 165 scriptTag.type = "text/javascript"; 166 scriptTag.async = true; 167 scriptTag.src = "${themeDisplay.getPathThemeJavaScript()}/flipbook/flipbook.js"; 168 scriptTag.setAttribute('data-senna-track','temporary'); 169 document.getElementsByTagName('head')[0].appendChild(scriptTag); 170 171 </script> 172 <#else> 173 <div class="portlet-msg-info">No se han encontrado imágenes</div> 174 </#if> 175</div>