An error occurred while processing the template.
The following has evaluated to null or missing: ==> request.getCookies() [in template "35001#35028#2420792" at line 11, column 19] ---- 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: #local cookies = request.getCookies() [in template "35001#35028#2420792" in function "isAlertHidden" at line 11, column 1] ----
1<#compress>
2<#assign
3utilname = "com.liferay.portal.kernel.servlet.taglib.ui.BreadcrumbUtil"
4type_any = staticUtil[utilname].ENTRY_TYPE_ANY
5breadcrumbEntries = staticUtil[utilname].getBreadcrumbEntries(request, [type_any])
6>
7
8<#if serviceLocator?? && entries?has_content>
9
10<#function isAlertHidden alertId>
11<#local cookies = request.getCookies()>
12 <#list cookies as cookie>
13 <#if cookie.getValue()?matches(alertId)>
14 <#return true>
15 </#if>
16 </#list>
17 <#return false>
18</#function>
19
20<#function normalAlert entry>
21 <#if (alertType?contains('value 1') || alertType?contains('value 2'))><#return true></#if>
22 <#return false>
23</#function>
24
25<script>
26function hideAlert(alertId) {
27 var now = new Date();
28 var time = now.getTime();
29 var expireTime = time + 1000*36000;
30 now.setTime(expireTime);
31 document.cookie = 'alertHidden=' + alertId + ';expires='+now.toUTCString()+';path=/';
32}
33</script>
34
35<style>
36
37.portlet:first-of-type{
38margin-bottom:0px!important;
39}
40
41.alert-body {
42 max-width: 1228px;
43 width: 100%;
44 padding: 0 1rem 0 1rem;
45 margin-top: 0.8rem;
46}
47
48.alert-body-wide {
49 background-color:#fc0;
50 width: 100vw;
51 position: relative;
52 left: calc(-51vw + 50.5%);
53 margin-top: -1.1rem;
54}
55
56
57.lexicon-icon-exclamation-full {
58 height: 1.3em;
59 width: 1.3em;
60}
61
62.alert {
63 margin-bottom: -1.5rem;
64}
65
66.alert h2 {
67 margin-top: 0rem;
68 margin-bottom: 0rem;
69 color:#FFFFFF;
70 font-size: 1.25rem;
71
72}
73
74.alert-primary {
75 background-color: #FFFFFF;
76 border-color: rgb(0 0 0 / 0%);
77 }
78
79.alert-top {
80 width: 100%;
81}
82
83.red-background {
84 background-color:#D4351C;
85}
86
87.bg-black {
88 background-color:#000000;
89}
90
91 .alert-primary .close {
92 color: #000000;
93 font-size: 2rem;
94 float:right;
95 position: inherit;
96 margin-top: 0.5rem;
97}
98 .alert-text-primary {
99 color: #000000!important;
100 border: 6px #000000 solid!important;
101 }
102
103 .alert-text-red {
104 color: #000000!important;
105 border: 6px #D4351C solid!important;
106 }
107
108 .alert-text-yellow {
109 color: #000000!important;
110 border: 6px #D4351C solid!important;
111 }
112
113 </style>
114
115
116 <#assign journalArticleRetrievalService = serviceLocator.findService("com.placecube.journal.service.JournalArticleRetrievalService") />
117
118 <#assign journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleService") />
119
120 <#assign getterUtil = staticUtil["com.liferay.portal.kernel.util.GetterUtil"] />
121
122
123 <#assign AssetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")>
124
125 <#assign AssetCategoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryService")>
126
127
128 <#list entries as curEntry>
129
130 <#assign journalArticle = journalArticleService.getLatestArticle(curEntry.getClassPK()) />
131
132 <#assign alertBody = journalArticleRetrievalService.getFieldValue(journalArticle,"alertBody",locale) />
133
134 <#assign body = alertBody.get() />
135
136 <#assign alertId = curEntry.entryId?c>
137
138 <#assign alertDismiss = journalArticleRetrievalService.getFieldValue(journalArticle,"select_dismiss",locale) />
139
140 <#assign alertType = journalArticleRetrievalService.getFieldValue(journalArticle,"select_type",locale) />
141
142 <#if alertType?contains('value 3')>
143 <div class="alert alert-primary <#if alertDismiss?contains('value 1')>alert-dismissible</#if> p-0" role="alert">
144 <div class="alert-body-wide d-flex justify-content-center">
145 <div class="alert-body">
146 <div class="alert-top alert-warning px-3">
147 <#if alertDismiss?contains('value 1')>
148 <button type="button" id ="alertClose" onclick="hideAlert(${alertId})" class="close text-dark mt-2" data-dismiss="alert" aria-label="Close">
149 <span aria-hidden="true">×</span>
150 </button>
151 </#if>
152 <h2 class="text-dark">
153 <svg class="lexicon-icon lexicon-icon-exclamation-full" viewBox="0 0 512 512">
154 <path class="lexicon-icon-outline" d="M256,0C114.6,0,0,114.6,0,256s114.6,256,256,256s256-114.6,256-256S397.4,0,256,0z M256,384c-17.7,0-32-14.3-32-32
155 s14.3-32,32-32s32,14.3,32,32S273.7,384,256,384z M272,288h-32l-16-160h64L272,288z"></path>
156 </svg> Important
157 </h2>
158 </div>
159 <div class="alert-text alert-warning px-3">
160 <h3 class="mt-2">${curEntry.getTitle(locale)}</h3>
161 <p>${body}</p>
162 </div>
163 </div>
164 </div>
165 </#if>
166
167 <#list curEntry.categories as category>
168
169 <#assign cat = category.getName()?lower_case />
170 <#assign cat2 = cat?replace("and ", "")/>
171 <#assign cat3 = cat2?replace(",", "")/>
172 <#list breadcrumbEntries as breadcrumb>
173
174 <#assign breadcrumbLevel = breadcrumb.getTitle()?lower_case/>
175 <#assign breadcrumbLevelLower = breadcrumbLevel?replace(",", "")/>
176 <#assign breadcrumbLevelLower2 = breadcrumbLevelLower?replace("and ", "")/>
177 <#assign breadcrumbLevelLower3 = breadcrumbLevelLower2?replace(" information", "")/>
178
179 <#--<p>Breadcrumb level: : ${breadcrumbLevelLower3}</p>-->
180
181 <#if !isAlertHidden(alertId)>
182
183 <#--<p>Alert category : ${cat3}</p>-->
184
185 <#if breadcrumbLevelLower3?matches(cat3) || !cat3?has_content>
186
187
188 <#if normalAlert??>
189 <div class="alert alert-primary d-flex justify-content-center <#if alertDismiss?contains('value 1')>alert-dismissible</#if> p-0 mb-2" role="alert">
190 <div class="alert-body">
191 <div class="alert-top
192 <#if alertType?contains('value 1')>red-background</#if>
193 <#if alertType?contains('value 2')>bg-black</#if> px-3">
194 <#if alertDismiss?contains('value 1')>
195 <button type="button" id ="alertClose" onclick="hideAlert(${alertId})" class="close text-light" data-dismiss="alert" aria-label="Close">
196 <span aria-hidden="true">×</span>
197 </button>
198 </#if>
199 <h2>
200 <svg class="lexicon-icon lexicon-icon-exclamation-full" viewBox="0 0 512 512">
201 <path class="lexicon-icon-outline" d="M256,0C114.6,0,0,114.6,0,256s114.6,256,256,256s256-114.6,256-256S397.4,0,256,0z M256,384c-17.7,0-32-14.3-32-32
202 s14.3-32,32-32s32,14.3,32,32S273.7,384,256,384z M272,288h-32l-16-160h64L272,288z"></path>
203 </svg>
204 <#if alertType?contains('value 1')>Warning</#if>
205 <#if alertType?contains('value 2')>Important</#if>
206 </h2>
207 </div>
208 <div class="
209 <#if alertType?contains('value 1')>alert-text-red</#if>
210 <#if alertType?contains('value 2')>alert-text-primary</#if> px-3">
211 <h3 class="mt-2">${curEntry.getTitle(locale)}</h3>
212 <p>${body}</p>
213 </div>
214 </div>
215 </div>
216 </#if>
217 </#if>
218 </#if>
219 </#list>
220 </#list>
221 </#list>
222 </#if>
223</#compress>
A friendly, local business waste service you can trust.
Dorset Waste Services offer a competitive and reliable range of waste and recycling services to more than 4000 businesses across Dorset which can be tailored to meet your specific requirements.
Do you know your legal obligations as a business with regards to waste?
Check your business waste collection dates