Serviços In Company
Serviços In Company
Um erro ocorreu enquanto processava o modelo.
The following has evaluated to null or missing:
==> articleXmlCurso.selectSingleNode("dynamic-element[@field-reference='Text58284801']") [in template "298778#298819#null" at line 47, column 55]
----
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: tituloCurso = articleXmlCurso.selectS... [in template "298778#298819#null" at line 47, column 41]
----
1<#assign
2 JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")
3 JSONFactoryUtil = staticUtil["com.liferay.portal.kernel.json.JSONFactoryUtil"]
4 PortletFileRepositoryUtil = staticUtil["com.liferay.portal.kernel.portletfilerepository.PortletFileRepositoryUtil"]
5/>
6
7<#if (DDMStructure_RichText64234904.getData())??>
8 <#if (DDMStructure_RichText64234904.getData()?replace("\t", "")?replace("\t", "") != "")>
9 <div style="width: 100%; display: flex; justify-content: center; margin-top: 32px;">
10 <div style="max-width: 1016px; margin: 24px 0 40px; font-size: 14px">
11 ${DDMStructure_RichText64234904.getData()}
12 </div>
13 </div>
14</#if>
15</#if>
16
17
18
19<#assign
20 url = themeDisplay.getPortalURL() + "/w/"
21 urlTitle = displayPageURL.getData()?remove_beginning(url)
22 >
23<#assign journalArticle = JournalArticleLocalService.fetchArticleByUrlTitle(themeDisplay.getLayout().getGroupId(),urlTitle) >
24<#assign articleXml = journalArticle.getDocument().getRootElement()
25 tituloCursoTag = articleXml.selectSingleNode("dynamic-element[@field-reference='Text94505766']").getStringValue()!"Graduação"
26 nodesCursosExemplos = articleXml.selectNodes("dynamic-element[@field-reference='JournalArticle55857161']")
27 />
28
29
30 <#if nodesCursosExemplos?has_content>
31 <div class="section-cursos-cards">
32 <#list nodesCursosExemplos as curso>
33
34 <#assign cursoPK = curso.getStringValue()?keep_after('"classPK":"')?keep_before('",') />
35 <#if cursoPK != "">
36
37 <#assign cursoPK = cursoPK?number />
38
39
40 <#if JournalArticleLocalService.fetchLatestArticle(cursoPK)?? >
41
42
43 <#assign journalArticleCurso = JournalArticleLocalService.fetchLatestArticle(cursoPK)
44
45 linkCurso = themeDisplay.getPortalURL() + "/w/" + journalArticleCurso.getUrlTitle()
46 articleXmlCurso = journalArticleCurso.getDocument().getRootElement()
47 tituloCurso = articleXmlCurso.selectSingleNode("dynamic-element[@field-reference='Text58284801']").getStringValue()!""
48
49 imagemCurso = articleXmlCurso.selectSingleNode("dynamic-element[@field-reference='Image67823320']").getStringValue()!""
50
51 />
52
53
54 <#assign
55 jsonObject = JSONFactoryUtil.createJSONObject(imagemCurso)
56 fileEntryId = jsonObject.getLong("fileEntryId")
57
58 />
59
60 <#if fileEntryId != 0>
61 <#assign
62 fileEntry = PortletFileRepositoryUtil.getPortletFileEntry(fileEntryId)
63 fileEntryURL = PortletFileRepositoryUtil.getDownloadPortletFileEntryURL(themeDisplay, fileEntry,"")
64 fileEntryURL = fileEntryURL?replace("\n\t\t", "")
65 fileEntryURL = fileEntryURL?replace("\n\t", "")
66
67 />
68
69 </#if>
70
71 <a class="cursos-card" href="${linkCurso}">
72 <div class="cursos-card-img">
73 <img src="${fileEntryURL}" />
74 <span>${tituloCursoTag}</span>
75 </div>
76 <div style="height: 100%;padding:24px;">
77 <h5 class="nome">${tituloCurso}</h5>
78 </div>
79 </a>
80
81
82
83 </#if>
84 </#if>
85
86
87 </#list>
88 </div>
89
90
91
92 </#if>
93
94
95
96
97<style>
98.section-cursos-cards {
99 display: flex;
100 flex-wrap: wrap;
101 gap: 24px;
102 place-content: center;
103 margin-top: 40px;
104 margin-left: auto;
105 margin-right: auto;
106 margin-bottom: 64px;
107 max-width: 1224px;
108 z-index: 2;
109 position: sticky;
110
111}
112
113.section-cursos-cards .cursos-card {
114 width: 392px;
115 height: 352px;
116 border-radius: 9px 9px 8px 8px;
117 background: var(--secundaria-faculdade, #662483);
118 display: flex;
119 flex-direction: column;
120 text-decoration: none;
121 transition: 250ms all ease-in-out;
122}
123
124.section-cursos-cards .cursos-card:hover {
125 box-shadow: 0px 8px 16px 0px #07467d66;
126}
127
128.section-cursos-cards .cursos-card .cursos-card-img {
129 height: 201px;
130 position: relative;
131}
132
133.section-cursos-cards .cursos-card .cursos-card-img img {
134 height: 201px;
135 width: 100%;
136 border-radius: 8px 8px 0px 0px;
137}
138
139.section-cursos-cards .cursos-card .cursos-card-img span {
140 position: absolute;
141 bottom: 0;
142 left: 0;
143
144 display: inline-flex;
145 padding: 12px;
146 justify-content: center;
147 align-items: center;
148 gap: 15px;
149 border-radius: 0px 8px 0px 0px;
150 background: var(--secundaria-faculdade, #662483);
151
152 color: var(--neutro-branco, #fff);
153 text-align: center;
154
155 /* P CURTO */
156 font-family: "PT Sans";
157 font-size: 18px;
158 font-style: normal;
159 font-weight: 400;
160 line-height: 150%; /* 27px */
161}
162
163.section-cursos-cards .cursos-card .nome {
164 display: flex;
165
166 flex-direction: column;
167 justify-content: center;
168 color: var(--neutro-branco, #fff);
169 text-align: center;
170
171 /* H5 */
172 font-family: "PT Sans";
173 font-size: 22px;
174 font-style: normal;
175 font-weight: 700;
176 line-height: 150%;
177 height: 100%;
178 margin: 0px;
179}
180
181 @media (max-width: 500px){
182 .section-cursos-cards .cursos-card {
183 width: 100%;
184 margin-left: 12px;
185 margin-right: 12px;
186 }
187
188 .section-cursos-cards .slick-next {
189 right: 0;
190}
191
192
193}
194
195</style>
196
197 <script>
198
199 function slickify(){
200 $('.section-cursos-cards').slick({
201 slidesToShow: 1.2,
202 slidesToScroll: 1,
203 infinite: false,
204 });
205 }
206
207 $(window).resize(function(){
208 var $windowWidth = $(document).width();
209 if ($windowWidth < 500) {
210 slickify();
211 }else{
212 $('.section-cursos-cards').slick("unslick");
213 }
214 });
215
216 $(document).ready(function(){
217 var $windowWidth = $(document).width();
218 if ($windowWidth < 500) {
219 slickify();
220 }else{
221 $('.section-cursos-cards').slick("unslick");
222 }
223});
224 </script>
Oferecemos cursos técnicos semipresenciais empresas dos setores têxtil e vestuário
Um erro ocorreu enquanto processava o modelo.
Failed to "?eval" string with this error:
---begin-message---
Syntax error in ?eval-ed string in line 1, column 2:
Encountered ")", but was expecting one of:
<STRING_LITERAL>
<RAW_STRING>
"false"
"true"
<INTEGER>
<DECIMAL>
"."
"+"
"-"
"!"
"["
"("
"{"
<ID>
---end-message---
The failing expression:
==> faq.getStringValue()?eval [in template "298778#298819#null" at line 31, column 92]
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign journalArticleFaq = JournalAr... [in template "298778#298819#null" at line 31, column 17]
----
1<#assign
2 JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")
3 JSONFactoryUtil = staticUtil["com.liferay.portal.kernel.json.JSONFactoryUtil"]
4 PortletFileRepositoryUtil = staticUtil["com.liferay.portal.kernel.portletfilerepository.PortletFileRepositoryUtil"]
5/>
6
7<#assign
8 url = themeDisplay.getPortalURL() + "/w/"
9 urlTitle = displayPageURL.getData()?remove_beginning(url)
10 >
11<#assign journalArticle = JournalArticleLocalService.fetchArticleByUrlTitle(themeDisplay.getLayout().getGroupId(),urlTitle) >
12<#assign articleXml = journalArticle.getDocument().getRootElement()
13
14 nodesDeFAQ = articleXml.selectNodes("dynamic-element[@field-reference='JournalArticle55136882']")
15 >
16
17 <#if nodesDeFAQ?has_content>
18
19
20 <div class="perguntas-freq-container">
21
22 <h4 class="perguntas-freq-titulo">
23 Perguntas frequentes
24 </h4>
25
26 <div class="lista-perguntas">
27 <img class="pontos-circulo" src="${themeDisplay.getPortalURL()}/documents/298817/0/pontos-circulo.png/98222e3e-43fe-654e-597a-7b91bc91699e" />
28 <#list nodesDeFAQ as faq>
29
30
31 <#assign journalArticleFaq = JournalArticleLocalService.fetchLatestArticle(faq.getStringValue()?eval['classPK']?number).getDocument().getRootElement() >
32
33 <#assign uniqueID = nodesDeFAQ?seq_index_of(faq) />
34 <#assign
35 pergunta = journalArticleFaq.selectSingleNode("dynamic-element[@field-reference='Text74542950']").getStringValue()
36 resposta = journalArticleFaq.selectSingleNode("dynamic-element[@field-reference='RichText90095339']").getStringValue()
37 />
38
39 <div class="itemFAQ">
40 <div class="comprimentoMaximo">
41 <div class="pergunta" data-toggle="collapse" href="#collapse${uniqueID}" role="button" aria-expanded="false" aria-controls="collapse${uniqueID}">
42 <a id="botaoCollapse${uniqueID}" class="botao_expandir" >
43 <span class="botao_mais"><i class="fa-solid fa-plus"></i></span>
44 </a>
45 <div class="container-pergunta">
46 <p>${pergunta}</p>
47 </div>
48 </div>
49 <div class="tipoCursoResposta collapse" id="collapse${uniqueID}">
50 <div>
51 <p>${resposta}</p>
52 </div>
53 </div>
54 </div>
55</div>
56
57 </#list>
58 </div>
59
60 </div>
61
62 </#if>
63
64 <style>
65
66 .perguntas-freq-container {
67
68 margin-top: 80px;
69 }
70
71 .perguntas-freq-container .perguntas-freq-titulo {
72 color: var(--neutra-preto, #081B2F);
73text-align: center;
74font-family: "PT Sans";
75font-size: 45px;
76font-style: normal;
77font-weight: 400;
78line-height: 150%; /* 67.5px */
79 margin-bottom: 24px;
80 }
81
82 .lista-perguntas {
83 position: relative;
84 }
85
86.itemFAQ {
87 display: flex;
88 align-items: center;
89 flex-direction: column;
90
91}
92
93 .pontos-circulo {
94 position: absolute;
95 right: 28px;
96 top: -101px;
97 }
98
99.comprimentoMaximo{
100 max-width: 1200px;
101 width: 100%;
102 z-index: 2;
103
104}
105
106.comprimentoMaximo>div{
107 width: 100%;
108}
109
110
111
112.pergunta{
113display: flex;
114gap: 51px;
115padding-bottom: 24px;
116cursor: pointer;
117 align-items: center;
118 transition: 500ms;
119}
120
121.pergunta>div{
122display: flex;
123 align-items: center;
124 font-size: 20px;
125font-weight: 700;
126}
127
128 .tipoCursoResposta{
129margin-bottom: 24px;
130}
131
132.tipoCursoResposta>div{
133padding: 24px;
134background-color: #FCFCFD;
135
136}
137
138.botao_expandir{
139font-size: 15px;
140 background-color: var(--secundaria-faculdade);
141 min-width: 40px;
142height: 40px;
143 display: flex;
144 justify-content: center;
145 align-items: center;
146 border-radius: 50%;
147 color: #fcfcfd;
148}
149
150.botao_expandir:hover {
151 color: #fcfcfd;
152
153 }
154
155.container-pergunta {
156 height: 100%;
157 padding: 24px;
158 background-color: #FCFCFD;
159 width: 100%;
160}
161
162 .botao_mais i{
163 transition: 500ms;
164 }
165
166 @media(max-width: 992px){
167.itemFAQ {
168 margin-left: 15px;
169 margin-right: 15px;
170}
171
172 .pontos-circulo {
173 display: none;
174 }
175
176}
177
178</style>
179<script>
180
181 $('.tipoCursoResposta').on('show.bs.collapse', function () {
182 console.log(event.target);
183 event.target.closest(".pergunta").querySelector(".botao_mais i").style = "rotate: 45deg";
184})
185
186 $('.tipoCursoResposta').on('hide.bs.collapse', function () {
187 event.target.closest(".pergunta").querySelector(".botao_mais i").style = "rotate: 0deg";
188})
189
190</script>
Vamos transformar as suas ideias em realidade!
Não perca a oportunidade de dar o primeiro passo para impulsionar o sucesso de seus projetos. Entre em contato agora mesmo e inicie a sua jornada rumo à soluções concretas e eficazes!