Vídeo da Reunião de Diretoria
Vinicius Dantas Lourenço
10 Maanden geleden aangepast.
Er trad een fout op tijdens de verwerking van de sjabloon.
The following has evaluated to null or missing:
==> texto [in template "20098#20124#370250" at line 128, column 11]
----
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: ${texto} [in template "20098#20124#370250" at line 128, column 9]
----
1<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
2<#assign catLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService" )>
3<#assign vocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")>
4<#assign currentArticle = JournalArticleLocalService.getArticle(getterUtil.getLong(groupId),.vars['reserved-article-id'].data)>
5<#assign currentArticleResourcePrimKey = currentArticle.getResourcePrimKey()>
6<#assign categoriesList = catLocalService.getCategories("com.liferay.journal.model.JournalArticle", currentArticleResourcePrimKey)/>
7<#assign currentUrl = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() />
8<#assign displaydate = .vars['reserved-article-display-date'].data>
9<#assign modifieddate = .vars['reserved-article-modified-date'].data>
10
11<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()>
12<#assign themeDisplay = serviceContext.getThemeDisplay() />
13<#assign currentUrl = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() />
14
15<#setting locale="pt_BR">
16
17<div class="noticia-aberta">
18 <div class="categorias">
19 <#list categoriesList as category>
20 <#if category.name != "Vídeo">
21 <span class="tag"> ${category.name} </span>
22 </#if>
23 </#list>
24 </div>
25 <!-- Título da Matéria AQUI -->
26 <h1 class="noticia-titulo">${.vars['reserved-article-title'].data}</h1>
27
28 <#if .vars['reserved-article-description'].data?has_content>
29 <#assign descricao = .vars['reserved-article-description'].data/>
30 <#else>
31 <#if video_descricao?has_content>
32 <#assign descricao = video_descricao.getData()/>
33 <#else>
34 <#assign descricao = "" />
35 </#if>
36 </#if>
37
38 <div class="descricao">
39 <p>${descricao}</p>
40 </div>
41
42
43 <#-- Parse the date to a date object -->
44 <#assign displaydate = (displaydate?datetime("EEE, d MMM yyyy HH:mm:ss Z")?long - 3*60*60*1000)?number_to_datetime>
45 <#assign modifieddate = (modifieddate?datetime("EEE, d MMM yyyy HH:mm:ss Z")?long - 3*60*60*1000)?number_to_datetime>
46
47 <div class="datas-redesocial">
48 <div class="row">
49 <div class="datas col-lg-6 col-md-12 align-items-center">
50 <span class="data-publicado ">
51 ${"Publicado em " + displaydate?string("dd/MM/yyyy HHhmm")}
52 </span>
53 <span class="separador">|</span>
54 <span class="data-modificado ">
55 ${"Atualizado em " + modifieddate?string("dd/MM/yyyy HHhmm")}
56 </span>
57 </div>
58 <div class="redesocial col-lg-4 offset-lg-2 col-md-10 offset-md-1">
59 <button type="button" class="btn btn-link" onClick="window.print()"><span class="share-imprimir"></span></button>
60 <span class="separador">|</span>
61 <span class="compartilhe">Compartilhe: </span>
62 <a href="https://api.whatsapp.com/send?text=${currentUrl}" target="_blank" data-action="share/whatsapp/share"><span class="share-whatsapp"></span></a>
63 <a href="https://www.facebook.com/sharer.php?u=${currentUrl}" target="_blank"><span class="share-facebook"></span></a>
64 <a href="https://twitter.com/intent/tweet?url=${currentUrl}" target="_blank"><span class="share-twitter"></span></a>
65 <a href="https://www.linkedin.com/shareArticle?mini=true&url=${currentUrl}" target="_blank"><span class="share-linkedin"></span></a>
66 <button type="button" class="btn btn-link" id="copy" title="Copiar link" onclick="copyToClipboard('${currentUrl}')">
67 <span class="share-url"></span>
68 </button>
69 <script>
70 $(function () {
71 $("#copy").tooltip()
72 })
73
74 function copyToClipboard(str) {
75 const el = document.createElement('textarea');
76 el.value = str;
77 el.setAttribute('readonly', '');
78 el.style.position = 'absolute';
79 el.style.left = '-9999px';
80 document.body.appendChild(el);
81 el.select();
82 document.execCommand('copy');
83 document.body.removeChild(el);
84 $("#copy").tooltip("option", "content", "Copiado!");
85 $("#copy").tooltip("option", "show");
86 setTimeout(() => {
87 $("#copy").tooltip("option", "hide");
88 $("#copy").tooltip("option", "disable");
89 $("#copy").tooltip("option", "content", "Copiar Link");
90 $("#copy").tooltip("option", "enable");
91 }, 3000);
92 };
93 </script>
94 </div>
95 </div>
96 </div>
97 <#if url_video?has_content>
98 <#if url_video.getData()?? && url_video.getData() != "">
99 <#assign videoId = url_video.getData()?split("watch?v=") >
100 <#assign videoId = videoId[1] >
101 <#assign videoId = videoId?split(" ") >
102 <#assign videoId = videoId[0] >
103 </#if>
104 </#if>
105
106
107 <#if videoId?has_content>
108 <div class="video d-flex justify-content-center">
109 <iframe width="768" height="576" src="https://www.youtube.com/embed/${videoId}" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
110 </div>
111 </#if>
112
113 <#if video_texto.getData()?? && video_texto.getData() != "">
114 <#assign texto = video_texto.getData()?split("<iframe ") >
115 <#assign videoId = texto[1] >
116 <#assign texto = texto[0]?split("</p>")[0] >
117 <#assign texto = texto + "</p>" >
118 <#assign videoId = videoId?split('https://www.youtube.com/embed/') >
119 <#if videoId?size gt 1>
120 <#assign videoId = videoId[1] >
121 <#else>
122 <#assign videoId = videoId[0]?split('http://www.youtube.com/embed/')[1] >
123 </#if>
124 <#assign videoId = videoId?split('"')[0] >
125 </#if>
126
127 <div class="noticia-texto">
128 ${texto}
129 </div>
130
131 <#if videoId != "">
132 <div class="video d-flex justify-content-center">
133 <iframe width="768" height="576" src="https://www.youtube.com/embed/${videoId}" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
134 </div>
135 </#if>
136
137 <#if video_autor?has_content>
138 <p style="margin-top: 2rem;" class="autor">${video_autor.getData()}</p>
139 </#if>
140
141 <#if categoriesList?has_content>
142 <div class="categorias-footer">
143 <span class="categoria">Categoria</span>
144 <div class="categorias-lista">
145 <#list categoriesList as category>
146 <#if category.name != "Vídeo">
147 <span class="tag"> ${category.name} </span>
148 </#if>
149 </#list>
150 </div>
151 </div>
152 </#if>
153
154
155 <#assign tags = .vars["reserved-article-asset-tag-names"].data>
156 <#if tags?has_content>
157 <div class="tags">
158 <span>Tags: </span>
159 <div class="tags-lista">
160 <#assign tags = tags?split(",")>
161 <#list tags as tag>
162 <a href="#${tag}"><span class="tag">${tag}</span></a>
163 </#list>
164 </div>
165 </div>
166 </#if>
167
168
169 <div class="datas-redesocial redesocial-footer">
170 <div class="row">
171 <div class="redesocial col-lg-3 offset-lg-9 col-md-6 offset-md-6">
172 <span class="compartilhe">Compartilhe: </span>
173 <a href="https://api.whatsapp.com/send?text=${currentUrl}" target="_blank" data-action="share/whatsapp/share"><span class="share-whatsapp"></span></a>
174 <a href="https://www.facebook.com/sharer.php?u=${currentUrl}" target="_blank"><span class="share-facebook"></span></a>
175 <a href="https://twitter.com/intent/tweet?url=${currentUrl}" target="_blank"><span class="share-twitter"></span></a>
176 <a href="https://www.linkedin.com/shareArticle?mini=true&url=${currentUrl}" target="_blank"><span class="share-linkedin"></span></a>
177 <button type="button" class="btn btn-link" id="copy" title="Copiar link" onclick="copyToClipboard('${currentUrl}')">
178 <span class="share-url"></span>
179 </button>
180 <script>
181 $(function () {
182 $("#copy").tooltip()
183 })
184
185 function copyToClipboard(str) {
186 const el = document.createElement('textarea');
187 el.value = str;
188 el.setAttribute('readonly', '');
189 el.style.position = 'absolute';
190 el.style.left = '-9999px';
191 document.body.appendChild(el);
192 el.select();
193 document.execCommand('copy');
194 document.body.removeChild(el);
195 $("#copy").tooltip("option", "content", "Copiado!");
196 $("#copy").tooltip("option", "show");
197 setTimeout(() => {
198 $("#copy").tooltip("option", "hide");
199 $("#copy").tooltip("option", "disable");
200 $("#copy").tooltip("option", "content", "Copiar Link");
201 $("#copy").tooltip("option", "enable");
202 }, 3000);
203 };
204 </script>
205 </div>
206 </div>
207 </div>
208</div>
209
210<#-- -------------------- -->
211
212<#function getDocTitle cur_documento_da_noticia>
213 <#if cur_documento_da_noticia.titulodocumento?? && cur_documento_da_noticia.titulodocumento.getData()?? && cur_documento_da_noticia.titulodocumento.getData() != "">
214 <#assign tituloDoc = cur_documento_da_noticia.titulodocumento.getData() />
215 <#else>
216 <#assign groupId = 0 />
217 <#assign uuId = 0 />
218 <#list cur_documento_da_noticia.getData()?keep_before_last("?")?split("/") as linkPart>
219 <#assign groupId = (linkPart?index == 2)?then(linkPart?number, groupId) />
220 <#assign uuId = (linkPart?index == 5)?then(linkPart, uuId) />
221 </#list>
222 <#assign dlFileEntryService = serviceLocator.findService('com.liferay.document.library.kernel.service.DLFileEntryService') />
223 <#assign file = dlFileEntryService.getFileEntryByUuidAndGroupId(uuId,groupId) />
224 <#assign tituloDoc = file.fileName />
225 </#if>
226 <#return tituloDoc>
227</#function>