Wystąpił błąd podczas przetwarzania szablonu.
The following has evaluated to null or missing:
==> pairArray[1]  [in template "20096#20121#09-BOKSY" at line 80, column 35]

----
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: #assign imageValue = pairArray[1]?rem...  [in template "20096#20121#09-BOKSY" in function "getImageMap" at line 80, column 13]
	- Reached through: @boks wiersz=wiersz prefix="box1"  [in template "20096#20121#09-BOKSY" at line 96, column 17]
----
1<#assign plid = "#portlet_" + themeDisplay.getPortletDisplay().getId()/>
 
2
 
3<style type="text/css">
 
4
 
5    ${plid} #boxy2 div.box {width: 227px; height: 155px; position:relative; border-bottom: 1px #cccccc dotted; float: left; margin: 0px 20px 10px 0px;}
 
6    ${plid} #boxy2 div.box3 {float:right;margin-right:0; width: 228px;}
 
7    ${plid} #boxy2 a:link.box {text-decoration: none; display: block; max-width: 227px; max-height: 155px; color: #666666;}
 
8    ${plid} #boxy2 a:visited.box {text-decoration: none; display: block; width: 227px; height: 155px; color: #666666;}
 
9    ${plid} #boxy2 a:hover.box, #boxy2 a:active.box {text-decoration: none; display: block; max-width: 227px; max-height: 155px; background-color: #f5f5f5; color: #666666;}
 
10
 
11    ${plid} #boxy2 h2{
 
12         margin: 0px 0px 18px 0px;
 
13         padding: 0px 0px 1px 0px;
 
14         width: 100%;
 
15         border-bottom: 4px #00519e solid;
 
16         font-weight: bold;
 
17         font-size: 16px;
 
18         color: #00519e;}
 
19
 
20    ${plid} #boxy2 span.kategoria {
 
21         margin: 0px 0px 10px 0px;
 
22         padding: 0px 0px 1px 0px;
 
23         display: block;
 
24         width: 100%;
 
25         border-bottom: 3px #00519e solid;
 
26         font-weight: bold;
 
27         font-size: 13px;
 
28         color: #00519e;}
 
29
 
30    ${plid} .wiecej {display:block; position: absolute; right:0; top: 138px; text-align: right; font-size: 10px; text-transform: lowercase; background: url("/image/image_gallery?uuid=d06b251f-b084-4b88-8250-59cb58648c05&groupId=10172&t=1265884542847") right no-repeat; padding: 0px 25px 0px 0px;}
 
31
 
32    ${plid} .gru {font-weight: bold;}
 
33    ${plid} .marg_b_3 {margin-bottom: 3px}
 
34    ${plid} .marg_b_5 {margin-bottom: 5px}
 
35    ${plid} .do_prawej {float: right;}
 
36    ${plid} .box_img {border: 1px solid #cccccc; padding: 4px; max-width:217px; max-height:100px; float: left; margin: 0px 8px 8px 0px;}
 
37
 
38</style>
 
39
 
40<#assign titleData = ""/>
 
41
 
42<#if (tytul.getData())??>
 
43    <#assign titleData = tytul.getData()/>
 
44</#if>
 
45
 
46<#assign journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")/>
 
47<#assign article = journalArticleService.getArticle(groupId, .vars["reserved-article-id"].data)/>
 
48<#assign articleStructureValue = ujJournalArticleHelper.getFormValues(article, portletRequest)/>
 
49
 
50<#macro boks wiersz prefix>
 
51    <#if wiersz[prefix + "Strona"]?has_content>
 
52        <div class="box ${prefix}">
 
53            <a href="${wiersz[prefix + "Strona"]}" class="box">
 
54            <#if wiersz[prefix + "Tytul"]?has_content>
 
55                <span class="kategoria">${wiersz[prefix + "Tytul"]}</span>
 
56            </#if>
 
57            <#if getImageMap(wiersz[prefix + "Grafika"])["url"]??>
 
58                <img class="box_img" src="${getImageMap(wiersz[prefix + "Grafika"])["url"]}" />
 
59            </#if>
 
60            <#if wiersz[prefix + "Tekst"]?has_content>
 
61                ${wiersz[prefix + "Tekst"]}
 
62            </#if>
 
63            <span class="wiecej">
 
64                ${languageUtil.get(locale, "more")}
 
65            </span>
 
66            </a>
 
67        </div>
 
68    </#if>
 
69</#macro>
 
70
 
71<#function getImageMap imageJSONString>
 
72    <#assign imageMap = {}/>
 
73    <#if imageJSONString?has_content>
 
74        <#assign imageJSONString = imageJSONString?remove_beginning("{")?remove_ending("}")/>
 
75        <#assign imageJSONArray = imageJSONString?split(",")/>
 
76
 
77        <#list imageJSONArray as pair>
 
78            <#assign pairArray = pair?split(":")/>
 
79            <#assign imageKey = pairArray[0]?remove_beginning("\"")?remove_ending("\"")/>
 
80            <#assign imageValue = pairArray[1]?remove_beginning("\"")?remove_ending("\"")/>
 
81            <#assign imageMap += {imageKey : imageValue}/>
 
82        </#list>
 
83    </#if>
 
84  <#return imageMap>
 
85</#function>
 
86
 
87<div id="boxy2">
 
88    <#if titleData?has_content>
 
89        <h2>${titleData}</h2>
 
90    </#if>
 
91
 
92    <#assign wierszeData = articleStructureValue["FieldsetWiersze"]/>
 
93    <#list wierszeData as wiersz>
 
94        <#if wiersz["box1Strona"]?has_content || wiersz["box2Strona"]?has_content || wiersz["box3Strona"]?has_content>
 
95            <div style="clear:both; width: 100%; height: 155px; margin-bottom: 20px;">
 
96                <@boks wiersz=wiersz prefix="box1"/>
 
97                <@boks wiersz=wiersz prefix="box2"/>
 
98                <@boks wiersz=wiersz prefix="box3"/>
 
99            </div>
 
100        </#if>
 
101    </#list>
 
102</div>
 
103
 
104<script type="text/javascript">
 
105    elements = jQuery('.gray ${plid} img.box_img');
 
106    if (elements.length) grayscaleIMGs(elements);
 
107</script>