Triển khai thực hiện Luật Đầu tư năm 2020 theo hướng dẫn của Bộ Kế hoạch và Đầu tư (Luật Đầu tư số 61/2020/QH14 ngày 17/6/2020 có hiệu lực thi hành kể từ ngày 01/012021)
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#52434" 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#52434" at line 17, column 1] ----
1<#assign
2 layoutService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")
3 userService = serviceLocator.findService("com.liferay.portal.kernel.service.UserLocalService")
4 author = userService.fetchUser(.vars['reserved-article-author-id'].data?number)
5 title = .vars['reserved-article-title'].data
6 portalURL = themeDisplay.getPortalURL()
7 currentUrl = portalURL + themeDisplay.getURLCurrent()
8 imageUrl = portalURL + .vars['reserved-article-small-image-url'].data
9 srcfb = "https://www.facebook.com/plugins/like.php?href=${currentUrl}&width=172&layout=button_count&action=like&size=small&share=true&height=46&appId"
10 displayDate = .vars['reserved-article-display-date'].data />
11
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<script src="https://www.google.com/recaptcha/api.js"></script>
29<liferay-util:html-top outputKey="htmltop">
30 <meta name="url" property="og:url" content="${currentUrl}" >
31 <meta name="type" property="og:type" content="article" >
32 <meta name="title" property="og:title" content="${.vars['reserved-article-title'].data}" >
33 <meta name="description" property="og:description" content="${.vars['reserved-article-description'].data}" >
34 <meta name="image" property="og:image" content="${imageUrl}" >
35</liferay-util:html-top>
36<div class="shortcode-content hreview">
37 <div class="mb-2" style="display: inline-block;">
38 <span style="font-size: 17px;border-left: 3px solid #ed0678;padding: 5px;background-color: darkgrey;"><a href="${pageUrl}">${pageTitle}</a></span>
39 <span style="font-size: 17px;padding-left: 3px;">${curPageTitle}</span>
40 </div>
41 <div class="article-head py-2">
42 <div class="col-12">
43 <div class="col-4 left">
44 ${displayDate}
45 </div>
46 <div class="col-8 right" style="text-align:right;">
47 <a class="social-thing" onclick="voiceSpeak('contentText','voiceSex')"; style="margin-right: 5px;">
48 <img class="volume-up" src="/o/portal-dt-home-theme/images/icons/trothinh_volume-btn.png" style="vertical-align: middle;opacity: 1;width: 16px;"/>
49 </a>
50 <a id="void-pause" class="social-thing" onclick="voicePause()"; style="margin-right: 1px;display:none;">
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 <span class="fa fa-repeat" style="vertical-align: middle;opacity: 1;width: 13px;color: dimgray;"></span>
55 </a>
56 <a id="void-stop" class="social-thing" onclick="voiceCancel()"; style="margin-right: 1px;display:none;">
57 <span class="fa fa-stop"style="vertical-align: middle;opacity: 1;width: 13px;color: dimgray;"/>
58 </a>
59 <a class="social-thing" style="margin-right: 5px;">
60 <img src="/o/portal-dt-home-theme/images/icons/trothinh_wall-ico.png" style="vertical-align: middle;opacity: 1;width: 1px;height: 13px"/>
61 </a>
62 <a class="social-thing" onclick="giamTuongPhan();" style="margin-right: 5px;">
63 <img src="/o/portal-dt-home-theme/images/icons/trothinh_bright-down-btn.png" style="vertical-align: middle;opacity: 1;width: 16px;"/>
64 </a>
65 <a class="social-thing" onclick="tangTuongPhan();" style="margin-right: 5px;">
66 <img src="/o/portal-dt-home-theme/images/icons/trothinh_bright-up-btn.png" style="vertical-align: middle;opacity: 1;width: 16px;"/>
67 </a>
68 <a class="social-thing" style="margin-right: 5px;">
69 <img src="/o/portal-dt-home-theme/images/icons/trothinh_wall-ico.png" style="vertical-align: middle;opacity: 1;width: 1px;height: 13px"/>
70 </a>
71 <a class="social-thing" onclick="fontMinus();" style="margin-right: 5px;">
72 <img src="/o/portal-dt-home-theme/images/icons/trothinh_zoom-down-btn.png" style="vertical-align: middle;opacity: 1;width: 16px;"/>
73 </a>
74 <a class="social-thing" onclick="fontDefault();" style="margin-right: 5px;">
75 <img src="/o/portal-dt-home-theme/images/icons/trothinh_zoom-btn.png" style="vertical-align: middle;opacity: 1;width: 16px;"/>
76 </a>
77 <a class="social-thing" onclick="fontPlus();" style="margin-right: 5px;">
78 <img src="/o/portal-dt-home-theme/images/icons/trothinh_zoom-up-btn.png" style="vertical-align: middle;opacity: 1;width: 16px;"/>
79 </a>
80 <a class="social-thing" style="margin-right: 5px;">
81 <img src="/o/portal-dt-home-theme/images/icons/trothinh_wall-ico.png" style="vertical-align: middle;opacity: 1;width: 1px;height: 13px"/>
82 </a>
83 <a class="social-thing" onclick="" style="margin-right: 5px;">
84 <img src="/o/portal-dt-home-theme/images/icons/trothinh_print-btn.png" style="vertical-align: middle;opacity: 1;width: 16px;"/>
85 </a>
86 <a class="social-thing" onclick="" style="margin-right: 5px;">
87 <img src="/o/portal-dt-home-theme/images/icons/trothinh_mail-btn.png" style="vertical-align: middle;opacity: 1;width: 16px;height:13px"/>
88 </a>
89 <input type="hidden" id="voiceSex" value="Vietnamese Female"></input>
90 <input type="hidden" id="tuongphan" value="3"></input>
91 </div>
92 </div>
93 </div>
94</div>
95<div class="main-content">
96 <div>
97 <h2 style="color: #ed0678;font-weight: bold;">${title}</h2>
98 </div>
99 <div class="panel">
100 <div class="shortcode-content hreview">
101 <div id="contentText">
102 ${noiDung.getData()}
103 </div>
104 <div class="article-info">
105 <div class="social-buttons left">
106 <div class="zalo-follow-only-button" data-oaid="3540423014405379625"></div>
107 <div class="zalo-share-button" data-href="" data-oaid="4499765515963062717" data-layout="1" data-color="blue" data-customize=false></div>
108 <iframe src="${srcfb}" width="450" height="35" style="border:none;overflow:hidden" scrolling="no" frameborder="0" allowTransparency="true" allow="encrypted-media"></iframe>
109 </div>
110 </div>
111 </div>
112 </div>
113</div>
114
115<#macro getMetadataField
116 fieldName
117 >
118 <#if stringUtil.split(metadataFields)?seq_contains(fieldName)>
119 <span class="metadata-entry metadata-${fieldName}">
120 <#assign dateFormat = "dd MMM yyyy - HH:mm:ss" />
121
122 <#if stringUtil.equals(fieldName, "author")>
123 <@liferay.language key="by" /> ${htmlUtil.escape(portalUtil.getUserName(assetRenderer.getUserId(), assetRenderer.getUserName()))}
124 <#elseif stringUtil.equals(fieldName, "categories")>
125 <@liferay_asset["asset-categories-summary"]
126 className=curEntry.getClassName()
127 classPK=curEntry.getClassPK()
128 portletURL=renderResponse.createRenderURL()
129 />
130 <#elseif stringUtil.equals(fieldName, "create-date")>
131 ${dateUtil.getDate(curEntry.getCreateDate(), dateFormat, locale)}
132 <#elseif stringUtil.equals(fieldName, "expiration-date")>
133 ${dateUtil.getDate(curEntry.getExpirationDate(), dateFormat, locale)}
134 <#elseif stringUtil.equals(fieldName, "modified-date")>
135 ${dateUtil.getDate(curEntry.getModifiedDate(), dateFormat, locale)}
136 <#elseif stringUtil.equals(fieldName, "priority")>
137 ${curEntry.getPriority()}
138 <#elseif stringUtil.equals(fieldName, "publish-date")>
139 ${dateUtil.getDate(curEntry.getPublishDate(), dateFormat, locale)}
140 <#elseif stringUtil.equals(fieldName, "tags")>
141 <@liferay_asset["asset-tags-summary"]
142 className=curEntry.getClassName()
143 classPK=curEntry.getClassPK()
144 portletURL=renderResponse.createRenderURL()
145 />
146 <#elseif stringUtil.equals(fieldName, "view-count")>
147 ${curEntry.getViewCount()} <@liferay.language key="views" />
148 </#if>
149 </span>
150 </#if>
151 </#macro>