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">&times;</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">&times;</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> 

Local offer transport support for children and young people with special educational needs or disabilities (SEND)

If you have a special educational need or disability you may need help with getting around. Having access to suitable travel arrangements can make a big difference. 

Sign up to receive our SEND e-newsletter

Get useful information and updates about services and activities for families with children with SEND in Dorset.