Head of SMP - Studia Matematyczno-Przyrodnicze
An error occurred while processing the template.
The following has evaluated to null or missing:
==> baneryData[0] [in template "20096#20121#08-BANER" at line 73, column 36]
----
Tip: It's the final [] step that caused this error, not those before it.
----
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: #if getterUtil.getBoolean(baneryData[... [in template "20096#20121#08-BANER" at line 73, column 9]
----
1<#assign banery = FieldsetBaner.getSiblings()/>
2<#assign baneryData = []/>
3<#list banery as b>
4 <#if b.baner.getData()?has_content>
5 <#assign baneryData += [b]/>
6 </#if>
7</#list>
8
9<#assign ilosc = baneryData?size/>
10<#if ilosc == 1>
11 <#assign karuzela = false/>
12 <#assign ramka = "/image/image_gallery?uuid=b9538dbb-a81b-4245-9c02-785beb0c8ded&groupId=10172&t=1260294322990"/> <#-- TODO ustawić poprawną ścieżkę -->
13<#else>
14 <#assign karuzela = true/>
15 <#assign ramka = "https://portal.migracja.uj.edu.pl/documents/d/lift-theme-test/ramka_nawigacyjna?download=true"/> <#-- TODO ustawić poprawną ścieżkę -->
16</#if>
17
18<#assign plid = themeDisplay.getPortletDisplay().getInstanceId()/>
19<#assign plidFullName = "portlet_" + themeDisplay.getPortletDisplay().getId()/>
20<#assign widthCss = 25 * ilosc/>
21
22<#if karuzela>
23 <style type="text/css">
24 #${plidFullName} { margin: 0; }
25 .Baner${plid} ul.numerki {margin:0;padding:0;position:absolute;top:110px;left:95px;font-size:1px;width:${widthCss}px;}
26 .Baner${plid} ul.numerki li {color:#00519e;cursor:pointer;user-select:none;-moz-user-select: none;list-style-type:none;list-style-image:none;display:inline;float:left;background: rgba(0, 0, 0, 0.4);width:11px;height:11px;text-align:center;margin-right:4px; border: 1px #ccc solid;}
27 .Baner${plid} ul.numerki li:hover {background: rgba(255, 255, 255, 0.5);margin-right:4px; border: 1px #ccc solid;}
28 .gray .Baner${plid} ul.numerki li {color:#333;cursor:pointer;user-select:none;-moz-user-select: none;list-style-type:none;list-style-image:none;display:inline;float:left;background-color:#333; border: 1px #ccc solid;width:12px;height:12px;text-align:center;margin-right:8px;}
29 .gray .Baner${plid} ul.numerki li:hover {background-color:#666;margin-right:8px;}
30 .Baner${plid} ul.numerki li.active {position:relative; background: rgba(255, 255, 255, 0.5); border: 1px #ccc solid;}
31 </style>
32</#if>
33
34<div class="Baner${plid}" style="position:relative;left:-35px;height:151px;display:none;" >
35 <#assign ostatniZwykly = 0/>
36 <#assign ostatniHeadline = 0/>
37 <#list baneryData as obrazek>
38 <img class="baner baner${obrazek?counter}" style="position:absolute;top:0px;left:0px;display:none;" width="977" height="151" src="${obrazek.baner.getData()}" alt="${htmlUtil.escape(obrazek.opis.getData())}">
39 <#if getterUtil.getBoolean(obrazek.headline.getData())>
40 <#assign ostatniHeadline = obrazek?counter/>
41 <#else>
42 <#assign ostatniZwykly = obrazek?counter/>
43 </#if>
44 </#list>
45 <div style="position:absolute;top:0px;left:0px;height:151px">
46 <img class="png" width="977" height="150" src="${ramka}" usemap="#Baner${plid}mapa" alt="ramka nawigacyjna" />
47 <map name="Baner${plid}mapa">
48 <#if karuzela>
49 <area shape="poly" coords="83,16,83,130,34,128,16,100,12,76,16,46,36,18" href="#" onClick="Baner${plid}.poprzedni_z_reklama()" alt="Poprzedni baner"/>
50 </#if>
51 <area shape="poly" coords="83,16,500,9,895,16,895,130,500,138,84,130" href="#" onClick="Baner${plid}.otworz_lacze()" alt="Bieżący baner"/>
52 <#if karuzela>
53 <area shape="poly" coords="894,16,894,130,944,127,964,96,966,60,960,44,944,18" href="#" onClick="Baner${plid}.nastepny_z_reklama()" alt="Następny baner"/>
54 </#if>
55 </map>
56 </div>
57
58 <#if karuzela>
59 <ul class="numerki">
60 <#list baneryData as obrazek>
61 <#if !getterUtil.getBoolean(obrazek.headline.getData())>
62 <li class="kwadrat${obrazek?counter}" onClick="Baner${plid}.przelacz_na(${obrazek?counter});"></li>
63 </#if>
64 </#list>
65 </ul>
66 </#if>
67</div>
68
69<script type="text/javascript">
70 Baner${plid} = {
71
72 _obecny: 1,
73 <#if getterUtil.getBoolean(baneryData[0].headline.getData())>
74 _zachowany: ${ostatniZwykly},
75 <#else>
76 _zachowany: ${ostatniHeadline},
77 </#if>
78
79 _flagi: [<#list baneryData as obrazek> ${obrazek.headline.getData()}, </#list>],
80 _lacza: [<#list baneryData as obrazek> '${obrazek.link.getData()}', </#list>],
81
82 otworz_lacze: function()
83 {
84 if (this._lacza[this._obecny-1]) top.location.href=this._lacza[this._obecny-1];
85 },
86
87 <#if karuzela>
88
89 _zegar: null,
90
91 pokaz: function()
92 {
93 elements = jQuery('.gray .Baner${plid} .baner')
94 if (elements.length) grayscaleIMGs(elements);
95
96 jQuery('.Baner${plid} .baner'+this._obecny).show();
97 jQuery('.Baner${plid} .kwadrat'+this._obecny).addClass("active");
98 jQuery('.Baner${plid}').show();
99 this._zegar= setTimeout('Baner${plid}.nastepny_z_reklama()',7000);
100 },
101
102 nastepny: function()
103 {
104 var numer=1+((this._obecny) % ${ilosc});
105 this.przelacz_na(numer);
106 },
107
108 poprzedni: function()
109 {
110 var numer=1+((this._obecny+${ilosc}-2) % ${ilosc});
111 this.przelacz_na(numer);
112 },
113
114 przelacz_na: function(numer)
115 {
116 clearTimeout(this._zegar);
117 if (this._flagi[this._obecny-1]!=this._flagi[numer-1])
118 this._zachowany=this._obecny;
119 if (this._obecny!=numer)
120 {
121 if (this._obecny<numer)
122 {
123 jQuery('.Baner${plid} .baner'+numer).fadeIn('slow');
124 }
125 else
126 {
127 jQuery('.Baner${plid} .baner'+numer).show();
128 if (numer+1<this._obecny) for (i=numer+1;i<this._obecny;i++)
129 {
130 jQuery('.Baner${plid} .baner'+i).hide();
131 }
132 jQuery('.Baner${plid} .baner'+this._obecny).fadeOut('slow');
133 }
134 jQuery('.Baner${plid} .kwadrat'+numer).addClass("active");
135 jQuery('.Baner${plid} .kwadrat'+this._obecny).removeClass("active");
136 this._obecny=numer;
137 }
138 this._zegar= setTimeout('Baner${plid}.nastepny_z_reklama()',7000);
139 },
140
141 nastepny_z_reklama: function()
142 {
143 if (this._zachowany)
144 {
145 var numer=this._zachowany;
146 for (i=1;i<=${ilosc};i++)
147 {
148 if (this._flagi[(numer-1+i) % ${ilosc}] == this._flagi[numer-1])
149 {
150 numer = 1+((numer-1+i) % ${ilosc});
151 break;
152 }
153 }
154 this.przelacz_na(numer);
155 }
156 else this.nastepny();
157 },
158
159 poprzedni_z_reklama: function()
160 {
161 if (this._zachowany)
162 {
163 var numer=this._zachowany;
164 for (i=1;i<=${ilosc};i++)
165 {
166 if (this._flagi[(numer-1+${ilosc}-i) % ${ilosc}] == this._flagi[numer-1])
167 {
168 numer = 1+((numer-1+${ilosc}-i) % ${ilosc});
169 break;
170 }
171 }
172 this.przelacz_na(numer);
173 }
174 else this.poprzedni();
175 }
176
177 <#else>
178
179 pokaz: function()
180 {
181 elements = jQuery('.gray .Baner${plid} .baner')
182 if (elements.length) grayscaleIMGs(elements);
183
184 jQuery('.Baner${plid} .baner1').show();
185 jQuery('.Baner${plid}').show();
186 }
187
188 </#if>
189
190 }
191
192 <#-- Załaduj obrazki i pokaż baner: -->
193 var images${plid} = [ <#list baneryData as obrazek>'${obrazek.baner.getData()}',</#list> '${ramka}' ];
194 jQuery("<img />").load(function() {
195 if (images${plid}.length) {
196 this.src =images${plid}.shift()
197 if(this.complete) jQuery(this).trigger("load");
198 }
199 else Baner${plid}.pokaz();
200 }).trigger('load');
201
202</script>