Vídeo da Reunião de Diretoria
Vinicius Dantas Lourenço
modificado a 1 Mês.
Um erro ocorreu enquanto processava o modelo.
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>