Estude no IFSC
Cursos
Conheça nossos cursos de qualificação, técnicos, graduação, especialização e mestrado.
CursosVagas abertas
Acompanhe os cursos que estão com inscrições abertas e faça já a sua inscrição.
Vagas abertasResultados
Confira os selecionados para os nossos cursos e as orientações para a matrícula.
ResultadosPerguntas Frequentes
Veja as respostas para as principais dúvidas sobre nossos processos seletivos.
Perguntas Frequentes
Um erro ocorreu enquanto processava o modelo.
The following has evaluated to null or missing: ==> xPathSelector.selectSingleNode(rootElement) [in template "20154#20194#26151" at line 252, column 53] ---- 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 conteudoDoArtigo = xPathSelec... [in template "20154#20194#26151" at line 252, column 25] ----
1<!-- ADT PUBLICADOR DE CONTEÚDOS E MÍDIAS -->
2<#assign vocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")>
3<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
4<#assign groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService")>
5<#assign companyLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.CompanyLocalService")>
6
7<#assign group = groupLocalService.getGroup(groupId)>
8<#assign noticia_destaque = true />
9<#assign dateDayFormat = "dd" />
10<#assign dateMonthFormat = "MMM" />
11<#assign dateYearFormat = "yyyy" />
12<#assign targetFriendlyURL = "noticias-por-categoria" />
13<#assign targetFriendlyURLVideo = "videos-por-categoria" />
14<#assign targetViewUrl = "conteudo-aberto" />
15<#assign targetViewUrlVideo = "video-aberto" />
16
17<!-- targetPortletID dos Campus -->
18<#assign targetPortletIDCampusGaspar = "iktSPT1y33wn" />
19<#assign targetPortletIDVideoCampusGaspar = "vaqEGmvO4XIp" />
20
21<#assign targetPortletIDCampusArarangua = "0LDjLof5rS7r" />
22
23<#-- --------------------------------------------------------------->
24<!-- targetPortletID Aberto -->
25<#assign targetPortletID = "1UWKZAkiOauK" />
26<#assign targetPortletIDVideo = "yPDbuoUoEZAI" />
27
28<#assign friendlyURL = group.getFriendlyURL()>
29<#assign isWebURL = (friendlyURL != "/guest") />
30<#assign currentURL = themeDisplay.getURLCurrent() />
31<#assign isHomePortal = (currentURL == "/web/guest" || currentURL == "/" || currentURL?contains("/inicio")) />
32<#assign isHomeNoticias = (currentURL == "/noticias" || currentURL?contains("/noticias")) />
33<#assign isHomeVideos = (currentURL == "/videos" || currentURL?contains("/videos")) />
34<#assign isIfscTV = (currentURL == "/ifsctv" || currentURL?contains("/ifsctv")) />
35<#assign campusName = friendlyURL />
36
37<#function getViewURL assetRenderer>
38 <#local assetGroupFriendlyURL = groupLocalService.getGroup(assetRenderer.getGroupId()).getFriendlyURL() />
39 <#return "/web${assetGroupFriendlyURL}/w/${assetRenderer.getUrlTitle()}" />
40</#function>
41
42<#assign company = companyLocalService.getCompany(companyId) />
43<#assign globalGroupId = company.getGroup().getGroupId() />
44<#assign destaqueOuMancheteVocabulary = vocabularyService.fetchGroupVocabulary(globalGroupId, "Destaque ou Manchete") />
45
46<#-- Define the list of category names to exclude -->
47<#assign excludedCategoryNames = ["Notícias", "Noticia", "Vídeo", "Todos os sites", "Blog", "Portal do Servidor"] />
48
49<#list entries as entry>
50 <#assign entry = entry />
51 <#assign assetRenderer = entry.getAssetRenderer() />
52 <#assign entryTitle = htmlUtil.escape(assetRenderer.getTitle(locale)) />
53 <#assign categories = entry.getCategories()>
54 <#assign article = journalArticleLocalService.getLatestArticle(entry.getClassPK())/>
55 <#assign document = saxReaderUtil.read(article.getContent())/>
56 <#assign rootElement = document.getRootElement() />
57 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='artigoFieldSet']") />
58 <#assign conteudoDoArtigo = xPathSelector.selectSingleNode(rootElement).getStringValue() />
59 <#assign videoDoArtigo = xPathSelector.selectSingleNode(rootElement).selectSingleNode("dynamic-element[@name='id_do_video']").getStringValue() />
60 <#assign hasVideoArtigo = (videoDoArtigo?length > 10) />
61
62 <#assign filteredCategories = [] />
63 <#list categories as category>
64 <#if (category.getVocabularyId() != destaqueOuMancheteVocabulary.getVocabularyId()) && !(excludedCategoryNames?seq_contains(category.name))>
65 <#assign filteredCategories = filteredCategories + [category] />
66 </#if>
67 </#list>
68
69 <#assign nome_chapeu = "" />
70
71 <#if xPathSelector.selectSingleNode(rootElement).selectSingleNode("dynamic-element[@name='nome_chapeu']")?? >
72 <#assign nome_chapeu = xPathSelector.selectSingleNode(rootElement).selectSingleNode("dynamic-element[@name='nome_chapeu']").getStringValue() />
73 </#if>
74
75 <#assign urlThumb = entry.getAssetRenderer().getThumbnailPath(renderRequest)!""/>
76 <#assign hasThumb = urlThumb?has_content>
77
78 <#-- Use UTF-8 charset for URL escaping from now: -->
79 <#setting url_escaping_charset="UTF-8">
80
81 <#assign viewURL = getViewURL(assetRenderer) />
82
83 <#switch campusName>
84 <#case "/campus-gaspar">
85 <#assign viewURLVideo = "/web${friendlyURL}/${targetViewUrlVideo}/-/asset_publisher/${targetPortletIDVideoCampusGaspar}/content/id/${entry.getEntryId()}" />
86 <#break>
87 <#default>
88 <#assign viewURLVideo = "/${targetViewUrlVideo}/-/asset_publisher/${targetPortletIDVideo}/content/id/${entry.getEntryId()}" />
89 </#switch>
90
91 <#assign hasZero = false >
92 <#list filteredCategories as category>
93 <#assign categoryIndex = category_index />
94 <#assign isZero = (categoryIndex == 0)>
95 <#if (isZero) >
96 <#assign hasZero = true >
97 <#break>
98 </#if>
99 </#list>
100
101 <#assign hasFirst = false >
102 <#list filteredCategories as category>
103 <#assign categoryIndex = category_index />
104 <#assign isFirst = (categoryIndex == 1)>
105 <#if (isFirst) >
106 <#assign hasFirst = true >
107 <#break>
108 </#if>
109 </#list>
110
111 <#assign hasSecond = false >
112 <#list categories as category>
113 <#assign categoryIndex = category_index />
114 <#assign hasSecond = (categoryIndex == 2)>
115 <#if (hasSecond) >
116 <#assign hasSecond = true >
117 <#break>
118 </#if>
119 </#list>
120
121 <#assign hasThird = false >
122 <#list filteredCategories as category>
123 <#assign categoryIndex = category_index />
124 <#assign hasThird = (categoryIndex == 3)>
125 <#if (hasThird) >
126 <#assign hasThird = true >
127 <#break>
128 </#if>
129 </#list>
130
131 <#assign chapeuCategory = ""/>
132 <#assign hasCategory = false>
133
134
135 <#list filteredCategories as category>
136 <#assign hasCategory = true>
137 <#assign hasChapeu = (nome_chapeu?trim?upper_case == category.name?upper_case) >
138 <#if hasChapeu>
139 <#assign chapeuCategory = category/>
140 <#break>
141 </#if>
142 <#assign categoryIndex = category_index />
143 <#if !hasChapeu>
144 <#if hasZero >
145 <#if categoryIndex == 0 >
146 <#assign chapeuCategory = category/>
147 </#if>
148 </#if>
149 <#if hasFirst == true && hasZero == false>
150 <#if categoryIndex == 1 >
151 <#assign chapeuCategory = category/>
152 </#if>
153 </#if>
154 <#if hasSecond == true && hasFirst == false && hasZero == false>
155 <#if categoryIndex == 2 >
156 <#assign chapeuCategory = category/>
157 </#if>
158 </#if>
159 <#if hasThird == true && hasSecond == false && hasFirst == false && hasZero == false>
160 <#if categoryIndex == 3 >
161 <#assign chapeuCategory = category/>
162 </#if>
163 </#if>
164 <#if hasThird == false && hasSecond == false && hasFirst == false && hasZero == false>
165 <#assign chapeuCategory = category/>
166 </#if>
167 </#if>
168 </#list>
169
170 <#if hasCategory >
171 <#assign chapeuCategoryId = chapeuCategory.getCategoryId() />
172 <#assign instancePortletId = "?p_p_id=122_INSTANCE_pDpvw9aOr6wg&p_p_lifecycle=0&p_p_state=normal&p_p_mode=view&p_p_col_id=column-2&p_r_p_resetCur=true&p_r_p_categoryId=${chapeuCategoryId}" />
173 <#assign chapeuCategoryNameUpperCase = chapeuCategory.name?upper_case />
174 </#if>
175
176 <#assign chapeuNameUpperCase = nome_chapeu?upper_case />
177 <div id="entryIdManchete" style="display: none">${entry.getEntryId()}</div>
178 <#if (isHomePortal) >
179 <div class="news-home">
180
181 <h2>Notícias</h2>
182
183 <div class="row-fluid">
184 <#list entries as entry>
185 <#assign entry = entry />
186 <#assign assetRenderer = entry.getAssetRenderer() />
187 <#assign entryTitle = htmlUtil.escape(assetRenderer.getTitle(locale)) />
188 <#assign categories = entry.getCategories()>
189 <#assign hasManchete = false >
190
191 <#list categories as category>
192 <#if category.name == "Manchete Portal">
193 <#assign hasManchete = true >
194 </#if>
195 </#list>
196
197 <#assign urlThumb = entry.getAssetRenderer().getThumbnailPath(renderRequest)!""/>
198 <#assign hasThumb = urlThumb?has_content>
199
200 <#if (hasManchete) >
201
202 <div class="span12">
203 <h6>
204 <#list categories as category>
205 <#if category.name != "Destaque Portal" && category.name != "Notícias" && category.getName() != "Manchete Portal" && category.getName() != "Noticia" && category.getName() != "Destaque Todos os sites" && category.getName() != "Manchete Todos os sites" && category.getName() != "Destaque Portal do Servidor" && category.getName() != "Manchete Portal do Servidor">
206 <#assign hasCategory = true>
207 <#if (videoDoArtigo?length > 10)>
208 <#assign targetFriendlyURL = targetFriendlyURLVideo />
209 <#break>
210 </#if>
211 </#if>
212 </#list>
213
214 <#if (isWebURL) >
215 <#if (hasCategory) >
216 <a class="tag" href="/web${friendlyURL}/${targetFriendlyURL}${instancePortletId}">${chapeuCategoryNameUpperCase}</a>
217 </#if>
218 <#if (!hasCategory) >
219 <a class="tag">${chapeuNameUpperCase}</a>
220 </#if>
221 </#if>
222 <#if (!isWebURL) >
223 <#if (hasCategory) >
224 <a class="tag" href="/${targetFriendlyURL}${instancePortletId}">${chapeuCategoryNameUpperCase}</a>
225 </#if>
226 <#if (!hasCategory) >
227 <a class="tag">${chapeuNameUpperCase}</a>
228 </#if>
229 </#if>
230
231 <span>
232 <p>${dateUtil.getDate(entry.getPublishDate(), dateDayFormat, locale)} ${dateUtil.getDate(entry.getPublishDate(), dateMonthFormat, locale)?lower_case} ${dateUtil.getDate(entry.getPublishDate(), dateYearFormat, locale)}</p>
233 </span>
234 </h6>
235
236 <#if hasThumb >
237 <div class="img span12" style="background-image:url(${urlThumb});"></div>
238 </#if>
239
240 <div class="lfr-meta-actions asset-actions"><@getEditIcon /></div>
241 <a href="${viewURL}">
242 <h5>${entryTitle}</h5>
243 <#assign hasSummary = (entry.getSummary(locale)?has_content) />
244 <#if (hasSummary) >
245 <p><@excerpt abstract="${entry.getSummary(locale)}"/></p>
246 </#if>
247 <#if (!hasSummary) >
248 <#assign article = journalArticleLocalService.getLatestArticle(entry.getClassPK())/>
249 <#assign document = saxReaderUtil.read(article.getContent())/>
250 <#assign rootElement = document.getRootElement() />
251 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='artigo']") />
252 <#assign conteudoDoArtigo = xPathSelector.selectSingleNode(rootElement).getStringValue() />
253 <#assign content = xPathSelector.selectSingleNode(rootElement).selectSingleNode("dynamic-element[@name='conteudo_do_artigo']").getStringValue() />
254
255 <p><@excerpt abstract="${content?replace('<[^>]*>', '', 'r')}"/></p>
256 </#if>
257 </a>
258 </div>
259 </#if>
260 </#list>
261 </div>
262 </div>
263 </#if>
264
265 <#if (isHomeNoticias || isIfscTV || isHomeVideos) >
266 <div class="featured-theme--news">
267 <div class="lfr-meta-actions asset-actions"><@getEditIcon /></div>
268 <h6>
269 <#list categories as category>
270 <#if category.name != "Destaque Portal" && category.name != "Notícias" && category.getName() != "Manchete Portal" && category.getName() != "Vídeo" && category.getName() != "Noticia" && category.getName() != "Destaque Todos os sites" && category.getName() != "Manchete Todos os sites" && category.getName() != "Destaque Portal do Servidor" && category.getName() != "Manchete Portal do Servidor">
271 <#assign hasCategory = true>
272 <#if (hasVideoArtigo) >
273 <#assign targetFriendlyURL = targetFriendlyURLVideo />
274 <#break>
275 </#if>
276 </#if>
277 </#list>
278
279 <#if (isWebURL) >
280 <#if (hasCategory) >
281 <a class="tag" href="/web${friendlyURL}/${targetFriendlyURL}${instancePortletId}">${chapeuCategoryNameUpperCase}</a>
282 </#if>
283 <#if (!hasCategory) >
284 <a class="tag">${chapeuNameUpperCase}</a>
285 </#if>
286 </#if>
287 <#if (!isWebURL) >
288 <#if (hasCategory) >
289 <a class="tag" href="/${targetFriendlyURL}${instancePortletId}">${chapeuCategoryNameUpperCase}</a>
290 </#if>
291 <#if (!hasCategory) >
292 <a class="tag">${chapeuNameUpperCase}</a>
293 </#if>
294 </#if>
295
296 <span>
297 <p>${dateUtil.getDate(entry.getPublishDate(), dateDayFormat, locale)} ${dateUtil.getDate(entry.getPublishDate(), dateMonthFormat, locale)?lower_case} ${dateUtil.getDate(entry.getPublishDate(), dateYearFormat, locale)}</p>
298 </span>
299 </h6>
300 <#if (hasVideoArtigo) >
301 <a href="${viewURLVideo}">
302 <#else>
303 <a href="${viewURL}">
304 </#if>
305 <h2 class="anchor__iten" data-anchor="meu-conteudo1">${entryTitle}</h2>
306
307 <#if (hasVideoArtigo) >
308 <iframe width="100%" height="315" src="https://www.youtube.com/embed/${videoDoArtigo?trim}" frameborder="0" allowfullscreen></iframe>
309 <#else>
310 <#if hasThumb >
311 <img src="${urlThumb}"/>
312 <#else >
313 <#assign hasSummary = entry.getSummary(locale)?has_content />
314 <#if (hasSummary) >
315 <h4><@excerptFocus abstractFocus="${entry.getSummary(locale)}"/></h4>
316 <#else>
317 <#assign content = xPathSelector.selectSingleNode(rootElement).selectSingleNode("dynamic-element[@name='conteudo_do_artigo']").getStringValue() />
318 <h4><@excerptFocus abstractFocus="${content?replace('<[^>]*>', '', 'r')}"/></h4>
319 </#if>
320 </#if>
321 </#if>
322 </a>
323 </div>
324 </#if>
325</#list>
326
327<#macro getEditIcon>
328 <#if assetRenderer.hasEditPermission(themeDisplay.getPermissionChecker())>
329 <#assign redirectURL = renderResponse.createRenderURL() />
330
331 ${redirectURL.setParameter("struts_action", "/asset_publisher/add_asset_redirect")}
332 ${redirectURL.setWindowState("pop_up")}
333
334 <#assign editPortletURL = assetRenderer.getURLEdit(renderRequest, renderResponse, windowStateFactory.getWindowState("pop_up"), redirectURL)!"" />
335
336 <#if validator.isNotNull(editPortletURL)>
337 <#assign title = languageUtil.format(locale, "edit-x", entryTitle) />
338 <@liferay_ui["icon"]
339 image="edit"
340 message=title
341 url="javascript:Liferay.Util.openWindow({dialog: {width: 960}, id:'" + renderResponse.getNamespace() + "editAsset', title: '" + title + "', uri:'" + htmlUtil.escapeURL(editPortletURL.toString()) + "'});"
342 />
343 </#if>
344 </#if>
345</#macro>
346
347<#macro excerpt abstract>
348 <#assign max=200>
349 <#assign min=21>
350 <#if abstract?length < max>
351 ${abstract}
352 <#else>
353 <#assign words=htmlUtil.escape(abstract)?word_list>
354 <#if words?size gt min>
355 <#list words[0..20] as word>${word} </#list>...
356 <#else>
357 ${abstract}
358 </#if>
359 </#if>
360</#macro>
361
362<#macro excerptFocus abstractFocus>
363 <#assign max = 40>
364 <#if abstractFocus?word_list?size < max>
365 ${abstractFocus}
366 <#else>
367 <#assign words = htmlUtil.escape(abstractFocus)?word_list>
368 <#list words[0..max] as word>${word} </#list>...
369 </#if>
370</#macro>
371
372<#macro getTitle>
373 <#assign max=60>
374 <#if entryTitle?length < max>
375 ${entryTitle}
376 <#else>
377 <#assign words=entryTitle?word_list>
378 <#list words[0..5] as word>${word} </#list>...
379 </#if>
380</#macro>
381
382<#macro getEditIcon>
383 <#if assetRenderer.hasEditPermission(themeDisplay.getPermissionChecker())>
384 <#assign redirectURL = renderResponse.createRenderURL() />
385 ${redirectURL.setParameter("struts_action", "/asset_publisher/add_asset_redirect")}
386 ${redirectURL.setWindowState("pop_up")}
387 <#assign editPortletURL = assetRenderer.getURLEdit(renderRequest, renderResponse, windowStateFactory.getWindowState("pop_up"), redirectURL)!"" />
388 <#if validator.isNotNull(editPortletURL)>
389 <#assign title = languageUtil.format(locale, "edit-x", entryTitle) />
390 <@liferay_ui["icon"]
391 image="edit"
392 message=title
393 url="javascript:Liferay.Util.openWindow({dialog: {width: 960}, id:'" + renderResponse.getNamespace() + "editAsset', title: '" + title + "', uri:'" + htmlUtil.escapeURL(editPortletURL.toString()) + "'});"
394 />
395 </#if>
396 </#if>
397</#macro>