Contentverzamelaar

null XÃ PHÚ THÀNH A

Er trad een fout op tijdens de verwerking van de sjabloon.
The following has evaluated to null or missing:
==> layoutService.fetchLayout(plidlayout?number)  [in template "34201#34227#3895290" at line 17, column 19]

----
Tip: If the failing expression is known to be 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 layout = layoutService.fetchL...  [in template "34201#34227#3895290" at line 17, column 1]
----
1<#assign  
2    title = .vars['reserved-article-title'].data 
3	portalURL = themeDisplay.getPortalURL()  
4	currentUrl = portalURL + themeDisplay.getURLCurrent()  
5	imageUrl = portalURL + .vars['reserved-article-small-image-url'].data  
6	srcfb = "https://www.facebook.com/plugins/like.php?href=${currentUrl}&width=172&layout=button_count&action=like&size=small&share=true&height=46&appId"  
7	displayDate = .vars['reserved-article-display-date'].data 
8	summary = .vars['reserved-article-description'].data/> 
9 
10 
11<#assign layoutService =  serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") /> 
12<#if (request.getParameter("plidlayout")?has_content)> 
13    <#assign plidlayout = request.getParameter("plidlayout") /> 
14    <#else> 
15    <#assign plidlayout = 2 /> 
16</#if> 
17<#assign layout = layoutService.fetchLayout(plidlayout?number) /> 
18<#assign curLayout = layoutService.fetchLayout(plid?number) /> 
19<#assign pageTitle = layout.getName(locale) /> 
20<#assign pageUrl = layout.getFriendlyURL(locale) /> 
21<#assign curPageTitle = curLayout.getName(locale) /> 
22<#assign originalLocale = .locale> 
23<#setting locale = localeUtil.getDefault()> 
24<#assign displayDate = displayDate?datetime("EEE, d MMM yyyy HH:mm:ss Z")> 
25<#assign locale = originalLocale> 
26<#assign displayDate = displayDate?string("HH:mm dd/MM/yyyy")> 
27<script src="https://sp.zalo.me/plugins/sdk.js"></script> 
28<liferay-util:html-top outputKey="htmltop"> 
29    <meta name="url" property="og:url" content="${currentUrl}" /> 
30	<meta name="type" property="og:type" content="article" /> 
31    <meta name="title" property="og:title" content="${.vars['reserved-article-title'].data}" /> 
32    <meta name="image" property="og:image" content="${imageUrl}" > 
33</liferay-util:html-top> 
34<div class="main-content"> 
35	<div class="panel" id="main-body"> 
36		<div class="shortcode-content hreview"> 
37			<span style="font-weight: bold;font-size: 17px;border-left: 3px solid #ed0678;padding: 5px;background-color: darkgrey;" class="tieuDe-asset"><a href="${pageUrl}">${pageTitle}</a></span> 
38			<span  style="font-size: 17px;padding-left: 12px;font-weight: bold;">${curPageTitle}</span> 
39			<div class="article-head"> 
40				<div class="article-info" style="border-top: 0px;border-bottom: 0px;"> 
41					<div class="social-buttons left"> 
42                        ${displayDate} 
43					</div> 
44					<div class="social-buttons right"> 
45					    <a class="social-thing" onclick="voiceSpeak('contentText','voiceSex')"; style="margin-right: 5px;" 
46							data-toggle="tooltip" title="Đọc bài viết"> 
47							<img class="volume-up" src="/o/portal-dt-home-theme/images/icons/trothinh_volume-btn.png" style="vertical-align: middle;opacity: 1;width: 16px;"/> 
48						</a> 
49						<a id="void-pause" class="social-thing" onclick="voicePause()"; style="margin-right: 1px;display:none;" 
50							data-toggle="tooltip" title="Tạm dừng đọc"> 
51							<span class="fa fa-pause" style="vertical-align: middle;opacity: 1;width: 13px;color: dimgray;"/> 
52						</a> 
53						<a id="void-resume" class="social-thing" onclick="voiceResume()"; style="margin-right: 1px;display:none;" 
54							data-toggle="tooltip" title="Tiếp tục đọc"> 
55							<span class="fa fa-repeat" style="vertical-align: middle;opacity: 1;width: 13px;color: dimgray;"></span> 
56						</a> 
57						<a id="void-stop" class="social-thing" onclick="voiceCancel()"; style="margin-right: 1px;display:none;" 
58							data-toggle="tooltip" title="Dừng đọc"> 
59							<span class="fa fa-stop"style="vertical-align: middle;opacity: 1;width: 13px;color: dimgray;"/> 
60						</a> 
61						<a class="social-thing" style="margin-right: 5px;"> 
62							<img src="/o/portal-dt-home-theme/images/icons/trothinh_wall-ico.png" style="vertical-align: middle;opacity: 1;width: 1px;height: 13px"/> 
63						</a> 
64						<a class="social-thing" onclick="giamTuongPhan();" style="margin-right: 5px;" 
65							data-toggle="tooltip" title="Giảm tương phản"> 
66							<img src="/o/portal-dt-home-theme/images/icons/trothinh_bright-down-btn.png" style="vertical-align: middle;opacity: 1;width: 16px;"/> 
67						</a> 
68						<a class="social-thing" onclick="tangTuongPhan();" style="margin-right: 5px;" 
69							data-toggle="tooltip" title="Tăng tương phản"> 
70							<img src="/o/portal-dt-home-theme/images/icons/trothinh_bright-up-btn.png" style="vertical-align: middle;opacity: 1;width: 16px;"/> 
71						</a> 
72						<a class="social-thing" style="margin-right: 5px;"> 
73							<img src="/o/portal-dt-home-theme/images/icons/trothinh_wall-ico.png" style="vertical-align: middle;opacity: 1;width: 1px;height: 13px"/> 
74						</a> 
75						<a class="social-thing" onclick="fontMinus();" style="margin-right: 5px;" 
76							data-toggle="tooltip" title="Giảm cỡ chữ"> 
77							<img src="/o/portal-dt-home-theme/images/icons/trothinh_zoom-down-btn.png" style="vertical-align: middle;opacity: 1;width: 16px;"/> 
78						</a> 
79						<a class="social-thing" onclick="fontDefault();" style="margin-right: 5px;" 
80							data-toggle="tooltip" title="Cỡ chữ mặc định"> 
81							<img src="/o/portal-dt-home-theme/images/icons/trothinh_zoom-btn.png" style="vertical-align: middle;opacity: 1;width: 16px;"/> 
82						</a> 
83						<a class="social-thing" onclick="fontPlus();" style="margin-right: 5px;" 
84							data-toggle="tooltip" title="Tăng cỡ chữ"> 
85							<img src="/o/portal-dt-home-theme/images/icons/trothinh_zoom-up-btn.png" style="vertical-align: middle;opacity: 1;width: 16px;"/> 
86						</a> 
87						<a class="social-thing" style="margin-right: 5px;"> 
88							<img src="/o/portal-dt-home-theme/images/icons/trothinh_wall-ico.png" style="vertical-align: middle;opacity: 1;width: 1px;height: 13px"/> 
89						</a> 
90						<a class="social-thing" onclick="" style="margin-right: 5px;" 
91							data-toggle="tooltip" title="In bài viết"> 
92							<img src="/o/portal-dt-home-theme/images/icons/trothinh_print-btn.png" style="vertical-align: middle;opacity: 1;width: 16px;"/> 
93						</a> 
94						<a class="social-thing" onclick="" style="margin-right: 5px;" 
95							data-toggle="tooltip" title="Gửi mail"> 
96							<img src="/o/portal-dt-home-theme/images/icons/trothinh_mail-btn.png" style="vertical-align: middle;opacity: 1;width: 16px;height:13px"/> 
97						</a> 
98					</div> 
99					<input type="hidden" id="voiceSex" value="Vietnamese Female"></input> 
100					<input type="hidden" id="tuongphan" value="3"></input> 
101				</div> 
102			</div> 
103		</div> 
104		<div> 
105	        <h2 style="color: #ed0678;font-weight: bold;">${title}</h2> 
106	    </div> 
107		<div id="contentText"> 
108		    <b>${summary}</b> 
109		    ${noiDung.getData()} 
110		</div> 
111		<div class="article-info"> 
112			<div class="social-buttons left"> 
113                <div class="zalo-follow-only-button" data-oaid="3540423014405379625"></div> 
114                <div class="zalo-share-button" data-href="" data-oaid="4499765515963062717" data-layout="1" data-color="blue" data-customize=false></div> 
115                <iframe src="${srcfb}" width="450" height="35" style="border:none;overflow:hidden" scrolling="no" frameborder="0" allowTransparency="true" allow="encrypted-media"></iframe> 
116		    </div> 
117		</div> 
118	</div> 
119</div> 
120<#macro getMetadataField 
121 	fieldName 
122
123 	<#if stringUtil.split(metadataFields)?seq_contains(fieldName)> 
124 		<span class="metadata-entry metadata-${fieldName}"> 
125 			<#assign dateFormat = "dd MMM yyyy - HH:mm:ss" /> 
126  
127 			<#if stringUtil.equals(fieldName, "author")> 
128 				<@liferay.language key="by" /> ${htmlUtil.escape(portalUtil.getUserName(assetRenderer.getUserId(), assetRenderer.getUserName()))} 
129 			<#elseif stringUtil.equals(fieldName, "categories")> 
130 				<@liferay_asset["asset-categories-summary"] 
131 					className=curEntry.getClassName() 
132 					classPK=curEntry.getClassPK() 
133 					portletURL=renderResponse.createRenderURL() 
134 				/> 
135 			<#elseif stringUtil.equals(fieldName, "create-date")> 
136 				${dateUtil.getDate(curEntry.getCreateDate(), dateFormat, locale)} 
137 			<#elseif stringUtil.equals(fieldName, "expiration-date")> 
138 				${dateUtil.getDate(curEntry.getExpirationDate(), dateFormat, locale)} 
139 			<#elseif stringUtil.equals(fieldName, "modified-date")> 
140 				${dateUtil.getDate(curEntry.getModifiedDate(), dateFormat, locale)} 
141 			<#elseif stringUtil.equals(fieldName, "priority")> 
142 				${curEntry.getPriority()} 
143 			<#elseif stringUtil.equals(fieldName, "publish-date")> 
144 				${dateUtil.getDate(curEntry.getPublishDate(), dateFormat, locale)} 
145 			<#elseif stringUtil.equals(fieldName, "tags")> 
146 				<@liferay_asset["asset-tags-summary"] 
147 					className=curEntry.getClassName() 
148 					classPK=curEntry.getClassPK() 
149 					portletURL=renderResponse.createRenderURL() 
150 				/> 
151 			<#elseif stringUtil.equals(fieldName, "view-count")> 
152 				${curEntry.getViewCount()} <@liferay.language key="views" /> 
153 			</#if> 
154 		</span> 
155 	</#if> 
156</#macro>