Komunikaty - Uniwersytet Jagielloński
Doktoranci
Wystąpił błąd podczas przetwarzania szablonu.
Java method "pl.edu.uj.portal.articles.util.impl.CustomAssetHelperImpl.getAssetsFromGroupsCount(long[], String, long[], long[], long[], long[], Date, Date, Date, Date, Date)" threw an exception when invoked on pl.edu.uj.portal.articles.util.impl.CustomAssetHelperImpl object "pl.edu.uj.portal.articles.util.impl.CustomAssetHelperImpl@5e45f52c"; see cause exception in the Java stack trace. ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign iloscWszystkich = ujCustomAss... [in template "20096#20121#SKORKA2015-LISTA-ARTYKULOW" at line 213, column 5] ----
1<#assign sciezkaObrazkow = ''/>
2<#assign currentUrl = ''/>
3<#if request?? && request?has_content>
4 <#assign sciezkaObrazkow = themeDisplay.getPathThemeImages()/>
5 <#assign currentUrl = themeDisplay.getURLCurrent()/>
6 <#assign longGroupId = themeDisplay.getScopeGroupId()/>
7 <#assign currentRenderUrl = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent()/>
8</#if>
9
10<#if sciezkaObrazkow?has_content || sciezkaObrazkow?matches(".*/uj-lift-theme/images.*")>
11
12 <style>
13 @media all and (min-width:480px){
14 .post-excerpt__image img.thumb, html.view-gt480 .post-excerpt__image img.thumb{width: 300px;}
15 }
16 </style>
17
18 <#assign langReadMore = htmlUtil.escape(languageUtil.get(locale,"read-more"))/>
19 <#assign langAll = htmlUtil.escape(languageUtil.get(locale,"all"))/>
20 <#assign langFilter = htmlUtil.escape(languageUtil.get(locale,"filter"))/>
21 <#assign langViewAll = htmlUtil.escape(languageUtil.get(locale,"view-all"))/>
22
23<#-----------MACRO----------->
24 <#macro imgAltDescription artImgUrl>
25 <#assign artImgUrlArray = stringUtil.split(artImgUrl, "/")/>
26 <#assign fileGroup = getterUtil.getLong(artImgUrlArray[2])/>
27 <#assign fileFolder = getterUtil.getLong(artImgUrlArray[3])/>
28 <#assign fileName = httpComponentsUtil.decodeURL(artImgUrlArray[4])/>
29
30 <#if fileEntryService.getFileEntryByFileName(fileGroup, fileFolder, fileName)??>
31 <#assign file = fileEntryService.getFileEntryByFileName(fileGroup, fileFolder, fileName)/>
32 <#assign fileTitle = file.getTitle()/>
33 <#assign fileTitle = fileTitle?replace("\\\"", """)/>
34 <#assign fileDescription = file.getDescription()>
35 <#assign fileDescription = fileDescription?replace("\\\"", """)/>
36 <#assign fileExtension = file.getExtension()/>
37 </#if>
38 </#macro>
39
40<#-----------Services----------->
41 <#assign journalArticleResourceService = serviceLocator.findService("com.liferay.journal.service.JournalArticleResourceLocalService")/>
42 <#assign journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")/>
43 <#assign assetTagService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetTagLocalService")/>
44 <#assign groupService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService")/>
45 <#assign fileEntryService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")/>
46
47<#-----------Structure variables----------->
48 <#assign
49 titleData = ""
50 typeData = ""
51 categoriesData = ""
52 omitCategoriesData = ""
53 tagsData = ""
54 omitTagsData = ""
55 groupIdsData = ""
56 noResultData = ""
57 sortByData = ""
58 hideData = ""
59 aggregatorSiteUrlData = ""
60 aggregatorPortletIdData = ""
61 hidePaginationData = ""
62 omitArticleIdsData = ""
63 iloscNaStronie = ""
64 />
65
66 <#if (title.getData())??>
67 <#assign titleData = title.getData()/>
68 </#if>
69 <#if (type.getData())??>
70 <#assign typeData = type.getData()?upper_case/>
71 </#if>
72 <#if (categories.getData())??>
73 <#assign categoriesData = categories.getData()/>
74 </#if>
75 <#if (omitCategories.getData())??>
76 <#assign omitCategoriesData = omitCategories.getData()/>
77 </#if>
78 <#if (tags.getData())??>
79 <#assign tagsData = tags.getData()/>
80 </#if>
81 <#if (omitTags.getData())??>
82 <#assign omitTagsData = omitTags.getData()/>
83 </#if>
84 <#if (groupIds.getData())??>
85 <#assign groupIdsData = groupIds.getData()/>
86 </#if>
87 <#if (noResult.getData())??>
88 <#assign noResultData = noResult.getData()/>
89 </#if>
90 <#if (sortBy.getData())??>
91 <#assign sortByData = sortBy.getData()/>
92 </#if>
93 <#if (hide.getData())??>
94 <#assign hideData = hide.getData()/>
95 </#if>
96 <#if (aggregatorSiteUrl.getData())??>
97 <#assign aggregatorSiteUrlData = aggregatorSiteUrl.getData()/>
98 </#if>
99 <#if (aggregatorPortletId.getData())??>
100 <#assign aggregatorPortletIdData = aggregatorPortletId.getData()/>
101 </#if>
102 <#if aggregatorSiteUrlData?has_content && aggregatorPortletIdData?has_content>
103 <#assign adresStrony = aggregatorSiteUrlData/>
104 <#assign portletId = aggregatorPortletIdData/>
105 <#else>
106 <#assign adresStrony = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent()/>
107 <#assign portletId = themeDisplay.getPortletDisplay().getId()/>
108 </#if>
109 <#if (hidePagination.getData())??>
110 <#assign hidePaginationData = hidePagination.getData()/>
111 </#if>
112 <#if (omitArticleIds.getData())??>
113 <#assign omitArticleIdsData = omitArticleIds.getData()/>
114 </#if>
115
116 <#if (articlesCountOnPage.getData())??>
117 <#assign iloscNaStronie = getterUtil.getInteger(articlesCountOnPage.getData())/>
118 </#if>
119
120<#-----------Organizations & Groups----------->
121 <#assign groupsList = []/>
122 <#assign groupIds = getterUtil.getLongValues(stringUtil.split(groupIdsData, ","))/>
123 <#if groupIds?size gt 0>
124 <#list groupIds as groupId>
125 <#assign groupsList = groupsList + [groupId]/>
126 </#list>
127 <#else>
128 <#assign groupsList = [longGroupId?string]/>
129 <#assign groupIds = [longGroupId]/>
130 </#if>
131
132 <#assign groupsListFilter = groupsList/>
133
134 <#assign groupFilter = ''/>
135 <#if renderRequest.getOriginalHttpServletRequest().getParameter('groupFilter')??>
136 <#assign groupFilter = renderRequest.getOriginalHttpServletRequest().getParameter('groupFilter')?html/>
137 </#if>
138
139
140 <#if groupFilter?has_content>
141 <#if groupsList?join(",")?contains(groupFilter)>
142 <#assign groupsList = [groupFilter?string]/>
143 <#assign groupIds = [getterUtil.getLong(groupFilter)]/>
144 </#if>
145 </#if>
146
147 <#assign emptyLongArray = getterUtil.getLongValues([])/>
148 <#-----------Categories----------->
149 <#assign categoryIds = emptyLongArray/>
150 <#assign omitCategoryIds = emptyLongArray/>
151
152 <#list stringUtil.split(categoriesData, ",") as categorie>
153 <#if categorie?length gt 0>
154 <#assign categoryNameTmp = [categorie?trim]/>
155 <#list groupIds as longGroupId>
156 <#assign categoryIdTmp = ujCustomAssetHelper.getCategoryIds(longGroupId, categoryNameTmp)/>
157 <#assign categoryIds = arrayUtil.append(categoryIds, categoryIdTmp)/>
158 </#list>
159 </#if>
160 </#list>
161
162 <#list stringUtil.split(omitCategoriesData, ",") as categorie>
163 <#if categorie?length gt 0>
164 <#assign omitCategoryNameTmp = [categorie?trim]/>
165 <#list groupIds as longGroupId>
166 <#assign omitCategoryIdTmp = ujCustomAssetHelper.getCategoryIds(longGroupId, omitCategoryNameTmp)/>
167 <#assign omitCategoryIds = arrayUtil.append(omitCategoryIds, omitCategoryIdTmp)/>
168 </#list>
169 </#if>
170 </#list>
171
172<#-----------Tags----------->
173 <#assign tagIds = emptyLongArray/>
174 <#assign omitTagIds = emptyLongArray/>
175
176 <#list stringUtil.split(tagsData) as tag>
177 <#if tag?length gt 0>
178 <#assign tagNameTmp = [tag?trim]/>
179 <#list groupIds as longGroupId>
180 <#assign tagIdTmp = ujCustomAssetHelper.getTagIds(longGroupId, tagNameTmp)/>
181 <#assign tagIds = arrayUtil.append(tagIds, tagIdTmp)/>
182 </#list>
183 </#if>
184 </#list>
185
186 <#assign addTagId = ''/>
187 <#assign addLongTagId = 0/>
188 <#if renderRequest.getOriginalHttpServletRequest().getParameter('tagId')??>
189 <#assign addTagId = renderRequest.getOriginalHttpServletRequest().getParameter('tagId')?html/>
190 <#assign addLongTagId = getterUtil.getLong(addTagId)/>
191 </#if>
192
193 <#list stringUtil.split(omitTagsData, ",") as tag>
194 <#if tag?length gt 0>
195 <#assign omitTagNameTmp = [tag?trim]/>
196 <#list groupIds as longGroupId>
197 <#assign omitTagIdTmp = ujCustomAssetHelper.getTagIds(longGroupId, omitTagNameTmp)/>
198 <#assign omitTagIds = arrayUtil.append(omitTagIds, omitTagIdTmp)/>
199 </#list>
200 </#if>
201 </#list>
202
203<#-----------Pagination variables----------->
204 <#if iloscNaStronie == 0>
205 <#assign iloscNaStronie = 5/>
206 </#if>
207 <#assign strona = 1/>
208
209 <#if renderRequest.getOriginalHttpServletRequest().getParameter('strona')??>
210 <#assign strona = getterUtil.getInteger(renderRequest.getOriginalHttpServletRequest().getParameter('strona')?html)/>
211 </#if>
212
213 <#assign iloscWszystkich = ujCustomAssetHelper.getAssetsFromGroupsCount(groupIds, typeData, categoryIds, omitCategoryIds, tagIds, omitTagIds, null, null, null, null, .now?date)/>
214
215 <#assign iloscStron = (iloscWszystkich/iloscNaStronie)?ceiling/>
216
217 <#if strona gt iloscStron>
218 <#assign strona = iloscStron/>
219 </#if>
220 <#assign indeksPoczatkowy = iloscNaStronie*(strona - 1)/>
221 <#assign indeksKoncowy = indeksPoczatkowy + iloscNaStronie/>
222
223 <#assign assets = ujCustomAssetHelper.getAssetsFromGroups(groupIds, typeData, categoryIds, omitCategoryIds, tagIds, omitTagIds, sortByData,
224 "title", "DESC", "ASC", null, null, null, null, .now?date, indeksPoczatkowy, indeksKoncowy)/>
225
226 <#if addLongTagId gt 0>
227 <p>Wyniki sortowane według etykiety: <strong>${assetTagService.getTag(addLongTagId).getName()}</strong> </p>
228 </#if>
229
230 <section class="main-content" id="main-content" tabindex="-1">
231
232 <#if titleData?has_content>
233 <div class="page-sub-heading">
234 <h2 class="page-sub-heading__title">${titleData}</h2>
235 </div>
236 </#if>
237 <#-----------Select articles by groupId----------->
238 <#if !hideData?contains('groupFilter')>
239 <#if groupsListFilter?size gt 1>
240 <form id="articlesFilter" name="formArticlesFilter" class="jsForm" action="${currentUrl}" method="post" onsubmit="">
241
242 <select name="groupFilter" id="groupFilter" class="jsFormSelect " data-placeholder="${langFilter}">
243 <option value=""></option>
244 <option value="all" <#if groupFilter == 'all'> selected='selected' </#if>>${langAll}</option>
245 <#list groupsListFilter as g>
246 <#assign grupa = groupService.getGroup(getterUtil.getLong(g))/>
247 <option value="${g}" <#if g?string == groupFilter> selected='selected' </#if>>
248 <#--special case on english site-->
249 <#if longGroupId == 16167284>
250 <#if g == 757404>Archive new
251 <#elseif g == 16167284>Current news
252 <#else>${grupa.getDescriptiveName()}
253 </#if>
254 <#else>
255 ${grupa.getDescriptiveName()}
256 </#if>
257 </option>
258 </#list>
259 </select>
260 <input type="hidden" name="tagId" value="${addTagId}"/>
261 </form>
262 </#if><#--end of form-->
263 </#if><#--end of checking hiding-->
264
265 <script type="text/javascript">
266 jQuery('select').change(function() {
267 jQuery(this).parent('form').submit();
268 });
269 </script>
270
271 <#-----------End of select articles by groupId----------->
272 <div class="_cf">
273 <#if assets?size == 0>
274 ${noResultData}
275 <#else>
276 <#-- starts omit articles from configuration field-->
277 <#assign omitArticleIds = getterUtil.getLongValues(omitArticleIdsData?split(","))/>
278 <#assign omitArticleIdsList = []/>
279 <#if omitArticleIds?size gt 0>
280 <#list omitArticleIds as oArticleId>
281 <#assign omitArticleIdsList = omitArticleIdsList + [oArticleId?string]/>
282 </#list>
283 </#if>
284
285 <#list assets as asset>
286 <#assign
287 articleId = ""
288 articleTitle = ""
289 articleDescription = ""
290 artImgJson = ""
291 imgDescription = ""
292 articleGroupId = ""
293
294 articleResource = journalArticleResourceService.getArticleResource(asset.getClassPK())
295 article = journalArticleService.getArticle(articleResource.getGroupId(), articleResource.getArticleId())
296 articleGroupId = article.getGroupId()
297 articleId = article.getArticleId()
298 />
299
300 <#assign artStructureValues = ujJournalArticleHelper.getFormValues(article, portletRequest)/>
301 <#if !omitArticleIdsList?seq_contains(articleId)>
302 <#-- Artykul z rozwijana trescia -->
303 <#if article.getDDMTemplateKey() == ''><#--#TODO poprawne templateId-->
304 <#assign
305 articleTitle = artStructureValues["title"]
306 articleDescription = artStructureValues["streszczenie"]
307 artImgJson = artStructureValues["imgSrc"]
308 />
309 <#-- Szablon WCAG - Deklaracja Zgodności (dev) || Szablon WCAG - Deklaracja Zgodności (prod)) -->
310 <#elseif article.getDDMTemplateKey() == '' || article.getDDMTemplateKey() = ''>
311 <#assign
312 articleTitle = artStructureValues["title"]
313 articleDescription = artStructureValues["description"]
314 artImgJson = artStructureValues["imgSrc"]
315 />
316 <#-- if tytul w strutkuturze (powinien być tylko szablon Artykułu uniwersalnego templateId== '82670971' -->
317 <#else>
318 <#assign
319 articleTitle = artStructureValues["tytul"]
320 articleTitle = articleTitle?replace('\"', '"', 'r')
321 articleDescription = artStructureValues["streszczenie"]
322 articleDescription = articleDescription?replace('\"', '"', 'r')
323 />
324 </#if>
325
326 <#if !articleTitle?has_content>
327 <#assign articleTitle = article.getUrlTitle()/>
328 </#if>
329 <#if !articleDescription?has_content>
330 <#assign articleDescription = article.getDescription()/>
331 </#if>
332 <#-----------Tags from the current journalArticle----------->
333 <#assign model = 'com.liferay.journal.model.JournalArticle'/>
334 <#assign tags = assetTagService.getTags(model, getterUtil.getLong(asset.getClassPK()))/>
335
336 <#if adresStrony?contains("?")>
337 <#assign baseUrl = adresStrony?substring(0, adresStrony?index_of("?")) />
338 <#else>
339 <#assign baseUrl = adresStrony/>
340 </#if>
341 <#assign articleUrl = htmlUtil.escape("${baseUrl}/-/journal_content/${portletId}/${articleGroupId}/${articleId}")/>
342
343 <div class="post-excerpt">
344 <#if !hideData?contains('abstractImg')>
345 <#if artStructureValues["grafikaLista"]??>
346 <#assign artImgJson = artStructureValues["grafikaLista"]/>
347 <#if artImgJson?has_content && artImgJson?length gt 2>
348 <#assign artImgUrl = ujDocumentLibraryHelper.getFileEntryDownloadURL(artImgJson)/>
349 <#attempt>
350 <#assign imgDescription = ujDocumentLibraryHelper.getFileEntry(artImgJson).getDescription()/>
351 <#recover>
352 <#assign imgDescription = articleTitle/>
353 </#attempt>
354 <div class="post-excerpt__image">
355 <a href="${articleUrl}" title="${articleTitle}">
356 <img src="${artImgUrl}" class="thumb" alt="${imgDescription}">
357 </a>
358 </div>
359 </#if> <#-- End of checking thumb -->
360 </#if> <#-- End of checking given structure contains 'grafikaList' -->
361 </#if> <#-- End of checking hiding -->
362
363 <div <#if artImgJson?has_content && artImgJson != '{}' && !hideData?contains('abstractImg')> class="post-excerpt__text-container" <#else> class="post-excerpt post-excerpt--condensed" </#if>>
364 <#-----------Show organizational source of articles----------->
365 <#if groupIds?size gt 0 && asset.getGroupId() != longGroupId>
366 <div class="post-excerpt__category">
367 <#assign grupa = groupService.getGroup(asset.getGroupId())/>
368 ${grupa.getDescriptiveName()}
369 </div>
370 </#if>
371
372 <#if !hideData?contains('abstractTag')>
373 <#if tags?size gt 0>
374 <div class="post-excerpt__category">
375 <#list tags as tag>
376 <#if tag.getName() != 'polska' && tag.getName() != 'mobilna'>${tag.getName()}</#if>
377 </#list>
378 </div>
379 </#if>
380 </#if> <#-- End of checking hiding -->
381
382 <h3 class="post-excerpt__title">
383 <a href="${articleUrl}">${articleTitle}</a>
384 </h3>
385
386 <#if !hideData?contains('abstractDate')>
387 <div class="post-excerpt__sub-title">
388 <#if sortByData == 'createDate'>${dateUtil.getDate(article.getCreateDate(), "dd.MM.yyyy", locale, timeZoneUtil.getDefault())}
389 <#elseif sortByData == 'publishDate'>${dateUtil.getDate(article.getDisplayDate(), "dd.MM.yyyy", locale, timeZoneUtil.getDefault())}
390 <#elseif sortByData == 'modifiedDate'>${dateUtil.getDate(article.getModifiedDate(), "dd.MM.yyyy", locale, timeZoneUtil.getDefault())}
391 </#if>
392 </div>
393 </#if> <#-- End of checking hiding -->
394
395 <#if !hideData?contains('abstractText')>
396 <#if articleDescription?has_content>
397 <div class="post-excerpt__text">
398 ${articleDescription}
399 </div>
400 </#if>
401 </#if><#-- End of checking hiding -->
402
403 <#if !hideData?contains('abstractLinkMore')>
404 <a href="${articleUrl}" class="post-excerpt__link">
405 ${langReadMore} <span class="invisible-element">o ${articleTitle}</span>
406 </a>
407 </#if><#-- End of checking hiding -->
408 </div>
409 </div>
410 </#if><#-- End of omitting artiles Id -->
411 </#list><#-- End of list assets -->
412
413 <#--------- PAGINATION ---------->
414 <#if hidePaginationData == "true">
415 <div class="post-excerpt__show_all_articles">
416 <a href="${adresStrony}" class="post-excerpt__show_all">
417 ${langViewAll}
418 </a>
419 </div>
420 <#else>
421 <#if iloscStron gt 1>
422 <#assign url = ''/>
423 <#if request?? && request?has_content>
424 <#assign url = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent()/>
425 </#if>
426 <#if addTagId?has_content && addTagId?length gt 0>
427 <#assign url = httpComponentsUtil.addParameter(url, "tagId", addTagId)/>
428 </#if>
429 <#if groupFilter?has_content && groupFilter?length gt 0>
430 <#assign url = httpComponentsUtil.addParameter(url, "groupFilter", groupFilter)/>
431 </#if>
432
433 <#macro displayPage url s strona hide1 hide2>
434 <#if s == strona>
435 <li class="active">
436 <span class="invisible-element">Aktualna strona</span> ${s}
437 </li>
438 <#else>
439 <li <#if hide1?has_content && hide1 gt 0 && s == hide1 || hide2?has_content && hide2 gt 0 && s == hide2> class="hide-view-lt480"</#if>>
440 <a href="${httpComponentsUtil.setParameter(url, "strona", s)}">
441 <span class="invisible-element">Strona</span> ${s}
442 </a>
443 </li>
444 </#if>
445 </#macro>
446
447 <#if iloscStron gt 1>
448 <nav role="navigation" class="pagination" aria-label="Paginacja">
449 <ul class="pagination__list">
450 <#if iloscStron lt 8>
451 <#list 1..iloscStron as s>
452 <@displayPage url=currentRenderUrl s=s strona=strona hide1=-1 hide2=-1/>
453 </#list>
454 <#elseif strona lt 5>
455 <#list 1..6 as s>
456 <@displayPage url=currentRenderUrl s=s strona=strona hide1=6 hide2=-1/>
457 </#list>
458 <li>
459 <span aria-hidden="true">...</span>
460 </li>
461
462 <li>
463 <a href="${httpComponentsUtil.setParameter(currentRenderUrl, 'strona', iloscStron)}">
464 <span class="invisible-element">Strona</span>
465 ${iloscStron}
466 </a>
467 </li>
468 <#elseif strona + 4 gt iloscStron>
469 <li>
470 <a href="${httpComponentsUtil.setParameter(currentRenderUrl, 'strona', 1)}">
471 <span class="invisible-element">Strona</span>
472 1
473 </a>
474 </li>
475 <li>
476 <span aria-hidden="true">...</span>
477 </li>
478 <#assign x = iloscStron - 5/>
479 <#list x..iloscStron as s>
480 <@displayPage url=currentRenderUrl s=s strona=strona hide1=x hide2=-1/>
481 </#list>
482 <#else>
483 <li>
484 <a href="${httpComponentsUtil.setParameter(currentRenderUrl, 'strona', 1)}">
485 <span class="invisible-element">Strona</span>
486 1
487 </a>
488 </li>
489 <li>
490 <span aria-hidden="true">...</span>
491 </li>
492 <#assign x = strona - 2/>
493 <#assign y = strona + 2/>
494 <#list x..y as s>
495 <@displayPage url=url s=s strona=strona hide1=x hide2=y/>
496 </#list>
497 <li>
498 <span aria-hidden="true">...</span>
499 </li>
500 <li><a href="${httpComponentsUtil.setParameter(currentRenderUrl,'strona',iloscStron)}">${iloscStron}</a>
501 </li>
502 </#if>
503 </ul>
504 <div class="pagination__arrows">
505 <#if strona gt 1>
506 <#assign poprzednia = strona - 1/>
507 <a class="pagination__prev" href="${httpComponentsUtil.setParameter(currentRenderUrl, 'strona', poprzednia)}">
508 <i aria-hidden="true" class="icon icon-angle-left"></i>
509 <span class="invisible-element">${languageUtil.get(locale, "previous")}</span>
510 </a>
511 </#if>
512 <#if strona lt iloscStron>
513 <#assign nastepna = strona + 1/>
514 <a class="pagination__next" href="${httpComponentsUtil.setParameter(currentRenderUrl, 'strona', nastepna)}">
515 <i aria-hidden="true" class="icon icon-angle-right"></i>
516 <span class="invisible-element">${languageUtil.get(locale, "next")}</span>
517 </a>
518 </#if>
519 </div>
520 </nav>
521 </#if> <#-- End of pagination-->
522 </#if> <#-- End of checking if hidePagination is true -->
523 </#if> <#-- End of checking whether assets exists-->
524 </#if>
525 </div> <#-- End of _cf-->
526 </section> <#-- End of main_content-->
527<#else>
528 <#if permissionChecker.getUserId() gt 100000>
529 <p>Ten szablon przeznaczony jest tylko dla dedykowanej skórki UJ</p>
530 </#if>
531</#if>