Produciuse un erro ao procesar o modelo.
The following has evaluated to null or missing: ==> journalTool.getHTMLTitle(request, title, "portlet-title-wrapper", "portlet-title") [in template "34012#34047#50515" at line 21, column 7] ---- 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: ${journalTool.getHTMLTitle(request, t... [in template "34012#34047#50515" at line 21, column 5] ----
1<#assign DLFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")>
2
3<#assign journalTool = utilLocator.findUtil("lportal-ce-hook", "as.asac.template.tools.JournalTool") />
4<#assign dlTool = utilLocator.findUtil("lportal-ce-hook", "as.asac.template.tools.DLTool") />
5<#assign portletTool = utilLocator.findUtil("lportal-ce-hook", "as.asac.template.tools.PortletTool") />
6
7<#assign request = .vars['request']>
8<#assign title=.vars["reserved-article-title"].data />
9<#assign articleId=.vars["reserved-article-id"].data />
10<#assign date=.vars["reserved-article-display-date"].data />
11<#assign smallImageUrl=.vars["reserved-article-small-image-url"].data />
12<#assign description=.vars["reserved-article-description"].data />
13<#assign themeDisplayStr = request['theme-display']!>
14
15<#assign dateFormatted = journalTool.getDateFormat(date, "dd MMMM yyyy", locale, timezone)>
16
17<script src="${themeDisplay.getPathThemeJavaScript()}/needsharebutton/needsharebutton.js"></script>
18
19<div class="template template-detail template-publicacion-detail">
20
21 ${journalTool.getHTMLTitle(request, title, "portlet-title-wrapper", "portlet-title")}
22
23 <section class="row mt-4">
24 <#assign columnClass1 = "col-12" />
25 <#assign columnClass2 = "" />
26 <#if validator.isNotNull(smallImageUrl)>
27 <#assign columnClass1 = "col-sm-9 col-12" />
28 <#assign columnClass2 = "col-sm-3 col-12" />
29 </#if>
30 <section class="${columnClass1}">
31 <div class="text-metadata">
32 <span id="share-${articleId}" class="need-share-button-default"
33 data-share-icon-style="box"
34 data-share-networks="Mailto,Twitter,Pinterest,Facebook,Linkedin"
35 data-share-url="${htmlUtil.escape(themeDisplay.getURLCurrent())}"
36 data-share-title="${htmlUtil.escape(title)}"><!--share--></span>
37 <span class="date">${dateFormatted}</span>
38 <script type="text/javascript">
39 new needShareDropdown(document.getElementById('share-${articleId}'));
40 </script>
41 </div>
42
43 <section class="mt-4">
44 <dl class="d-flex flex-wrap">
45 <#if validator.isNotNull(Autores.data)>
46 <dt class="w-25 py-2">${languageUtil.get(locale, "author")}</dt>
47 <dd class="w-75 py-2 border-bottom">
48 <#list Autores.getSiblings() as Autor>
49 <#if validator.isNotNull(Autor.data)>
50 ${Autor.data}<#if Autor_has_next>, </#if>
51 </#if>
52 </#list>
53 </dd>
54 </#if>
55
56 <#if validator.isNotNull(NumeroPaginas.data)>
57 <dt class="w-25 py-2">${languageUtil.get(locale, "number")} ${languageUtil.get(locale, "of")} ${languageUtil.get(locale, "pages")}</dt>
58 <dd class="w-75 py-2 border-bottom">${NumeroPaginas.data}</dd>
59 </#if>
60 </dl>
61 </section>
62
63 <#if validator.isNotNull(description)>
64 <div class="text-abstract">${description}</div>
65 </#if>
66 <#if validator.isNotNull(Texto.data)>
67 <div class="text">${Texto.getData()}</div>
68 </#if>
69 </section>
70 <section class="${columnClass2}">
71 <#if validator.isNotNull(smallImageUrl)>
72 <a href="${smallImageUrl}" title="Imagen ${title}" class="image-wrapper image-wrapper-cover image-wrapper-style lightbox" style="background-image: url('${dlTool.getThumbnail(smallImageUrl, 3)}');">
73 <img src="${dlTool.getThumbnail(smallImageUrl, 3)}" alt="Imagen ${title}" />
74 </a>
75 </#if>
76 </section>
77 </section>
78
79 <#assign htmlDocuments = journalTool.getHTMLDocuments(Documentos.Documento.getSiblings()) />
80 <#if validator.isNotNull(htmlDocuments)>
81 <section class="documents">
82 <div class="h4">${languageUtil.get(locale, "documents")}</div>
83 ${htmlDocuments}
84 </section>
85
86 </#if>
87
88 <#assign htmlGallery = journalTool.getHTMLGallery(Galeria.Imagen.getSiblings(), 3, "gallery-thumbs") />
89 <#if validator.isNotNull(htmlGallery)>
90 <section class="image-gallery">
91 <div class="h4">${languageUtil.get(locale, "image-gallery")}</div>
92 ${htmlGallery}
93 </section>
94 </#if>
95
96 <#if FolderImgs??>
97 <#if FolderImgs.data!="">
98 <#assign imgFiles = DLFileEntryLocalService.getFileEntries(getterUtil.getLong(groupId), getterUtil.getLong(FolderImgs.data))>
99 <#assign total = imgFiles?size/>
100 <script type="text/javascript" src="https://code.jquery.com/jquery-1.7.1.min.js"></script>
101 <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/turn.js/0.11/turn.js"></script>
102
103 <style type="text/css">
104 #magazine{
105 width:80%;
106 height:200px;
107 }
108 #magazine .turn-page{
109 background-color:#ccc;
110 background-size:100% 100%;
111 }
112 div.flip-control {
113 width: 400px;
114 text-align: center;
115 }
116
117 div.flip-control a {
118 margin-left: 10px;
119 }
120 </style>
121 <div id="magazine">
122 <#assign count = 1/>
123 <#list imgFiles as img>
124 <#if count<=total>
125 <div class="img${count}">
126 <img src="/documents/${groupId}/${FolderImgs.data}/${count}.jpg" alt="${count}.jpg"/>
127 </div>
128 </#if>
129 <#assign count = count + 1/>
130 </#list>
131
132 <div class="flip-control">
133 <a href="#" id="prev"> Previous </a>
134 <a href="#" id="next"> Next </a>
135 </div>
136 </div>
137 <script type="text/javascript">
138 $(window).ready(function() {
139 $('#magazine').turn({
140 display: 'double',
141 acceleration: true,
142 gradients: !$.isTouch,
143 elevation:50,
144
145 when: {
146 turned: function(e, page) {
147 /*console.log('Current view: ', $(this).turn('view'));*/
148 }
149 }
150 });
151 });
152 $(window).bind('keydown', function(e){
153 if (e.keyCode==37)
154 $('#magazine').turn('previous');
155 else if (e.keyCode==39)
156 $('#magazine').turn('next');
157 });
158 $( "#prev" ).click(function() {
159 e.preventDefault();
160 $('#magazine').turn('previous');
161 });
162 $( "#next" ).click(function() {
163 e.preventDefault();
164 $('#magazine').turn('next');
165 });
166 </script>
167 </#if>
168 </#if>
169
170 <#-- Geolocalizacion -->
171 <section class="openstreetmap"style="width: 100%; height: 250px; z-index:1"><!--MAPA--></section>
172
173</div>