Welcome - Arena - academycollection.org
An error occurred while processing the template.
1<#assign cookieListJS = []>
2
3<#list [
4 {"field": mainConsentTitle.getData()?trim, "key": "cookieconsent.title"},
5 {"field": mainConsentDescription.getData()?trim, "key": "cookieconsent.description"},
6 {"field": usageDescription.getData()?trim, "key": "cookieconsent.usageDescription"},
7 {"field": necessaryCookiesDescription.getData()?trim, "key": "cookieconsent.necessaryCookiesDescription"},
8 {"field": analyticsCookiesDescription.getData()?trim, "key": "cookieconsent.analyticsCookiesDescription"},
9 {"field": thirdPartyCookiesDescription.getData()?trim, "key": "cookieconsent.3rdPartyCookiesDescription"},
10 {"field": moreInfoDescription.getData()?trim, "key": "cookieconsent.contactUsDescription"}
11] as entry>
12 <#if entry.field?has_content>
13 <#assign textCookie = {
14 "type": "text",
15 "key": entry.key,
16 "content": entry.field
17 } />
18 <#assign cookieListJS = cookieListJS + [textCookie]>
19 </#if>
20</#list>
21
22<#assign necessaryCookieList = [] />
23<#assign analyticsCookieList = [] />
24<#assign thirdPartyCookieList = [] />
25
26<#-- Necessary Cookies fields inputs -->
27<#if (necessaryCookiesListMenu.getData())??>
28 <#list necessaryCookiesListMenu.getData()?split(",") as cur_newNecessaryCookieName>
29 <#assign trimmedName = cur_newNecessaryCookieName?trim>
30 <#assign cookie = {
31 "name": trimmedName,
32 "domain": 'cookieconsent.samedomain',
33 "description": "cookieconsent."+ trimmedName?lower_case?replace('-', '')?replace('_', ''),
34 "type": "necessary"
35 } />
36 <#assign necessaryCookieList = necessaryCookieList + [cookie] />
37 </#list>
38</#if>
39<#if necessaryCookieName.getSiblings()?has_content>
40 <#list necessaryCookieName.getSiblings() as cur_newNecessaryCookieName>
41 <#assign cookie = {
42 "name": cur_newNecessaryCookieName.getData(),
43 "domain": cur_newNecessaryCookieName.necessaryCookieDomain.getData(),
44 "description": cur_newNecessaryCookieName.necessaryCookieDescription.getData(),
45 "type": "necessary"
46 } />
47 <#assign necessaryCookieList = necessaryCookieList + [cookie] />
48 </#list>
49</#if>
50
51<#-- Analytics Cookies fields inputs -->
52<#if (analyticsCookiesListMenu.getData())??>
53 <#list analyticsCookiesListMenu.getData()?split(",") as cur_newAnalyticCookieName>
54 <#assign trimmedName = cur_newAnalyticCookieName?trim>
55 <#assign cookie = {
56 "name": trimmedName,
57 "domain": "cookieconsent."+ trimmedName?lower_case?replace('-', '')?replace('_', '') + "domain",
58 "description": "cookieconsent."+ trimmedName?lower_case?replace('-', '')?replace('_', ''),
59 "type": "analytics"
60 } />
61 <#assign analyticsCookieList = analyticsCookieList + [cookie] />
62 </#list>
63</#if>
64<#if analyticCookieName.getSiblings()?has_content>
65 <#list analyticCookieName.getSiblings() as cur_newAnalyticCookieName>
66 <#assign cookie = {
67 "name": cur_newAnalyticCookieName.getData(),
68 "domain": cur_newAnalyticCookieName.analyticCookieDomain.getData(),
69 "description": cur_newAnalyticCookieName.analyticCookieDescription.getData(),
70 "type": "analytics"
71 } />
72 <#assign analyticsCookieList = analyticsCookieList + [cookie] />
73 </#list>
74</#if>
75
76<#-- 3rd Party Cookies fields inputs -->
77<#if (thirdPartyCookiesListMenu.getData())??>
78 <#list thirdPartyCookiesListMenu.getData()?split(",") as cur_newThirdPartyCookieName>
79 <#assign trimmedName = cur_newThirdPartyCookieName?trim>
80 <#assign cookie = {
81 "name": trimmedName,
82 "domain": "cookieconsent."+ trimmedName?lower_case?replace('-', '')?replace('_', '') + "domain",
83 "description": "cookieconsent."+ trimmedName?lower_case?replace('-', '')?replace('_', ''),
84 "type": "3rd-party"
85 } />
86 <#assign thirdPartyCookieList = thirdPartyCookieList + [cookie] />
87 </#list>
88</#if>
89<#if thirdPartyCookieName.getSiblings()?has_content>
90 <#list thirdPartyCookieName.getSiblings() as cur_newThirdPartyCookieName>
91 <#assign cookie = {
92 "name": cur_newThirdPartyCookieName.getData(),
93 "domain": cur_newThirdPartyCookieName.thirdPartyCookieDomain.getData(),
94 "description": cur_newThirdPartyCookieName.thirdPartyCookieDescription.getData(),
95 "type": "3rd-party"
96 } />
97 <#assign thirdPartyCookieList = thirdPartyCookieList + [cookie] />
98 </#list>
99</#if>
100
101<#-- Sort cookie list by type -->
102<#function sortCookieListByType type>
103 <#assign sortedList = []>
104 <#list cookieList as cookie>
105 <#if cookie.type == type>
106 <#assign sortedList = sortedList + [cookie]>
107 </#if>
108 </#list>
109 <#return sortedList>
110</#function>
111
112<#assign cookieList = necessaryCookieList + analyticsCookieList + thirdPartyCookieList />
113
114<#-- Sort and add cookie entries to the cookieListJS array -->
115<#list ["necessary", "analytics", "3rd-party"] as type>
116 <#assign cookiesByType = sortCookieListByType(type)>
117 <#assign typeCookies = []>
118 <#list cookiesByType as cookie>
119 <#assign typeCookie = {
120 "name": cookie.name,
121 "domain": cookie.domain,
122 "description": cookie.description
123 } />
124 <#assign typeCookies = typeCookies + [typeCookie] >
125 </#list>
126 <#assign cookieEntry = {
127 "type": type,
128 "cookies": typeCookies
129 } />
130 <#assign cookieListJS = cookieListJS + [cookieEntry] >
131</#list>
132
133<script>
134 var cookieListJS = [
135 <#list cookieListJS as entry>
136 <#if entry.type == "text">
137 {
138 "type": "${entry.type}",
139 "key": "${entry.key}",
140 "content": "${entry.content?js_string}"
141 }
142 <#else>
143 {
144 "type": "${entry.type}",
145 "cookies": [
146 <#list entry.cookies as cookie>
147 {
148 "name": "${cookie.name?replace('\\"\\[', '', 'r')?replace('\\]', '', 'r')?js_string}",
149 "domain": "${cookie.domain?replace('\\"\\[', '', 'r')?replace('\\]', '', 'r')?js_string}",
150 "description": "${cookie.description?replace('\\"\\[', '', 'r')?replace('\\]', '', 'r')?js_string}"
151 }
152 <#if !cookie?is_last>,</#if>
153 </#list>
154 ]
155 }
156 </#if>
157 <#if !entry?is_last>,</#if>
158 </#list>
159 ];
160</script>
161
162<script>
163 // Function to clean up the name, domain, and description fields
164 function cleanField(input) {
165 return input.replace(/["[\]]/g, ""); // Remove unwanted characters
166 }
167
168 // Function to convert the input JSON format to the desired format
169 function convertData(cookieListJS) {
170 const outputData = [];
171
172 cookieListJS.forEach(entry => {
173 if (entry.type === "text") {
174 outputData.push({
175 type: entry.type,
176 key: entry.key,
177 content: entry.content
178 });
179 } else {
180 const cleanedCookies = entry.cookies.map(cookie => ({
181 name: cleanField(cookie.name),
182 domain: cleanField(cookie.domain),
183 description: cleanField(cookie.description)
184 }));
185
186 outputData.push({
187 type: entry.type,
188 cookies: cleanedCookies
189 });
190 }
191 });
192
193 return outputData;
194 }
195
196 // Call the function and get the desired output format
197 cookiesList = convertData(cookieListJS);
198</script>