Curso de Fisioterapia da Unicap cria projeto de extensão para aprimorar práticas de saúde voltado para a acupuntura - Unicap
Título Notícias
Notícias
Curso de Fisioterapia da Unicap cria projeto de extensão para aprimorar práticas de saúde voltado para a acupuntura
The following has evaluated to null or missing:
==> selectedOptions?first [in template "22092#22119#81555" at line 68, column 104]
----
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: #assign selectedKey = selectedOptions... [in template "22092#22119#81555" at line 68, column 81]
----
1<style>
2 .noticia-custom .component-title, .noticia-custom .asset-avatar, .noticia-custom .user-info, .noticia-custom .asset-details .asset-ratings, .noticia-custom .asset-details .taglib-social-bookmarks {
3 display: none;
4 }
5 .asset-full-content {
6 opacity: 0;
7 visibility: hidden;
8 }
9 .noticia-custom .lfr-asset-anchor {
10 position: absolute;
11 top: 0;
12 }
13</style>
14<#setting url_escaping_charset="UTF-8">
15<#assign
16 groupId = themeDisplay.getLayout().getGroupId()
17 journalArticleId = .vars['reserved-article-id'].data
18 journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")
19 Article = journalArticleLocalService.getArticle(groupId, journalArticleId)
20 classPK = Article.getResourcePrimKey()?eval
21 currentURL = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent()
22
23 assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")
24 entry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", classPK)
25/>
26<div class="row">
27 <div class="col-md-8">
28 <div class="blog-internal">
29 <div class="banner-noticia">
30 <div class="date-blog absolute">
31 <span class="day-date">${dateUtil.getDate(Article.getDisplayDate(), "dd", locale)}</span>
32 <span class="year-date">${dateUtil.getDate(Article.getDisplayDate(), "MMM yyyy", locale)}</span>
33 </div>
34 <#if CoverImage.getData()?? && CoverImage.getData() != "">
35 <img class="embed-responsive" alt="${CoverImage.getAttribute("alt")}" data-fileentryid="${CoverImage.getAttribute("fileEntryId")}" src="${CoverImage.getData()}" />
36 </#if>
37
38 <@liferay_util["html-top"]><meta name="twitter:title" content="${.vars['reserved-article-title'].data} "></@>
39 <@liferay_util["html-top"]><meta name="twitter:description" content="<#outputformat "plainText">${htmlUtil.stripHtml(Content.getData())}</#outputformat>"></@>
40 <@liferay_util["html-top"]><meta name="twitter:image" content="${themeDisplay.getURLPortal()}${CoverImage.getData()}"></@>
41 <@liferay_util["html-top"]><meta name="twitter:card" content="summary_large_image"></@>
42 <@liferay_util["html-top"]><meta property="og:type" content="article"></@>
43 <@liferay_util["html-top"]><meta property="og:site_name" content="${themeDisplay.getSiteGroupName()}"></@>
44 <@liferay_util["html-top"]><meta property="og:title" content="${.vars['reserved-article-title'].data}"></@>
45 <@liferay_util["html-top"]><meta property="og:description" content="<#outputformat "plainText">${htmlUtil.stripHtml(Content.getData())}</#outputformat>"></@>
46 <@liferay_util["html-top"]><meta property="og:image" content="${themeDisplay.getURLPortal()}${CoverImage.getData()}"></@>
47 <@liferay_util["html-top"]><meta property="og:url" content="${themeDisplay.getURLPortal()}${themeDisplay.getURLCurrent()}"></@>
48
49 <div class="title-absolute">
50 <div class="bg-titlte"></div>
51 <h1>${.vars['reserved-article-title'].data}</h1>
52 </div>
53 </div>
54 <div class="container-content blog-padding">
55 <div class="author-blog">
56 <#-- INICIO DECLARAÇÕES VARIAVEIS PARA ULTIMO EDITOR -->
57 <#assign userLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.UserLocalService") />
58 <#assign groupId = groupId?long />
59 <#assign articleId = .vars["reserved-article-id"].data />
60 <#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
61 <#assign article = journalArticleLocalService.getLatestArticle(groupId, articleId) />
62 <#assign modifierUser = userLocalService.getUser(article.getStatusByUserId()) />
63 <#-- FIM DECLARAÇÕES -->
64
65
66 <#assign selectedOptions = selectPublished.getOptions() />
67 <#assign optionsMap = selectPublished.getOptionsMap() />
68 <#assign selectedKey = selectedOptions?first />
69
70 <#-- <#assign publicadoPor = .vars['reserved-article-author-name'].data /> nome do criador do conteúdo -->
71
72 <#assign publicadoPor = modifierUser.getFullName() />
73
74 <#if selectedKey?has_content>
75 <@liferay_ui["message"] key="published"/> <span class="text-lowercase"><@liferay_ui["message"] key="per"/></span>: ${optionsMap[selectedKey]!""}
76 <#else>
77 <@liferay_ui["message"] key="published"/> <span class="text-lowercase"><@liferay_ui["message"] key="per"/></span>: ${publicadoPor}
78 </#if>
79 </div>
80
81 <div class="content-blog">
82 ${Content.getData()}
83 </div>
84
85 <div class="content-social-blog">
86
87 <div class="content-view">
88 <span class="text-capitalize"><@liferay_ui["message"] key="views"/>: </span>
89 <div class="views">
90 <span class="icon-eye-open"></span>
91 <span class="number-views">${entry.getViewCount()}</span>
92 </div>
93 </div>
94
95 <#-- <div class="content-share">
96 <span class="text-capitalize"><@liferay_ui["message"] key="share"/></span>
97 <div class="click-share">
98 <@liferay_social_bookmarks["bookmarks"]
99 className="com.liferay.journal.model.JournalArticle"
100 classPK=journalArticleId?eval
101 displayStyle="inline"
102 target="_blank"
103 title=.vars['reserved-article-title'].data
104 url=currentURL
105 />
106 </div>
107 </div> -->
108
109 <div class="content-share">
110 <span class="text-capitalize"><@liferay_ui["message"] key="share"/>:</span>
111 <div class="click-share">
112
113 <#assign shareTitle = .vars['reserved-article-title'].data?url />
114 <#assign shareURL = currentURL?url />
115
116 <a href= "https://www.facebook.com/sharer/sharer.php?u=${shareURL}"
117
118 target="_blank" rel="noopener noreferrer" class="share-btn share-facebook" aria-label="Facebook" style="text-decoration: none;">
119 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="35" height="35" fill="currentColor">
120 <path d="M22 12c0-5.52-4.48-10-10-10S2 6.48 2 12c0 4.84 3.44 8.87 8 9.8V15H8v-3h2V9.5C10 7.57 11.57 6 13.5 6H16v3h-2c-.55 0-1 .45-1 1v2h3v3h-3v6.95c5.05-.5 9-4.76 9-9.95z"/>
121 </svg>
122 </a>
123
124 <a href="https://twitter.com/intent/tweet?url=${shareURL}&text=${shareTitle}"
125 target="_blank" rel="noopener noreferrer" class="share-btn share-x" aria-label="X (Twitter)" style="text-decoration: none;">
126 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="35" height="35" fill="currentColor">
127 <path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-4.714-6.231-5.401 6.231H2.746l7.73-8.835L1.254 2.25H8.08l4.253 5.622 5.911-5.622zm-1.161 17.52h1.833L7.084 4.126H5.117z"/>
128 </svg>
129 </a>
130
131 <a href="https://www.linkedin.com/shareArticle?mini=true&url=${shareURL}&title=${shareTitle}"
132 target="_blank" rel="noopener noreferrer" class="share-btn share-linkedin" aria-label="LinkedIn" style="text-decoration: none;">
133 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="35" height="35" fill="currentColor">
134 <path d="M19 3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14m-.5 15.5v-5.3a3.26 3.26 0 0 0-3.26-3.26c-.85 0-1.84.52-2.32 1.3v-1.11h-2.79v8.37h2.79v-4.93c0-.77.62-1.4 1.39-1.4a1.4 1.4 0 0 1 1.4 1.4v4.93h2.79M6.88 8.56a1.68 1.68 0 0 0 1.68-1.68c0-.93-.75-1.69-1.68-1.69a1.69 1.69 0 0 0-1.69 1.69c0 .93.76 1.68 1.69 1.68m1.39 9.94v-8.37H5.5v8.37h2.77z"/>
135 </svg>
136 </a>
137
138 <a href="https://wa.me/?text=${shareTitle}%20${shareURL}"
139 target="_blank" rel="noopener noreferrer" class="share-btn share-whatsapp" aria-label="WhatsApp" style="text-decoration: none;">
140 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="35" height="35" fill="currentColor">
141 <path d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 0 1-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 0 1-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 0 1 2.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0 0 12.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 0 0 5.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 0 0-3.48-8.413z"/>
142 </svg>
143 </a>
144
145 </div>
146</div>
147
148 </div>
149 </div>
150
151 <#if AssociarPagina?? && AssociarPagina.getSiblings()?has_content>
152 <#assign layoutService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") />
153 <#if AssociarPagina.getData()?? && AssociarPagina.getData() != "">
154 <div class="brc-noticias hide">
155 <#list AssociarPagina.getSiblings() as cur_AssociarPagina>
156 <#if cur_AssociarPagina.getData()?eval.layoutId??>
157 <#assign layout = layoutService.getLayout(themeDisplay.getScopeGroupId(),false,cur_AssociarPagina.getData()?eval.layoutId?number) />
158 <#assign pageTitleCustom = layout.getName(locale) />
159 <li class="breadcrum-custom-news">
160 <a class="text-light" title="${pageTitleCustom}" href="${cur_AssociarPagina.getFriendlyUrl()}">
161 ${pageTitleCustom}
162 </a>
163 </li>
164 </#if>
165 </#list>
166 </div>
167 </#if>
168 </#if>
169
170 </div>
171 </div>
172 <div class="d-none d-xl-block col-xl-1"></div>
173 <div class="col-md-4 col-xl-3">
174 <#assign
175 currentArticleAssetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", classPK)
176 currentArticleAssetEntryId = currentArticleAssetEntry.getEntryId()
177 />
178
179 <#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService")! />
180
181 <#if assetLinkLocalService?has_content>
182 <#assign currentArticleRelatedLinks = assetLinkLocalService.getDirectLinks(currentArticleAssetEntryId, true) />
183 <#else>
184 <#assign currentArticleRelatedLinks = [] />
185 </#if>
186
187 <#if currentArticleRelatedLinks?size != 0>
188 <#assign
189 baseUrl = currentURL?split(.vars['reserved-article-url-title'].data)[0]
190 />
191 <div class="row">
192 <#list currentArticleRelatedLinks[0..*5] as related_entry>
193 <#assign
194 relatedAssetEntryId = related_entry.getEntryId2()
195 relatedAssetEntry = assetEntryLocalService.getEntry(relatedAssetEntryId)
196 relatedAssetEntryPrimKey = relatedAssetEntry.getClassPK()
197 relatedArticle = journalArticleLocalService.getLatestArticle(relatedAssetEntryPrimKey)
198 viewURL = baseUrl + relatedArticle.getUrlTitle()
199
200 article = relatedArticle
201 docXml = saxReaderUtil.read(article.getContent())
202 contentNoticia = docXml.valueOf("//dynamic-element[@name='Content']/dynamic-content/text()")
203 contentInfoComplementar = docXml.valueOf("//dynamic-element[@name='InfoComplementar']/dynamic-content/text()")
204 image = docXml.valueOf("//dynamic-element[@name='CoverImage']/dynamic-content/text()")
205 imgJson = jsonFactoryUtil.createJSONObject(image)
206 urlImage = "/documents/"+ imgJson.groupId +"/" +imgJson.fileEntryId +"/"+ imgJson.name?url +"/"+imgJson.uuid
207
208 colorBg = "vermelho"
209 colorText = "secondary"
210 />
211 <#if related_entry?is_even_item>
212 <#assign
213 colorBg = "secondary"
214 colorText = "white"
215 />
216 </#if>
217 <#if contentInfoComplementar?? && contentInfoComplementar != "">
218 <div class="col-md-12 mb-6">
219 <#if image?? && image != "">
220 <img src="${urlImage}" alt="info complementar" />
221 </#if>
222 <div class="card-footer">
223 ${contentInfoComplementar}
224 </div>
225 </div>
226 <#else>
227 <div class="col-md-12 mb-6">
228 <div class="card-related">
229 <#if getterUtil.getBoolean(ImagemPossuiFiltro.getData())>
230 <div class="card bg-${colorBg}">
231 <#else>
232 <div class="card">
233 </#if>
234 <div class="background-image bg-color-yes" style="background-image: url(${urlImage});">
235 </div>
236 <div class="card-footer bg-${colorBg}">
237 <h3 class="font-size-default">
238 <a href="${viewURL}" class="stretched-link text-${colorText}" title="${article.getTitle(locale)}">
239 ${article.getTitle(locale)}
240 </a>
241 </h3>
242 </div>
243 </div>
244 </div>
245 </div>
246 </#if>
247 </#list>
248 </div>
249 </#if>
250 </div>
251</div>
252
253<style>
254 .card-related h3 {
255 font-size: 1.7rem;
256 margin: 0;
257 font-weight: normal;
258 }
259 .card-related:hover .card {
260 background-color: #690013!important;
261 }
262 .card-related a {
263 transition: color ease 0.4s;
264 }
265 .card-related a:hover {
266 color: #fff!important;
267 text-decoration: none;
268 }
269 .card-related {
270 height: 100%;
271 }
272 .card-related .card {
273 margin: 0;
274 height: 100%;
275 transition: background-color ease 0.4s;
276 }
277 .card-related .background-image {
278 min-height: 257px;
279 width: 100%;
280 overflow: hidden;
281 background-size: cover;
282 background-position: center;
283 background-repeat: no-repeat;
284 mix-blend-mode: multiply;
285 opacity: 1;
286 transition: opacity ease 0.4s;
287 }
288 .card-related .card-footer {
289 padding: 1.25rem;
290 }
291 .card-related .bg-color-no {
292 mix-blend-mode: normal;
293 }
294 .card-related .font-size-smaller {
295 font-size: 1.6rem;
296 }
297 .card-related .font-size-bigger {
298 font-size: 1.9rem;
299 }
300 .views .number-views {
301 opacity: 1;
302 align-items: center;
303 margin-top: 1rem;
304 padding: 0;
305 background-color: initial !important;
306 color: #72848c;
307 font-size: 2rem;
308 }
309 .views .icon-eye-open {
310 opacity: 1;
311 align-items: center;
312 margin-top: 1rem;
313 padding: 0;
314 background-color: initial !important;
315 color: #9c001c;
316 font-size: 2rem;
317 }
318</style>
319
320<script>
321 $(function(){
322 var container = $(".blog-internal").closest('.asset-full-content');
323 container.addClass('noticia-custom');
324
325 var breadcrumb = $('ul.breadcrumb');
326 var brcCustom = $('.brc-noticias');
327 if(breadcrumb.length && brcCustom.length){
328 breadcrumb.find('li:first-child, li:last-child').addClass('item-brc');
329 breadcrumb.find('li:not(.item-brc)').remove();
330 breadcrumb.find('li:last-child').before(brcCustom.html());
331 }
332
333 $('.asset-full-content').css({"opacity":"1","visibility":"visible"});
334 $('html, body').animate({
335 scrollTop: $(".noticia-custom .asset-anchor").offset().top
336 }, 500);
337 setTimeout(function(){
338 $('.content-share .inline-item svg').attr('viewBox', '0 0 512 512')
339 }, 5000)
340 })
341</script>
342
343<script>
344 function executarJS() {
345 const existingSVG = document.querySelector('.lexicon-icon-twitter');
346
347 if (!existingSVG) return;
348
349 const newSVGCode = `
350 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 1227" fill="none">
351 <g clip-path="url(#a)">
352 <path d="M714.163 519.284 1160.89 0h-105.86L667.137 450.887 357.328 0H0l468.492 681.821L0 1226.37h105.866l409.625-476.152 327.181 476.152H1200L714.137 519.284h.026ZM569.165 687.828l-47.468-67.894-377.686-540.24h162.604l304.797 435.991 47.468 67.894 396.2 566.721H892.476L569.165 687.854v-.026Z" fill="#9c001c" class="fill-000000"></path>
353 </g>
354 <defs>
355 <clipPath id="a">
356 <path fill="#ffffff" d="M0 0h1200v1227H0z" class="fill-ffffff"></path>
357 </clipPath>
358 </defs>
359 </svg>
360 `;
361
362 const newSVG = new DOMParser().parseFromString(newSVGCode, 'image/svg+xml').querySelector('svg');
363 existingSVG.parentNode.replaceChild(newSVG, existingSVG);
364 }
365
366 window.addEventListener('load', executarJS);
367</script>
Barra de busca
Aplicações Aninhadas
Expediente - Coluna 1
EXPEDIENTE
EDIÇÃO:
Paula Losada (1.652 DRT/PE)
Daniel França (3.120 DRT/PE)
Elano Lorenzato (2.781 DRT/PE)
Sílvio Araújo (4.012 DRT/PE)
Expediente - Coluna 2
REPÓRTER CINEMATOGRÁFICO:
Alex Costa (5.182 -DRT/PE)
DESIGNER:
Java Araújo
WEB DESIGNER:
Elano Lorenzato (2.781 DRT/PE)
Expediente - Coluna 3
CONTATO:
Rua do Príncipe, 526,
Bloco R, sala 117,
Boa Vista, Recife-PE.
Cep: 50050-900.
Telefone: (81) 2119.4010.
E-mail: assecom@unicap.br
Título Notícias Acontece na Unicap
Acontece na Unicap
Publicador de Conteúdos e Mídias
Ibict prepara diretório nacional de avaliadores científicos no Brasil
Nova plataforma em acesso aberto quer facilitar a identificação de especialistas para revistas, agências de fomento, eventos e instituições de...
Nova plataforma em acesso aberto quer facilitar a identificação de especialistas para revistas, agências de...
Filmes para contemplação e ação - Evangelho da revolução
A Universidade Católica de Pernambuco convida para a exibição especial do filme: O Evangelho da revolução. Dir. François-Xavier Drouet (França e Brasil,...
A Universidade Católica de Pernambuco convida para a exibição especial do filme: O Evangelho da revolução. Dir....
PPGPSI - Simpósio - Violência contra as Mulheres e Feminicídio no Brasil
A Universidade Católica de Pernambuco promove, no próximo dia 27 de maio, no Auditório G2, simpósio sobre a violência contra as mulheres e o feminicídio no...
A Universidade Católica de Pernambuco promove, no próximo dia 27 de maio, no Auditório G2, simpósio sobre a violência...
Aula Pública de Humanismo e Cidadania
Data: 29/05/2026 Horário: 11h Local: Pavilhão Maker da Unicap.
Data: 29/05/2026 Horário: 11h Local: Pavilhão Maker da Unicap.





