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#2514902" 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<div class="person-listing-rich"> 
9 
10    <#if entries?has_content> 
11      <#list entries as entry> 
12 
13        <#assign docXml = saxReaderUtil.read(entry.getAssetRenderer().getArticle().getContentByLocale(locale)) /> 
14        <#assign firstName = docXml.valueOf("//dynamic-element[@name='firstName']/dynamic-content/text()") /> 
15        <#assign lastName = docXml.valueOf("//dynamic-element[@name='lastName']/dynamic-content/text()") /> 
16        <#assign unit = docXml.valueOf("//dynamic-element[@name='unit']/dynamic-content/text()") /> 
17        <#assign workTitle = docXml.valueOf("//dynamic-element[@name='workTitle']/dynamic-content/text()") /> 
18        <#assign phone = docXml.valueOf("//dynamic-element[@name='phone']/dynamic-content/text()") /> 
19        <#assign email = docXml.valueOf("//dynamic-element[@name='email']/dynamic-content/text()") /> 
20        <#assign imageSrc = docXml.valueOf("//dynamic-element[@name='image']/dynamic-content/text()") /> 
21        <#assign description = docXml.valueOf("//dynamic-element[@name='description']/dynamic-content/text()") /> 
22 
23        <#if !imageSrc?has_content> 
24          <#assign imageSrc = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /> 
25        </#if> 
26 
27        <#assign personInfo = firstName + " " + lastName /> 
28        <#if unit?has_content> 
29          <#assign personInfo = personInfo + ", " + unit /> 
30        </#if> 
31 
32        <div class="person"> 
33 
34          <div class="person-image"> 
35            <img src="${imageSrc}" alt="${firstName} ${lastName}" /> 
36          </div> 
37          <div class="person-info"> 
38            <h2> 
39              ${personInfo} 
40            </h2> 
41            <#if workTitle?has_content> 
42              <div class="person-worktitle"> 
43                ${workTitle} 
44              </div> 
45            </#if> 
46            <div class="person-description"> 
47              ${description} 
48            </div> 
49            <div class="person-contact"> 
50              <#if email?has_content> 
51                <div class="person-contact-method"> 
52                  <i class="icon-envelope-alt"></i> <a href="mailto:${email}">${email}</a> 
53                </div> 
54              </#if> 
55              <#if phone?has_content> 
56                <div class="person-contact-method"> 
57                  <i class="icon-phone"></i> <span>${phone}</span> 
58                </div> 
59              </#if> 
60            </div> 
61          </div> 
62 
63        </div> 
64 
65      </#list> 
66    </#if> 
67 
68</div> 
69 
70<#function ellipsis myString maxChars> 
71  <#if myString?length gt maxChars> 
72    <#return myString?substring(0, maxChars) + "..." /> 
73  <#else> 
74    <#return myString /> 
75  </#if> 
76</#function>