Innehållspresentatör

Fel uppstod under bearbetning av mallen.
Error while loading tag library for URI "/WEB-INF/tld/liferay-ui.tld" from TLD location "servletContext:/WEB-INF/tld/liferay-ui.tld"; see cause exception.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign liferay_ui = taglibLiferayHas...  [in template "10136#10174#2514905" at line 3, column 1]
----
1<#setting locale=locale> 
2 
3<#assign liferay_ui = taglibLiferayHash["/WEB-INF/tld/liferay-ui.tld"] /> 
4<#assign liferay_util = taglibLiferayHash["/WEB-INF/tld/liferay-util.tld"] /> 
5 
6<#assign liferay_portlet = taglibLiferayHash["/WEB-INF/tld/liferay-portlet.tld"] /> 
7 
8<#assign page = themeDisplay.getLayout() /> 
9<#assign group_id = page.getGroupId() /> 
10<#assign company_id = themeDisplay.getCompanyId() /> 
11 
12<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.service.LayoutLocalService")> 
13 
14<#assign summaryMaxChars = 300 /> 
15 
16<div class="events-listing-wrap"> 
17 
18    <#if entries?has_content> 
19      <div class="event-listing"> 
20        <#list entries as entry> 
21 
22        <#assign assetRenderer = entry.getAssetRenderer() /> 
23				<#assign viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, entry) /> 
24 
25				<#if assetLinkBehavior != "showFullContent"> 
26					<#assign viewURL = assetRenderer.getURLViewInContext(renderRequest, renderResponse, viewURL) /> 
27				</#if> 
28 
29        <#assign viewURL = viewURL + "?p_p_state=maximized" /> 
30 
31        <#assign docXml = saxReaderUtil.read(entry.getAssetRenderer().getArticle().getContentByLocale(locale)) /> 
32        <#assign itemEventName = docXml.valueOf("//dynamic-element[@name='eventName']/dynamic-content/text()") /> 
33 
34        <#assign itemDateStart = docXml.valueOf("//dynamic-element[@name='dateStart']/dynamic-content/text()") /> 
35        <#assign itemDateEnd = docXml.valueOf("//dynamic-element[@name='dateStart']/dynamic-element[@name='dateEnd']/dynamic-content/text()") /> 
36 
37        <#assign itemTimeStart = docXml.valueOf("//dynamic-element[@name='timeStart']/dynamic-content/text()") /> 
38        <#assign itemTimeEnd = docXml.valueOf("//dynamic-element[@name='timeStart']/dynamic-element[@name='timeEnd']/dynamic-content/text()") /> 
39 
40        <#assign itemIntro = docXml.valueOf("//dynamic-element[@name='intro']/dynamic-content/text()") /> 
41        <#assign itemTextContent = docXml.valueOf("//dynamic-element[@name='textContent']/dynamic-content/text()") /> 
42 
43        <div class="entry-item"> 
44 
45              <h2 class="entry-title"> 
46                <a href="${viewURL}"> 
47                  ${itemEventName} 
48                </a> 
49              </h2> 
50 
51              <div class="meta-wrap"> 
52 
53                <#if itemDateStart?has_content> 
54                  <#assign dateString = itemDateStart?number?long?number_to_datetime?string("yyyy-MM-dd") /> 
55                  <#if itemDateEnd?has_content> 
56                    <#assign dateString = dateString + " - " + itemDateEnd?number?long?number_to_datetime?string("yyyy-MM-dd") /> 
57                  </#if> 
58                  <div class="meta-item date"> 
59                    <i class="icon-calendar"></i> ${dateString} 
60                  </div> 
61                </#if> 
62 
63                <#if itemTimeStart?has_content> 
64                  <#assign timeString = itemTimeStart /> 
65                  <#if itemTimeEnd?has_content> 
66                    <#assign timeString = timeString + " - " + itemTimeEnd /> 
67                  </#if> 
68                  <div class="meta-item time"> 
69                    <i class="icon-time"></i> ${timeString} 
70                  </div> 
71                </#if> 
72 
73              </div> 
74 
75              <div class="entry-teaser"> 
76 
77                <#assign entrySummary = "" /> 
78                <#if itemIntro?has_content> 
79                  <#assign entrySummary = itemIntro /> 
80                <#else> 
81                  <#assign entrySummary = htmlUtil.escape(itemTextContent) /> 
82                </#if> 
83 
84                <#assign entrySummary = ellipsis(entrySummary summaryMaxChars) /> 
85 
86                <div class="entry-summary"> 
87                  ${entrySummary} 
88                </div> 
89                <div class="entry-readmore"> 
90                  <a class="link-btn link-btn-link" href="${viewURL}"> 
91                    <span>L&auml;s mer</span> 
92                  </a> 
93                </div> 
94              </div> 
95 
96          </div> 
97 
98        </#list> 
99      </div> 
100    </#if> 
101 
102</div> 
103 
104<#function ellipsis myString maxChars> 
105  <#if myString?length gt maxChars> 
106    <#return myString?substring(0, maxChars) + "..." /> 
107  <#else> 
108    <#return myString /> 
109  </#if> 
110</#function>