Um erro ocorreu enquanto processava o modelo.
Denied access to method or field getParameter of class org.apache.catalina.core.ApplicationHttpRequest

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #if request.getParameter("acquired")?...  [in template "20099#20125#2604342" at line 27, column 1]
----
1<#setting locale="pt_BR"> 
2<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
3<#assign assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") /> 
4<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
5 
6<#assign currentArticle = journalArticleLocalService.getArticle(groupId, .vars['reserved-article-id'].data) /> 
7<#assign assetEntry = AssetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", currentArticle.getResourcePrimKey()) /> 
8<#assign eventCategories = getEventCategories(assetEntry.getCategories()) /> 
9 
10<#assign title = .vars['reserved-article-title'].data /> 
11<#assign currentUrl = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() /> 
12<#assign dateFormat = "yyyy-MM-dd"> 
13 
14<#assign webContentData = jsonFactoryUtil.createJSONObject(local.getData()) /> 
15 
16<#if webContentData?? && webContentData.classPK??> 
17  <#assign assetEntry = AssetEntryLocalService.getEntry(webContentData.className, getterUtil.getLong(webContentData.classPK)) /> 
18  <#assign assetRenderer = assetEntry.getAssetRenderer() /> 
19  <#assign journalArticle = assetRenderer.getAssetObject() /> 
20</#if> 
21 
22<#assign preferences = freeMarkerPortletPreferences.getPreferences({ 
23  "portletSetupPortletDecoratorId": "borderless", 
24  "portletSetupDisplayStyle": "ddmTemplate_39869" 
25}) /> 
26 
27<#if request.getParameter("acquired")?has_content> 
28  <#assign acquired = request.getParameter("acquired") /> 
29</#if> 
30 
31<#assign images_folder = themeDisplay.getPathThemeImages() /> 
32 
33<#assign classificationsImageMap = { 
34  "age18": images_folder + "/classifications/age18.svg", 
35  "age16": images_folder + "/classifications/age16.svg", 
36  "age14": images_folder + "/classifications/age14.svg", 
37  "age12": images_folder + "/classifications/age12.svg", 
38  "age10": images_folder + "/classifications/age10.svg", 
39  "everyone": images_folder + "/classifications/everyone.svg" 
40} /> 
41 
42<#assign classificationsTextMap = { 
43  "age18": "Não recomendado para menores de 18 anos", 
44  "age16": "Não recomendado para menores de 16 anos", 
45  "age14": "Não recomendado para menores de 14 anos", 
46  "age12": "Não recomendado para menores de 12 anos", 
47  "age10": "Não recomendado para menores de 10 anos", 
48  "everyone": "Classificação Livre" 
49} /> 
50 
51<#assign classification = eventClassification.getData() /> 
52 
53<div class="event"> 
54  <#if eventThumbnail.getData()?has_content && eventThumbnail.getData() != ""> 
55    <div class="card banner banner-destaque banner-full"> 
56      <div  
57        class="banner-img-wrapper lazy-image"  
58        style="background-image: url('${eventThumbnail.getData()}&imageThumbnail=2')"   
59
60        <img class="card-img" data-fileentryid="${eventThumbnail.getAttribute('fileEntryId')}" src="${eventThumbnail.getData()}" /> 
61        <div class="card-img-mask"></div> 
62      </div> 
63      <div class="card-img-overlay"> 
64        <div class="position-absolute w-100 h-100 d-flex align-items-end justify-content-center"> 
65          <div class="d-none d-lg-block c-mb-n20"> 
66            <@getActions /> 
67          </div> 
68          <div class="d-lg-none c-mb-n16"> 
69            <@getActions /> 
70          </div> 
71        </div> 
72        <div class="container h-100"> 
73          <div class="d-flex flex-column h-100"> 
74            <@liferay_portlet["runtime"] 
75              portletName="com_liferay_site_navigation_breadcrumb_web_portlet_SiteNavigationBreadcrumbPortlet" 
76              defaultPreferences="${preferences}" 
77            /> 
78          </div> 
79        </div> 
80      </div> 
81    </div> 
82  </#if> 
83 
84  <div class="container c-pt-32 c-pt-lg-5 py-5"> 
85    <div class="row gutters-24"> 
86      <div class="col-lg-8"> 
87        <div class="border-lg-bottom border-gray-ligther c-pb-0 c-pb-lg-32 c-mb-4 c-mb-lg-32"> 
88          <#if eventCategories?has_content> 
89            <div class="d-flex flex-nowrap align-items-center overflow-auto mb-3"> 
90              <#list eventCategories as category> 
91                <@getBadge category />                      
92              </#list> 
93              <#if showFreeTicketTag.getData()?has_content && showFreeTicketTag.getData()?matches("true")> 
94                <span  
95                  class="badge text-gray-dark mr-4"  
96                  style="background-color: #F7C625;" 
97
98                  <span class="badge-item badge-item-expand"> 
99                    Gratuito - Sujeito a Lotação 
100                  </span> 
101                </span> 
102              </#if> 
103            </div> 
104          </#if> 
105 
106          <h2 class="text-dark semi-bold mb-4">${title}</h2> 
107           
108          <ul class="list-unstyled"> 
109            <#if eventStartDate.getData()?has_content> 
110              <li class="d-flex align-items-center h5 text-gray-dark"> 
111                <i class="las la-clock fs-24 mr-2"></i> 
112                ${eventStartDate.getData()?datetime(dateFormat)?string["EEE, d MMM"]}  
113                <#if eventEndDate.getData()?has_content> 
114                  a ${eventEndDate.getData()?datetime(dateFormat)?string["EEE, d MMM"]} 
115                </#if> 
116                <#if eventStartHour.getData()?has_content> 
117                  • ${eventStartHour.getData()}h 
118                </#if> 
119                <#if eventEndHour.getData()?has_content> 
120                  - ${eventEndHour.getData()}h 
121                </#if> 
122              </li> 
123            </#if> 
124            <li class="d-flex align-items-center h5 text-gray-dark mt-3">  
125              <i class="las la-map-marker bold fs-24 mr-2"></i> 
126              <#if (webContentData?has_content && webContentData.classPK??)> 
127                ${webContentData.title} 
128              <#else> 
129                ${GrupoDeCampos75302627.eventPlace.getData()} 
130              </#if> 
131            </li> 
132          </ul> 
133        </div> 
134         
135        <div class="d-lg-none"> 
136          <@liferay_portlet["runtime"]  
137            instanceId="event_tickets_mobile" 
138            portletName="sescportaleventticketsweb"  
139          /> 
140        </div> 
141 
142        <#if acquired?has_content && acquired?lower_case?matches("true")> 
143          <div class="c-mb-4 c-mb-lg-32"> 
144            <h4 class="text-dark semi-bold mb-3">Os ingressos foram enviados para:</h4> 
145            <p class="text-gray-dark mb-3"> 
146              Para acessar seus ingressos vá e <a class="btn btn-link d-inline-block p-0" href="${themeDisplay.getPortalURL()}/meus-ingressos">Meu Sesc > Meus Ingressos</a> no nosso site. 
147            </p> 
148            <p class="text-gray-dark"> 
149              Ao acessar meus ingressos, você poderá adicioná-lo a sua carteira ou imprimi-los.. 
150            </p> 
151          </div> 
152        <#else> 
153          <div class="c-mb-4 c-mb-lg-32"> 
154            <h4 class="text-dark semi-bold mb-3">Descrição do evento</h4> 
155            <p class="text-gray-dark text-justify"> 
156              ${eventDescription.getData()?replace("<p>", "")?replace("</p>", "")} 
157            </p> 
158          </div> 
159 
160          <#if (webContentData?has_content && webContentData.classPK??)> 
161            <@liferay_journal["journal-article"] 
162              articleId=journalArticle.getArticleId() 
163              ddmTemplateKey=journalArticle.getDDMTemplateKey() 
164              groupId=assetEntry.getGroupId() 
165            /> 
166          <#else> 
167            <@getLocation /> 
168          </#if> 
169 
170          <div class="c-mb-4 c-mb-lg-32"> 
171            <h4 class="text-dark semi-bold mb-3">Mais informações</h4> 
172             
173            <ul class="list-unstyled"> 
174              <#if instagramLink.getData()?has_content> 
175                <li> 
176                  <a  
177                    class="btn btn-link justify-content-start py-2" 
178                    href="${instagramLink.getData()}" 
179                    target="_blank" 
180
181                    <i class="lab la-instagram fs-24 mr-2"></i> 
182                    <span class="semi-bold">Instagram</span> 
183                  </a> 
184                </li> 
185              </#if> 
186 
187              <#if twitter.getData()?has_content> 
188                <li> 
189                  <a  
190                    class="btn btn-link justify-content-start py-2" 
191                    href="${twitter.getData()}" 
192                    target="_blank" 
193
194                    <svg  
195                      width="24"  
196                      height="22"  
197                      viewBox="0 0 24 22"  
198                      fill="none"  
199                      xmlns="http://www.w3.org/2000/svg" 
200
201                      <g clip-path="url(#clip0_2573_23546)"> 
202                        <path  
203                          d="M18.9014 0H22.5813L14.5415 9.18937L24 21.6937H16.5938L10.7935 14.1097L4.15636 21.6937H0.473859L9.07331 11.8648L0 0H7.5937L12.837 6.93187L18.9014 0ZM17.6097 19.4909H19.649L6.48577 2.0872H4.29764L17.6097 19.4909Z"  
204                          fill="#208BDC" 
205                        /> 
206                      </g> 
207                      <defs> 
208                        <clipPath id="clip0_2573_23546"> 
209                          <rect width="24" height="21.6937" fill="white"/> 
210                        </clipPath> 
211                      </defs> 
212                    </svg> 
213 
214                    <span class="semi-bold ml-2">X (Twitter)</span> 
215                  </a> 
216                </li> 
217              </#if> 
218 
219              <#if spotify.getData()?has_content> 
220                <li> 
221                  <a  
222                    class="btn btn-link justify-content-start py-2" 
223                    href="${spotify.getData()}" 
224                    target="_blank" 
225
226                    <i class="lab la-spotify fs-24 mr-2"></i> 
227                    <span class="semi-bold">Spotify</span> 
228                  </a> 
229                </li> 
230              </#if> 
231 
232              <#if tiktok.getData()?has_content> 
233                <li> 
234                  <a  
235                    class="btn btn-link justify-content-start py-2" 
236                    href="${tiktok.getData()}" 
237                    target="_blank" 
238
239                    <svg  
240                      width="24"  
241                      height="24"  
242                      viewBox="0 0 24 24"  
243                      fill="none"  
244                      xmlns="http://www.w3.org/2000/svg" 
245
246                      <path  
247                        d="M19.5888 6.686C18.5902 6.47238 17.6858 5.94535 17.0077 5.18175C16.3295 4.41816 15.913 3.45791 15.8188 2.441V2H12.3738V15.672C12.3717 16.2773 12.18 16.8667 11.8256 17.3574C11.4712 17.848 10.972 18.2154 10.3981 18.4077C9.82418 18.6 9.20443 18.6077 8.62593 18.4297C8.04743 18.2516 7.53927 17.8968 7.17284 17.415C6.80072 16.9252 6.5943 16.3296 6.5835 15.7145C6.57271 15.0995 6.7581 14.497 7.11281 13.9944C7.46751 13.4918 7.97307 13.1153 8.55619 12.9194C9.1393 12.7235 9.76966 12.7185 10.3558 12.905V9.405C9.04869 9.2243 7.71775 9.45669 6.54919 10.0697C5.38062 10.6826 4.43288 11.6455 3.83852 12.8237C3.24416 14.0018 3.03291 15.3363 3.23432 16.6404C3.43573 17.9445 4.03973 19.1531 4.96184 20.097C5.8412 20.9968 6.96872 21.6141 8.20049 21.8701C9.43226 22.1262 10.7124 22.0094 11.8775 21.5346C13.0426 21.0599 14.0398 20.2487 14.7418 19.2047C15.4438 18.1606 15.8188 16.9311 15.8188 15.673V8.687C17.2111 9.68234 18.8804 10.216 20.5918 10.213V6.79C20.2548 6.79042 19.9186 6.75556 19.5888 6.686Z"  
248                        fill="#208BDC" 
249                      /> 
250                    </svg> 
251                     
252                    <span class="semi-bold ml-2">Tiktok</span> 
253                  </a> 
254                </li> 
255              </#if> 
256 
257              <#if facebook.getData()?has_content> 
258                <li> 
259                  <a  
260                    class="btn btn-link justify-content-start py-2" 
261                    href="${facebook.getData()}" 
262                    target="_blank" 
263
264                    <i class="lab la-facebook-f fs-24 mr-2"></i> 
265                    <span class="semi-bold">Facebook</span> 
266                  </a> 
267                </li> 
268              </#if> 
269 
270              <#if youtube.getData()?has_content> 
271                <li> 
272                  <a  
273                    class="btn btn-link justify-content-start py-2" 
274                    href="${youtube.getData()}" 
275                    target="_blank" 
276
277                    <i class="lab la-youtube fs-24 mr-2"></i> 
278                    <span class="semi-bold">Youtube</span> 
279                  </a> 
280                </li> 
281              </#if> 
282 
283              <#if site.getData()?has_content> 
284                <li> 
285                  <a  
286                    class="btn btn-link justify-content-start py-2" 
287                    href="${site.getData()}" 
288                    target="_blank" 
289
290                    <i class="las la-link fs-24 mr-2"></i> 
291                    <span class="semi-bold">Site</span> 
292                  </a> 
293                </li> 
294              </#if> 
295 
296              <#if WhatsApp.getData()?has_content> 
297                <li> 
298                  <a  
299                    class="btn btn-link justify-content-start py-2" 
300                    href="${WhatsApp.getData()}" 
301                    target="_blank" 
302
303                    <i class="lab la-whatsapp fs-24 mr-2"></i> 
304                    <span class="semi-bold">WhatsApp</span> 
305                  </a> 
306                </li> 
307              </#if> 
308 
309              <#if classification?has_content> 
310                <li class="d-flex align-items-center py-2"> 
311                  <img src="${classificationsImageMap[classification]}" style="width: 24px; height: 24px;" /> 
312                  <p class="text-gray-dark ml-2"> 
313                    ${classificationsTextMap[classification]} 
314                  </p> 
315                </li> 
316              </#if> 
317 
318              <li class="d-flex flex-column flex-md-row align-items-md-center py-2"> 
319                <#if phone.getData()?has_content> 
320                  <span class="d-flex align-items-center mr-md-4"> 
321                    <i class="las la-phone fs-24 bold mr-2"></i> 
322                    ${phone.getData()} 
323                  </span> 
324                </#if> 
325 
326                <#if email.getData()?has_content> 
327                  <span class="d-flex align-items-center mt-3 mt-md-0"> 
328                    <i class="las la-envelope fs-24 mr-2"></i> 
329                    ${email.getData()} 
330                  </span> 
331                </#if> 
332              </li> 
333            </ul> 
334          </div> 
335        </#if> 
336 
337        <h4 class="text-dark semi-bold mb-3">Política do evento</h4> 
338         
339        <#if (eventPolicyNotice.getData()?has_content) && (eventPolicyNotice.getData()?lower_case?matches("true"))> 
340          <p class="text-gray-dark semi-bold mb-3">Atenção!</p> 
341          <p class="text-gray-dark mb-3"> 
342            A retirada do ingresso para o evento é obrigatória, mas não garante a sua entrada no mesmo. Chegue com antecedência e garanta seu lugar. Pessoas sem ingresso não poderão entrar no evento. 
343          </p> 
344        </#if> 
345 
346        <#if (ticketCancellationPolicy.getData()?has_content) && (ticketCancellationPolicy.getData()?lower_case?matches("true"))> 
347          <p class="text-gray-dark semi-bold mb-3">Cancelamento de ingresso adquirido</p> 
348           
349          <p class="text-gray-dark"> 
350            Caso desista de ir ao evento, acesse  
351            <a  
352              class="btn btn-link d-inline-block p-0"  
353              href="${themeDisplay.getPortalURL()}/group/guest/meus-ingressos" 
354
355              Meus Ingressos 
356            </a>  
357            e clique em “cancelar pedido”. O SESC agradece a sua colaboração! 
358          </p> 
359        </#if> 
360 
361        <#if getterUtil.getBoolean(AddTermsPDF.getData())> 
362          <div class="anexos pt-5"> 
363            <h4 class="text-dark semi-bold mb-3">Documentação</h4> 
364 
365            <#if (termsDocumentFolderId.getData())??> 
366              <#assign DLFolderLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFolderLocalService") /> 
367              <#assign DLFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") /> 
368              <#assign classPK = getterUtil.getLong(termsDocumentFolderId.getData()) /> 
369              <#assign folder = DLFolderLocalService.getDLFolder(classPK) /> 
370              <#assign fileEntries = DLFileEntryLocalService.getFileEntries(folder.getGroupId(), folder.getFolderId())?filter(file -> !file.isInTrash()) /> 
371 
372              <#if fileEntries?has_content> 
373                <div class="list-group"> 
374                  <#list fileEntries as curFile> 
375                    <a  
376                      href="${getArticleDLEntryUrl(curFile)}"  
377                      class="list-group-item list-group-item-flex align-items-center bg-blue-50 p-4" 
378                      target="_blank" 
379
380                      <div class="autofit-col p-0"> 
381                        <div class="sticker fs-32 text-blue"> 
382                          <span class="inline-item"> 
383                            <#if curFile.getExtension() != "pdf"> 
384                              <i class="las la-file-alt"></i> 
385                            <#else> 
386                              <i class="las la-file-pdf"></i> 
387                            </#if> 
388                          </span> 
389                        </div> 
390                      </div> 
391 
392                      <div class="autofit-col px-3"> 
393                        <h4 class="text-dark semi-bold text-truncate m-0">${curFile.getTitle()}</h4> 
394                      </div> 
395                    </a> 
396                  </#list> 
397                </div> 
398              </#if> 
399            </#if> 
400 
401            <style> 
402              .list-group-item { 
403                border: 0; 
404                border-radius: 0.5rem !important; 
405                overflow: hidden; 
406
407 
408              .list-group-item:hover { 
409                text-decoration: none; 
410
411 
412              .list-group-item::before { 
413                content: ""; 
414                background: var(--blue-600); 
415                position: absolute; 
416                left: 0; 
417                width: 2px; 
418                top: 1.5rem; 
419                bottom: 1.5rem; 
420
421            </style> 
422          </div> 
423        </#if> 
424      </div> 
425 
426      <#if (ticketOption.getData())??> 
427        <div  
428          class="col-lg-4 d-none d-lg-block"  
429          data-ticket-type="${ticketOption.getData()}" 
430
431          <#if (ticketOption.getData() != "sympla")> 
432            <@liferay_portlet["runtime"]  
433              instanceId="event_tickets" 
434              portletName="sescportaleventticketsweb"  
435            /> 
436          <#else> 
437            <div class="card card-shadow-elevated rounded-lg overflow-hidden"> 
438              <div class="card-header bg-blue-900 p-3"> 
439                <h4 class="text-white semi-bold">Ingresso</h4> 
440              </div> 
441              <div class="card-body bg-white p-3"> 
442                <a  
443                  class="btn btn-primary btn-block" 
444                  href="${symplaLink.getData()}"  
445                  target="_blank"  
446
447                  Adquirir ingresso 
448                </a> 
449              </div> 
450            </div> 
451          </#if> 
452        </div> 
453      </#if> 
454    </div> 
455  </div> 
456</div> 
457 
458<#macro getLocation> 
459  <div class="c-mb-4 c-mb-lg-32"> 
460    <h4 class="text-dark semi-bold mb-3">Como chegar?</h4> 
461    <div class="row gutters-24"> 
462      <div class="col-md-4 mb-3 mb-lg-0"> 
463        <span class="d-block text-dark semi-bold mb-3"> 
464          ${GrupoDeCampos75302627.eventPlace.getData()} 
465        </span> 
466        ${GrupoDeCampos75302627.addressLine.getData()} ${GrupoDeCampos75302627.addressComplement.getData()} - ${GrupoDeCampos75302627.addressLocality.getData()}, ${GrupoDeCampos75302627.CampoDeTexto83310334.getData()} - ${GrupoDeCampos75302627.addressRegion.getData()}, ${GrupoDeCampos75302627.postalCode.getData()} 
467      </div>   
468      <#if GrupoDeCampos75302627.eventMap.getData()?has_content> 
469        <div class="col-md-8"> 
470          ${GrupoDeCampos75302627.eventMap.getData()?replace('width="600"', 'width="100%"')} 
471        </div> 
472      </#if> 
473    </div> 
474  </div> 
475</#macro> 
476 
477<#macro getActions> 
478  <div class="d-flex align-items-center"> 
479    <a  
480      class="btn btn-action lfr-portal-tooltip mr-4" 
481      href="${eventThumbnail.getData()}?imageThumbnail=1" 
482      target="_blank" 
483
484      <i class="las la-expand-arrows-alt"></i> 
485    </a> 
486 
487    <button  
488      class="btn btn-action lfr-portal-tooltip mr-4" 
489      title="Favoritar" 
490      onClick="toggleFavorite(this)" 
491
492      <i class="lar la-heart"></i> 
493    </button> 
494 
495    <button class="btn btn-share lfr-portal-tooltip"> 
496      <div class="share"> 
497        <ul class="nav flex-nowrap align-items-center"> 
498          <li class="nav-item"> 
499            <a 
500              class="nav-link lfr-portal-tooltip" 
501              href="https://www.facebook.com/sharer.php?u=${currentUrl}" 
502              title="Facebook" 
503              target="_blank" 
504
505              <i class="lab la-facebook-f"></i> 
506            </a> 
507          </li> 
508 
509          <li class="nav-item"> 
510            <a  
511              class="nav-link lfr-portal-tooltip"  
512              href="https://www.instagram.com/?url=${currentUrl}" 
513              title="Instagram" 
514              target="_blank" 
515
516              <i class="lab la-instagram"></i> 
517            </a> 
518          </li> 
519 
520          <li class="nav-item"> 
521            <a  
522              class="nav-link lfr-portal-tooltip"  
523              href="https://www.linkedin.com/shareArticle?mini=true&url=${currentUrl}&title=${title}" 
524              title="LinkedIn" 
525              target="_blank" 
526
527              <i class="lab la-linkedin-in"></i> 
528            </a> 
529          </li> 
530 
531          <li class="nav-item"> 
532            <a  
533              class="nav-link lfr-portal-tooltip"  
534              href="http://twitter.com/intent/tweet?text=${title}%0AVeja%20mais%20em:&url=${currentUrl}" 
535              title="Twitter" 
536              target="_blank" 
537
538              <i class="lab la-twitter"></i> 
539            </a> 
540          </li> 
541 
542          <li class="nav-item"> 
543            <span  
544              class="btn nav-link lfr-portal-tooltip"  
545              title="Copiar link" 
546              onClick="copyToClipboard('${currentUrl}')" 
547
548              <i class="las la-link"></i> 
549            </span> 
550          </li> 
551        </ul> 
552      </div> 
553      <i class="las la-share"></i> 
554    </button> 
555  </div> 
556 
557  <script> 
558    function toggleFavorite(favorite) { 
559      const favoriteIcon = favorite.querySelector('i'); 
560       
561      if (favorite.classList.contains('active')) { 
562        favorite.classList.remove('active'); 
563        favoriteIcon.classList.remove('las'); 
564        favoriteIcon.classList.add('lar'); 
565        favorite.setAttribute('title', 'Favoritar'); 
566      } else { 
567        favorite.classList.add('active'); 
568        favoriteIcon.classList.remove('lar'); 
569        favoriteIcon.classList.add('las'); 
570        favorite.setAttribute('title', 'Desfavoritar'); 
571
572
573 
574    function copyToClipboard(text) { 
575      navigator.clipboard.writeText(text); 
576      Liferay.Util.openAlert({ 
577        title: "Link copiado com sucesso!", 
578        placement: "top-center", 
579      }); 
580
581  </script> 
582</#macro> 
583 
584<#macro getBadge category>  
585  <#assign categoryId = category.getCategoryId() /> 
586  <#assign categoryColorProperty = getCategoryProperty(categoryId, 'color') /> 
587  <#assign categoryColor = "#" + categoryColorProperty?has_content?then(categoryColorProperty.getValue(), "208bdc") /> 
588 
589  <span  
590    class="badge text-white mr-4"  
591    style="background-color: ${categoryColor}" 
592
593    <span class="badge-item badge-item-expand"> 
594      ${category.getName()} 
595    </span> 
596  </span> 
597</#macro> 
598 
599<#function getEventCategories categories> 
600  <#assign categoryList = [] /> 
601   
602  <#if categories?has_content> 
603    <#list categories as category> 
604      <#assign vocabulary = assetVocabularyLocalService.getVocabulary(category.vocabularyId) /> 
605 
606      <#if vocabulary.getName()?lower_case == "eventos"> 
607        <#assign categoryList = categoryList + [category] /> 
608      <#elseif vocabulary.getName()?lower_case == "unidades"> 
609        <#assign categoryList = categoryList + [category] /> 
610      </#if> 
611    </#list> 
612  </#if> 
613 
614  <#return categoryList /> 
615</#function> 
616 
617<#function getCategoryProperty categoryId key> 
618  <#local assetCategoryPropertyLocalService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") /> 
619  <#local assetCategoryProperties = assetCategoryPropertyLocalService.getCategoryProperties(categoryId) /> 
620  <#local assetCategoryProperty = "" /> 
621 
622  <#if assetCategoryProperties?has_content> 
623    <#list assetCategoryProperties as curAssetCategoryProperty> 
624      <#if curAssetCategoryProperty.getKey()?lower_case == key?lower_case> 
625        <#local assetCategoryProperty = curAssetCategoryProperty> 
626      </#if> 
627    </#list> 
628  </#if>  
629 
630  <#return assetCategoryProperty> 
631</#function> 
632 
633<#function getArticleDLEntryUrl xmlValue> 
634  <#local docUrl = "" /> 
635 
636  <#if xmlValue?has_content> 
637    <#local jsonObject = xmlValue /> 
638    <#local entryUuid = jsonObject.uuid /> 
639    <#assign entryGroupId = getterUtil.getLong(jsonObject.groupId) /> 
640    <#local dlFileEntry = DLFileEntryLocalService.getDLFileEntryByUuidAndGroupId(entryUuid, entryGroupId) /> 
641    <#local assetEntry = AssetEntryLocalService.getEntry("com.liferay.document.library.kernel.model.DLFileEntry", dlFileEntry.fileEntryId) /> 
642    <#if assetEntry.assetRenderer?has_content && assetEntry.assetRenderer??> 
643      <#local assetRenderer = assetEntry.assetRenderer /> 
644      <#local docUrl = assetRenderer.getURLDownload(themeDisplay) /> 
645    <#else> 
646      <#local docUrl = "#" /> 
647    </#if> 
648  </#if> 
649 
650  <#return docUrl?remove_ending("&download=true") /> 
651</#function>