Có lỗi xảy ra trong quá trình xử lý biểu mẫu.
The following has evaluated to null or missing: ==> layoutService.fetchLayout(plidlayout?number) [in template "34201#34227#43055" 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#43055" 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>