Brink’s anuncia nuevos avances de sostenibilidad en sus flotas de transporte - Brink's Chile
Andrea Millares
Modified 1 Month ago.
An error occurred while processing the template.
The following has evaluated to null or missing:
==> shareEmailpopupUrl [in template "20101#20128#BLOG_POST" at line 156, column 25]
----
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: ${shareEmailpopupUrl} [in template "20101#20128#BLOG_POST" at line 156, column 23]
----
1<#if notTranslated?? && getterUtil.getBoolean(notTranslated.getData())>
2 <div class="page-width">
3 <div class="alert alert-danger">
4 <p>${languageUtil.get(locale, 'insight-is-not-available-in-the-current-language')}</p>
5 </div>
6 </div>
7<#else>
8 <div class="component-white test">
9 <#assign background = "" />
10 <#if eventImage.getData()?? && eventImage.getData() != "">
11 <#assign background = "background: url(" + eventImage.getData() + ") no-repeat center center;-webkit-background-size: cover;-moz-background-size: cover;-o-background-size: cover;background-size: cover;" />
12 </#if>
13 <div class="image-background fixed-height image-background-large" style="${background}">
14 <div class="background-overlay gradient"></div>
15 <div class="page-width">
16 <div class="content contact-bg-text">
17 <@liferay_portlet["runtime"]
18 defaultPreferences=""
19 portletProviderAction=portletProviderAction.VIEW
20 instanceId="new"
21 portletName="com_liferay_site_navigation_breadcrumb_web_portlet_SiteNavigationBreadcrumbPortlet"
22 />
23
24 <h2>${title.getData()}</h2>
25 <#if (shortDescription.getData())??>
26 <p>${shortDescription.getData()}</p>
27 </#if>
28 <p class="author">${author.getData()}</p>
29 <p class="date">
30 <#assign filterable_date_Data = getterUtil.getString(filterable_date.getData())>
31 <#if validator.isNotNull(filterable_date_Data)>
32 <#assign filterable_date_DateObj = dateUtil.parseDate("yyyy-MM-dd", filterable_date_Data, locale)>
33 ${dateUtil.getDate(filterable_date_DateObj, "dd MMM yyyy", locale)}
34 </#if>
35 </p>
36 </div>
37 </div>
38 </div>
39
40 <#-- Share Buttons Section -->
41 <#assign articleName = title.getData() />
42 <#assign articleURL = .vars['reserved-article-url-title'].data?string />
43 <#assign imageURL = smallImage.getData() />
44 <#assign shareType = "share-this-blog-post" />
45
46 <#assign layoutRelativeURL = portalUtil.getLayoutRelativeURL(layout, themeDisplay) />
47 <#assign shareEmailpopupUrl = portletURLFactory.create(request, "com_brinks_share_email_ShareEmailPortlet", layout.getPlid(), "RENDER_PHASE") />
48 ${shareEmailpopupUrl.setPortletMode("view")}
49 ${shareEmailpopupUrl.setWindowState("pop_up")}
50 ${shareEmailpopupUrl.setParameter("articleName", articleName)}
51 ${shareEmailpopupUrl.setParameter("articleURL", articleURL)}
52 ${shareEmailpopupUrl.setParameter("imageURL", imageURL)}
53 ${shareEmailpopupUrl.setParameter("shareType", shareType)}
54<#setting url_escaping_charset="UTF-8">
55<#assign articlefriendlyURL = themeDisplay.getURLCurrent()!"" />
56<#assign encodedUrl = articlefriendlyURL?url>
57<#assign encodedTitle = articleName?url>
58
59<div id="brinksShare">
60 <div class="brinksShareButtons brinksShareDropdown">
61 <button class="brinksBtn brinksBtnShare brinksDropdownToggle" id="brinksShareToggle">
62 <i class="fas fa-share-alt"></i> Share
63 </button>
64 <div class="brinksShareMenu" id="brinksShareMenu">
65 <a href="https://www.linkedin.com/shareArticle?mini=true&url=${encodedUrl}&title=${encodedTitle}"
66 target="_blank"
67 class="brinksBtn brinksBtnLinkedin">
68 <i class="fab fa-linkedin"></i>
69 </a>
70 <a href="https://www.facebook.com/sharer/sharer.php?u=${encodedUrl}"
71 target="_blank"
72 class="brinksBtn brinksBtnFacebook">
73 <i class="fab fa-facebook"></i>
74 </a>
75 <a href="https://twitter.com/intent/tweet?url=${encodedUrl}&text=${encodedTitle}"
76 target="_blank"
77 class="brinksBtn brinksBtnTwitter">
78 <i class="fab fa-x-twitter"></i>
79 </a>
80 </div>
81 </div>
82</div>
83 <div class="asset-content-text">
84 ${textBlock1.getData()}
85
86 <#if articleQuote1.getData()?has_content>
87 <p class="pull-quote">${articleQuote1.getData()}</p>
88 </#if>
89
90 ${textBlock2.getData()}
91
92 <#if supportingImage.getData()?has_content>
93 <img class="supporting-image" alt="${supportingImage.getAttribute('alt')}" data-fileentryid="${supportingImage.getAttribute('fileEntryId')}" src="${supportingImage.getData()}" />
94 </#if>
95
96 ${textBlock3.getData()}
97
98 <#if articleQuote2.getData()?has_content>
99 <p class="pull-quote">${articleQuote2.getData()}</p>
100 </#if>
101
102 ${textBlock4.getData()}
103 </div>
104 </div>
105</#if>
106
107<#-- Related Insights -->
108<#assign reservedArticleId = .vars['reserved-article-id'].data />
109<#assign insightId = brinks_freemarker_util.getRelatedInsightArticle(themeDisplay.getCompanyId(), themeDisplay.getScopeGroupId(), reservedArticleId, ["CASE_STUDY", "EVENT", "BLOG_POST"], ["0"], "Insight Topics", true, locale)!"" />
110<#assign insightId2 = [] />
111<#if (validator.isNull(insightId) || insightId?size < 3)>
112 <#assign insightId2 = brinks_freemarker_util.getRelatedInsightArticle(themeDisplay.getCompanyId(), themeDisplay.getScopeGroupId(), reservedArticleId, ["CASE_STUDY", "EVENT", "BLOG_POST"], insightId, "Insight Topics", false, locale)!"" />
113</#if>
114<#assign insightIds = insightId + insightId2 />
115
116<#if insightIds?has_content && (insightIds?size >= 0) >
117 <div class="component-gray title-section">
118 <div class="page-width">
119 <h2 class="spacing-large text-center">
120 <@liferay.language key="more-from-our-insights-library" />
121 </h2>
122 <div class="row equal-height onerow">
123 <#list insightIds as relatedInsight>
124 <#if (relatedInsight?index <= 2)>
125 <div class="col-lg-4 col-md-12">
126 <@liferay_journal["journal-article"]
127 articleId="${relatedInsight}"
128 ddmTemplateKey="INSIGHT_ABSTRACT"
129 groupId=themeDisplay.getScopeGroupId() />
130 </div>
131 </#if>
132 </#list>
133 </div>
134 <div class="button-holder spacing-small text-center">
135 <a class="btn-brinks btn-white btn-link" href="${portalUtil.getLayoutSetFriendlyURL(themeDisplay.getLayoutSet(), themeDisplay)}/insights">
136 <@liferay.language key="view-all-insights" />
137 </a>
138 </div>
139 </div>
140 </div>
141</#if>
142
143<#-- Email Share Script -->
144<script>
145 AUI().use('liferay-util-window', function (A) {
146 A.one('#share-email-popup').on('click', function (event) {
147 Liferay.Util.openWindow({
148 dialog: {
149 centered: true,
150 modal: true,
151 destroyOnHide: true,
152 cache: false
153 },
154 id: 'shareEmailModal',
155 title: '',
156 uri: '${shareEmailpopupUrl}'
157 });
158 });
159 });
160document.addEventListener("DOMContentLoaded", function () {
161 const toggle = document.getElementById("brinksShareToggle");
162 const dropdown = document.querySelector(".brinksShareDropdown");
163 const menu = document.getElementById("brinksShareMenu");
164
165 // Toggle dropdown on share button click
166 toggle.addEventListener("click", function (e) {
167 e.stopPropagation();
168 dropdown.classList.toggle("active");
169 });
170
171 // Close dropdown when clicking outside
172 document.addEventListener("click", function (e) {
173 if (!dropdown.contains(e.target)) {
174 dropdown.classList.remove("active");
175 }
176 });
177});
178</script>
179
180<#-- Font Awesome (if needed) -->
181<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css">
182
183<style>
184.image-background-large {
185 height: 850px;
186}
187</style>