About us
Since it began in 1982, Spectrum has grown to become a leading provider of specialist care for autistic adults and children.
Why Spectrum?
Since it began in 1982, Spectrum has grown to become a leading provider of specialist care for autistic adults and children.
At Spectrum we have a strong track record of working with children and adults who have complex and challenging needs. We currently have 19 adult residential homes and one children’s residential home which vary in size and location, all within the beautiful county of Cornwall. We offer person-centred support which encourages individuals to be active members of their community, leading fulfilled lives and playing valued social roles. Spectrum is a registered Charity and a not for profit organisation regulated by the CQC and Ofsted.
In the early 1970s, a group of parents with children diagnosed with autism were very concerned to find that no appropriate education facilities existed for them in Devon and Cornwall.
This small group of parents, supported by enthusiastic friends, formed a charity, the Devon and Cornwall Society for Autistic Children.
They worked hard to raise funds and purchased a property at Gulworthy, near Tavistock, which they converted into a boarding school.
At the end of the 1970s, they turned their attention to the problem of providing care for their children when they reached adulthood. The name of the charity was changed to the Devon and Cornwall Autistic Society and in 1982, after much hard work fundraising, they purchased an old rectory at St Erme, near Truro.
After initial refurbishment, the first care home for adolescents and adults was established. In order to run this service it was decided to form a subsidiary organisation, the Devon and Cornwall Autistic Community Trust, which later became a charity in its own right and which is now known as Spectrum.
For further information visit our website:
The following has evaluated to null or missing: ==> propsUtil.get(ucmLocaleKey) [in template "64056#64102#365043" at line 5, 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: #assign locale = propsUtil.get(ucmLoc... [in template "64056#64102#365043" at line 5, column 1] ----
1<div id="outer-footer" class="updatedFooter" style="padding-left: 0px; width: 1640px;">
2 <div id="inner-footer-expert" class="">
3
4<#assign ucmLocaleKey = themeDisplay.getLocale()+"."+siteType+"."+"ucmLocale">
5<#assign locale = propsUtil.get(ucmLocaleKey)/>
6<#assign apiUrl = propsUtil.get("WEB72_API_DOMAIN")/>
7
8<#assign lr74CutoverCountryCode = propsUtil.get("LR74_CUTOVER_COUNTRY_CODE")/>
9<#assign hays_logo = propsUtil.get("HAYS_LOGO")/>
10
11<#if lr74CutoverCountryCode??>
12<#list lr74CutoverCountryCode?split(",") as countryCode>
13 <#if countryCode = themeDisplay.getLocale()?keep_after_last("_") >
14 <#assign apiUrl = propsUtil.get("API_DOMAIN")/>
15 </#if>
16</#list>
17</#if>
18
19<#attempt>
20
21<#assign PortalCacheHelperUtil = staticUtil["com.liferay.portal.kernel.cache.PortalCacheHelperUtil"]>
22<#assign PortalCacheManagerNames = staticUtil["com.liferay.portal.kernel.cache.PortalCacheManagerNames"]>
23<#assign cacheName = "EXPERT_FOOTER_TEMPLATE_CACHE">
24<#assign cacheKey = "footerResponse_" + locale>
25<#assign cache = PortalCacheHelperUtil.getPortalCache(PortalCacheManagerNames.SINGLE_VM,cacheName)>
26<#assign response = (cache.get(cacheKey))?default("")>
27
28
29<#if response?has_content>
30<#assign responseObj = jsonFactoryUtil.createJSONObject(response)>
31<#else>
32<#assign response = httpUtil.URLtoString(apiUrl+"/o/HaysContentStructure/getcontentstructure/expertFooter/"+locale)>
33<#assign responseObj = jsonFactoryUtil.createJSONObject(response)>
34 ${cache.put(cacheKey,response,86400)}
35</#if>
36
37<#if responseObj?? && responseObj.results?? && responseObj.results?has_content>
38<#assign getResponseResultArray = responseObj.getJSONArray("results")>
39<div id="footer-bottom">
40 <#if getResponseResultArray.length() gt 0>
41 <#assign siteUrl = getResponseResultArray.get(0).siteUrl>
42
43 <#if getResponseResultArray.get(0).getJSONArray("GroupHeading")?? && getResponseResultArray.get(0).getJSONArray("GroupHeading").length()?? && getResponseResultArray.get(0).getJSONArray("GroupHeading").length() gt 1>
44
45 <#assign groupHeadingArr = getResponseResultArray.get(0).getJSONArray("GroupHeading")>
46 <div class="row single-col gpHeading">
47 <div class="col col-12">
48 <nav>
49 <ul>
50 <#list 0 ..< groupHeadingArr.length()?number as i>
51 <#if groupHeadingArr.get(i).Link?starts_with("/")>
52 <#assign linkUrl = siteUrl + groupHeadingArr.get(i).Link>
53 <li>
54 <a href="${linkUrl}" target="">${groupHeadingArr.get(i).GroupHeading}</a>
55 </li>
56 <#else>
57 <li>
58 <a href="${groupHeadingArr.get(i).Link}" target="">${groupHeadingArr.get(i).GroupHeading}</a>
59 </li>
60 </#if>
61 </#list>
62 </ul>
63 </nav>
64 </div>
65 </div>
66 <#elseif getResponseResultArray.get(0).getJSONArray("FooterLink")??>
67 <#assign FooterLinkArr = getResponseResultArray.get(0).getJSONArray("FooterLink")>
68 <div class="row single-col gpHeading">
69 <div class="col col-12">
70 <nav>
71 <ul>
72 <#list 0 ..< FooterLinkArr.length()?number as i>
73 <#assign linkUrl = FooterLinkArr.get(i).FooterLink?replace("href=\"/", "href=\""+siteUrl+"/" ) >
74 <li>
75 ${linkUrl}
76 </li>
77 </#list>
78 </ul>
79 </nav>
80 </div>
81 </div>
82
83 </#if>
84
85
86 <div class="footer-added">
87 <img src="${hays_logo}"></img>
88 <div class="copyright">
89 <p>
90 <p class="last">${getResponseResultArray.get(0).CopyrightHTML}</p>
91
92 </p>
93 </div>
94 </div>
95 </#if>
96</div>
97</#if>
98<#recover>
99
100</#attempt>
101
102
103 </div>
104</div>
105<script>
106window.addEventListener('DOMContentLoaded', function () {
107 var consent = document.getElementById("teconsent");
108
109 // Find the <ul> inside the nav of gpHeading
110 var ulElement = document.querySelector(".gpHeading nav ul");
111
112 if (consent && ulElement) {
113 var liWrapper = document.createElement("li");
114 liWrapper.appendChild(consent);
115 ulElement.appendChild(liWrapper);
116 } else {
117 console.log("Consent element or target UL not found.");
118 }
119});
120
121$(document).ready(function(){
122 if((Liferay.ThemeDisplay.getLanguageId() != "en_GB") && (location.href.indexOf("/web/") != -1)) {
123 console.log("link update required on the site");
124 $('a').each(function(index) {
125 var layoutRelativeUrl = Liferay.ThemeDisplay.getLayoutRelativeURL();
126 var getSiteUrl = layoutRelativeUrl.substring(0, layoutRelativeUrl.lastIndexOf("/"));
127 var linkVal = $(this).attr("href");
128 if((typeof linkVal !== "undefined") && linkVal.indexOf("https") == -1 && linkVal.indexOf("/")!= -1 && (linkVal.indexOf("/") === linkVal.lastIndexOf("/"))){
129 var updatedLink = getSiteUrl + linkVal ;
130 $(this).attr("href", updatedLink)
131 console.log("link updated - " + updatedLink);
132 }
133 });
134 }
135});
136</script>