S'ha produït un error mentre es processava la plantilla.
Java method "com.sun.proxy.$Proxy2600.getArticle(long, String)" threw an exception when invoked on com.sun.proxy.$Proxy2600 object "com.liferay.journal.change.tracking.internal.service.CTJournalArticleLocalServiceWrapper@1990ec08"; see cause exception in the Java stack trace. ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign article = journalArticleLocal... [in template "34201#34227#43055" at line 297, column 1] ----
1<style>
2 #contentText img{
3 opacity: 1 !important;
4 }
5 .other-news {
6 color: #cb373b;
7 font-weight: bold;
8 margin-top: 5px;
9 margin-bottom: 3px;
10 overflow: hidden;
11 }
12 .other-news:after {
13 content:"";
14 display: inline-block;
15 height: 0.5em;
16 vertical-align: bottom;
17 width: 100%;
18 margin-right: -100%;
19 margin-left: 10px;
20 border-top: 1px solid #cb373b;
21 }
22 .date-span {
23 color: #888888;
24 font-size: 14px;
25 font-weight: normal;
26 }
27 .limit-tit {
28 display: block;
29 text-overflow: ellipsis;
30 word-wrap: break-word;
31 overflow: hidden;
32 max-height: 6em;
33 display: -webkit-box;
34 -webkit-line-clamp: 2;
35 -webkit-box-orient: vertical;
36 margin: 0;
37 }
38 @media only screen and (min-width: 768px) {
39 .other-imgs {
40 height: 60px;
41 }
42 }
43 @media only screen and (max-width: 500px) {
44 .curPage-title {
45 display: none;
46 }
47 .title-divvv {
48 text-align: justify;
49 margin-top: 50px;
50 }
51 }
52 .pagination2 {
53 display: inline-block;
54 }
55
56 .pagination2 a {
57 cursor: pointer;
58 color: black;
59 padding: 8px 16px;
60 text-decoration: none;
61 transition: background-color .3s;
62 border: 1px solid #ddd;
63 margin: 0px;
64 }
65
66 .pagination2 select {
67 cursor: pointer;
68 padding: 6px 6px;
69 margin: 0px;
70 }
71
72 .pagination2 a.active {
73 background-color: #4CAF50;
74 color: white;
75 border: 1px solid #4CAF50;
76 }
77
78 .pagination2 a:hover:not(.active) {
79 background-color: #ddd;
80 }
81 .tieuDe-asset::after {
82 position: absolute;
83 content: "";
84 left: 100%;
85 top: 0;
86 border-top: 14px solid transparent;
87 border-bottom: 15px solid transparent;
88 border-left: 13px solid darkgray;
89 }
90 .asset-full-content.clearfix.mb-5.show-asset-title {
91 margin-bottom: 0 !important;
92 }
93 .article-head {
94 margin-bottom: 0;
95 }
96 @media only screen and (max-width: 768px) {
97 #contentText iframe {
98 width: 100% !important;
99 }
100 .article-head .article-info {
101 margin-bottom: 0;
102 padding: 15px 0 8px 0;
103 }
104 }
105 @media only screen and (max-width: 500px) {
106 .curPage-title {
107 display: unset !important;
108 }
109 }
110 button.quantam {
111 background-color: red;
112 border: red solid 2.5px;
113 border-radius: 3px;
114 color: white;
115 font-size: 13px;
116 }
117 .botting-border {
118 width: 145px;
119 color: #292a32;
120 background: unset;
121 font-family: "Roboto Slab";
122 text-transform: unset;
123 font-weight: bold;
124 font-size: 20px;
125 margin-bottom: 15px;
126 border-bottom: 3px solid #d1d2d4;
127 }
128 .botting-border:after {
129 content: '';
130 display: block;
131 border-bottom: 3px solid #ed0678;
132 margin-bottom: -3px;
133 max-width: 32%;
134 }
135
136 .buttonIn {
137 position: relative;
138 }
139
140 .btnsend {
141 color: #FFF;
142 background-color: #EC0677;
143 border-color: #EC0677;
144 padding: 3px 0.75rem;
145 position: absolute;
146 border-radius: 1px;
147 right: 20px;
148 z-index: 2;
149 border: none;
150 top: 22px;
151 height: 30px;
152 cursor: pointer;
153 transform: translateX(2px);
154 }
155 .button-dt {
156 color: #FFF;
157 background-color: #EC0677;
158 border-color: #EC0677;
159 padding: 3px 0.75rem;
160 border-radius: 1px;
161 height: 30px;
162 margin: 3px;
163 }
164 .button-dt-close {
165 color: #FFF;
166 background-color: #EC0677;
167 border-color: #EC0677;
168 padding: 3px 0.75rem;
169 border-radius: 1px;
170 height: 30px;
171 margin: 3px;
172 }
173 .md-textarea {
174 margin: 0px;
175 padding: 30px 70px 0px 15px;
176 width: 100%;
177 height: 80px;
178 outline: none;
179 border-radius: 3px;
180 }
181 .comment{
182 display: inline-block;
183 margin-top: 5px;
184 width: 100%;
185 }
186 .comment-text{
187 padding-left: 51px;
188 margin-top: -9px;
189 font-size: 14px;
190 }
191
192 .comment-child{
193 margin-left:35px;
194 }
195
196
197 .modal-thongtin {
198 display: none;
199 position: fixed;
200 z-index: 1;
201 padding-top: 100px;
202 left: 0;
203 top: 0;
204 width: 100%;
205 height: 100%;
206 overflow: auto;
207 background-color: rgb(0, 0, 0);
208 background-color: rgba(0, 0, 0, .4);
209 }
210
211 .modal-thongtin-reply {
212 display: none;
213 position: fixed;
214 z-index: 1;
215 padding-top: 100px;
216 left: 0;
217 top: 0;
218 width: 100%;
219 height: 100%;
220 overflow: auto;
221 background-color: rgb(0, 0, 0);
222 background-color: rgba(0, 0, 0, .4);
223 }
224
225 .modal-thongtin-content {
226 background-color: #fefefe;
227 margin: auto;
228 padding: 20px;
229 border: 1px solid #888;
230 width: 60%;
231 }
232
233 .close {
234 color: #aaaaaa;
235 float: right;
236 font-size: 28px;
237 font-weight: bold;
238 }
239
240 .close:hover,
241 .close:focus {
242 color: #000;
243 text-decoration: none;
244 cursor: pointer;
245 }
246
247 .btnreply {
248 color: #FFF;
249 background-color: #EC0677;
250 border-color: #EC0677;
251 padding: 3px 0.75rem;
252 border: none;
253 height: 33px;
254 }
255.tomtat p{
256 text-align: justify;
257 font-size:12pt !important;
258 line-height:160% !important;
259 font-weight:bold;
260}
261sup {
262 top: 6px !important;
263 font-size: 8px !important;
264}
265
266</style>
267
268<script>
269 $(document).ready(function () {
270 const divs = document.querySelectorAll('.nav-link');
271 divs.forEach(el => el.addEventListener('click', event => {
272 location.href = event.target.getAttribute("href");
273
274 }));
275
276 });
277</script>
278<#assign
279 title = .vars['reserved-article-title'].data
280 portalURL = themeDisplay.getPortalURL()
281 currentUrl = portalURL + themeDisplay.getURLCurrent()
282 imageUrl = portalURL + .vars['reserved-article-small-image-url'].data
283 srcfb = "https://www.facebook.com/plugins/like.php?href=${currentUrl}&width=172&layout=button_count&action=like&size=small&share=true&height=46&appId=2034212100232051"
284 displayDate = .vars['reserved-article-display-date'].data
285 summary = .vars['reserved-article-description'].data/>
286
287
288
289<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
290
291<#assign scopeId = themeDisplay.getScopeGroupId()>
292
293<#assign thumnail_logo = "https://thunghiem.dongthap.gov.vn/o/portal-dt-home-theme/images/dong-thap/banner-vietnamese.jpg">
294
295<#assign contentId = .vars['reserved-article-id'].data>
296
297<#assign article = journalArticleLocalService.getArticle(getterUtil.getLong(scopeId), contentId)>
298<#assign articlePrimKey = article.resourcePrimKey>
299<#assign userLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.UserLocalService")>
300<#assign catLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")>
301<#assign articleCatId = catLocalService.getCategoryIds("com.liferay.journal.model.JournalArticle", getterUtil.getLong(articlePrimKey))>
302
303<#assign categoryList = catLocalService.getAssetEntryAssetCategories(getterUtil.getLong(articlePrimKey))>
304
305<#assign layoutService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") />
306<#if (request.getParameter("plidlayout")?has_content)>
307 <#assign plidlayout = request.getParameter("plidlayout") />
308 <#else>
309 <#assign plidlayout = 2 />
310</#if>
311<#assign layout = layoutService.fetchLayout(plidlayout?number) />
312<#assign curLayout = layoutService.fetchLayout(plid?number) />
313<#assign pageTitle = layout.getName(locale) />
314<#assign pageUrl = layout.getFriendlyURL(locale) />
315<#assign curPageTitle = curLayout.getName(locale) />
316<#assign originalLocale = .locale>
317<#setting locale = localeUtil.getDefault()>
318<#assign displayDate = displayDate?datetime("EEE, d MMM yyyy HH:mm:ss Z")>
319<#assign locale = originalLocale>
320<#assign displayDate = displayDate?string("HH:mm dd/MM/yyyy")>
321
322<#assign listLayoutDHD = [5474,5512,179]>
323<#assign layo = themeDisplay.getPlid() />
324<#assign articleCatIds = "" />
325<#list articleCatId as item>
326 <#assign articleCatIds = articleCatIds + item + "," />
327</#list>
328
329<#assign assetEntryQueryService = objectUtil('com.liferay.asset.kernel.service.AssetEntryLocalServiceUtil')>
330
331<#assign assetEntryQuery = objectUtil('com.liferay.asset.kernel.service.persistence.AssetEntryQuery')>
332
333<@liferay_util["html-top"]>
334 <meta name="title" property="og:title" content="${title}"/>
335 <meta name="image" property="og:image" content="${imageUrl}"/>
336 <meta name="imageurl" property="og:image:url" content="${imageUrl}"/>
337 <meta name="description" property="og:description" content="${summary}"/>
338 <meta name="url" property="og:url" content="${currentUrl}"/>
339 </@>
340 <liferay-util:html-top outputKey="htmltop">
341 <meta name="title" property="og:title" content="${title}"/>
342 <meta name="image" property="og:image" content="${imageUrl}"/>
343 <meta name="imageurl" property="og:image:url" content="${imageUrl}"/>
344 <meta name="description" property="og:description" content="${summary?replace("<p>","")?replace("</p>","")}"/>
345 <meta name="url" property="og:url" content="${currentUrl}"/>
346 <meta property="og:image:width" content="600" />
347 <meta property="og:image:height" content="315" />
348 <meta property="og:description" content="${title}" />
349 <meta property="og:site_name" content="${currentUrl}" />
350</liferay-util:html-top>
351<script src="https://sp.zalo.me/plugins/sdk.js"></script>
352
353<#assign search = assetEntryQuery.setAllCategoryIds(articleCatId)>
354<#assign search = assetEntryQuery.setOrderByCol1("publishDate")/>
355<#assign search = assetEntryQuery.setStart(0)/>
356<#assign search = assetEntryQuery.setEnd(10)/>
357<#assign search = assetEntryQuery.setOrderByType1("DESC")/>
358
359<#assign teste = assetEntryQueryService.getEntries(assetEntryQuery)
360 totalPage = 0/>
361
362 <meta name="DC.Description" content="${summary?replace("<p>","")?replace("</p>","")}">
363 <meta name="DC.DateCreated" content="${displayDate}">
364 <meta name="DC.Title" content="${title}">
365 <meta name="DC.Coverage" content="Việt Nam">
366 <meta name="DC.Creator" content="Admin Cổng thông tin Đồng Tháp">
367 <meta name="DC.Publisher" content="Cơ quan phát ngôn của tỉnh Đồng Tháp">
368 <meta name="DC.Subject" content="${title}">
369 <meta name="DC.Relation" content="">
370 <meta name="DC.Rights" content="Bất kỳ ai cũng có quyền truy cập">
371 <meta name="DC.Type" content="Text">
372 <meta name="DC.DateIssued" content="${displayDate}">
373 <meta name="DC.Format" content="text/html">
374 <meta name="DC.Identifier" content="https://dongthap.gov.vn">
375 <meta name="DC.Language" content="Việt Nam">
376 <meta name="DC.DateValid" content="${displayDate}">
377 <meta name="DC.DateModified" content="${displayDate}">
378
379<script>
380
381
382 $(document).ready(function () {
383 var modal = $('.modal-thongtin');
384 var btn = $('.btnsend');
385 var button_dt = $('.button-dt');
386 var button_dt_close = $('.button-dt-close');
387 var span = $('.close');
388 var baiVietId = $('#baiVietId');
389 var tieuDe = $('#tieuDe');
390 var commentContent = $('#commentContent');
391 var commentName = $('#commentName');
392 var commentAddress = $('#commentAddress');
393 var commentEmail = $('#commentEmail');
394
395 btn.click(function () {
396 if (commentContent.val().length == 0) {
397 alert('Vui lòng nhập nội dung ý kiến!');
398 } else {
399 modal.show();
400 btn.hide();
401 }
402 });
403
404 button_dt.click(function () {
405 const valid = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
406 if (commentName.val().length == 0) {
407 commentName.css('border-color', 'red');
408 commentName.focus();
409 } else if (commentAddress.val().length == 0) {
410 commentAddress.css('border-color', 'red');
411 commentAddress.focus();
412 } else if (commentEmail.val().length == 0) {
413 commentEmail.css('border-color', 'red');
414 commentEmail.focus();
415 } else if (!valid.test(commentEmail.val())) {
416 commentEmail.css('border-color', 'red');
417 commentEmail.focus();
418 alert('Vui lòng nhập đúng email!');
419 }else {
420 comment(baiVietId.val(), tieuDe.val(), commentContent.val(), commentName.val(), commentAddress.val(), commentEmail.val(), ${groupId});
421 commentContent.val('');
422 commentName.val('');
423 commentAddress.val('');
424 commentEmail.val('');
425 modal.hide();
426 btn.show();
427
428 }
429 });
430
431 button_dt_close.click(function () {
432 commentContent.val('');
433 commentName.val('');
434 commentAddress.val('');
435 commentEmail.val('');
436 commentName.css('border-color', '#ccc');
437 commentAddress.css('border-color', '#ccc');
438 commentEmail.css('border-color', '#ccc');
439 modal.hide();
440 btn.show();
441
442 });
443
444 span.click(function () {
445 commentContent.val('');
446 commentName.val('');
447 commentAddress.val('');
448 commentEmail.val('');
449 modal.hide();
450 $('.replyBox').hide();
451 btn.show();
452
453 $('.inputReplyContent').val('');
454 commentNameReply.val('');
455 commentAddressReply.val('');
456 commentEmailReply.val('');
457 modal_reply.hide();
458 $('.replyBox').hide();
459 btnreply.show();
460 });
461
462 $(window).on('click', function (e) {
463 if ($(e.target).is('.modal-thongtin')) {
464 commentContent.val('');
465 commentName.val('');
466 commentAddress.val('');
467 commentEmail.val('');
468 modal.hide();
469 btn.show();
470 }
471 if ($(e.target).is('.modal-thongtin-reply')) {
472 $('.inputReplyContent').val('');
473 commentNameReply.val('');
474 commentAddressReply.val('');
475 commentEmailReply.val('');
476 modal_reply.hide();
477 btnreply.show();
478 }
479 });
480
481
482 var modal_reply = $('.modal-thongtin-reply');
483 var btnreply = $('.btnreply');
484 var button_dt_reply = $('.button-dt-reply');
485 var button_dt_reply_close = $('.button-dt-reply-close');
486 var span = $('.close');
487 var commentNameReply = $('#commentNameReply');
488 var commentAddressReply = $('#commentAddressReply');
489 var commentEmailReply = $('#commentEmailReply');
490
491 function submitreply() {
492 var commentId = $('#commentId').val();
493 if ($('#inputReplyContent' + commentId).val().length == 0) {
494 alert('Vui lòng nhập nội dung ý kiến!');
495 } else {
496 modal_reply.show();
497 $('#commentContentReply').val($('#inputReplyContent' + commentId).val());
498 btnreply.hide();
499 }
500 }
501
502 button_dt_reply.click(function () {
503 if (commentNameReply.val().length == 0) {
504 commentNameReply.css('border-color', 'red');
505 } else if (commentAddressReply.val().length == 0) {
506 commentAddressReply.css('border-color', 'red');
507 } else if (commentEmailReply.val().length == 0) {
508 commentEmailReply.css('border-color', 'red');
509 } else {
510 replyComment($('#commentId').val(),baiVietId.val(), tieuDe.val(), $('#commentContentReply').val(), commentNameReply.val(), commentAddressReply.val(), commentEmailReply.val());
511 $('.inputReplyContent').val('');
512 commentNameReply.val('');
513 commentAddressReply.val('');
514 commentEmailReply.val('');
515 modal_reply.hide();
516 }
517 });
518
519 button_dt_reply_close.click(function () {
520 $('.inputReplyContent').val('');
521 commentNameReply.val('');
522 commentAddressReply.val('');
523 commentEmailReply.val('');
524 modal_reply.hide();
525
526 });
527 });
528
529 function submitreply() {
530 var commentId = $('#commentId').val();
531 if ($('#inputReplyContent' + commentId).val().length == 0) {
532 alert('Vui lòng nhập nội dung ý kiến!');
533 } else {
534 $('.modal-thongtin-reply').show();
535 $('#commentContentReply').val($('#inputReplyContent' + commentId).val());
536 $('.btnreply').hide();
537 }
538 }
539
540 function changePageSize(){
541 var pageSize = $('#pageSize').val();
542 var pageIndex = $('#pageIndex').val();
543 paginate(pageIndex, pageSize);
544 }
545
546 function changePageIndex(){
547 var pageSize = $('#pageSize').val();
548 var pageIndex = $('#pageIndex').val();
549 $('#curPage').val(pageIndex);
550 paginate(pageIndex, pageSize);
551 }
552
553
554
555</script>
556<script type="text/javascript" src="https://dongthap.gov.vn/documents/34223/0/html2pdf.js"></script>
557<script>
558 function generatePDF() {
559 // Choose the element that our invoice is rendered in.
560 const element = document.getElementById("contentText");
561 // Choose the element and save the PDF for our user.
562 html2pdf()
563 .from(element)
564 .save();
565 }
566 </script>
567<script src="https://sp.zalo.me/plugins/sdk.js"></script>
568<div class="main-content">
569 <div class="panel" id="main-body">
570 <div class="shortcode-content hreview">
571 <#if listLayoutDHD?seq_index_of(layo) > -1 >
572 <div class="brumnoidung">
573 <ul class="breadcrumb">
574 <li class="breadcrumb-item crum1"><a href="/home">Trang chủ</a></li>
575 <li class="breadcrumb-item active">Tin tức</li>
576 </ul>
577 </div>
578 <#else>
579 <span style="position: relative;font-weight: bold;font-size: 17px;border-left: 3px solid #ed0678;padding: 5px;background-color: darkgrey;" class="tieuDe-asset">
580 <a href="https://dongthap.gov.vn">Trang chủ</a>
581 </span>
582 <#assign journalArticleId = .vars['reserved-article-id'].data>
583 <#assign journalArticleResourceLocalServiceUtil = staticUtil["com.liferay.journal.service.JournalArticleResourceLocalServiceUtil"]>
584 <#assign assetCategoryLocalServiceUtil = staticUtil["com.liferay.asset.kernel.service.AssetCategoryLocalServiceUtil"]>
585
586 <#assign articleResourcePK = journalArticleResourceLocalServiceUtil.getArticleResourcePrimKey(groupId, journalArticleId)/>
587 <#assign categoryList=assetCategoryLocalServiceUtil.getCategories("com.liferay.journal.model.JournalArticle",articleResourcePK) >
588
589 <#list categoryList as thisCategory>
590 <#if (thisCategory_index==0)>
591 <span class="curPage-title" style="font-size: 17px;padding-left: 17px;font-weight: bold;">${thisCategory.getName()}</span>
592 </#if>
593 </#list>
594 </#if>
595
596 <div class="article-head">
597 <div class="article-info" style="border-top: 0px;border-bottom: 0px;margin-left: 11px;">
598 <div class="social-buttons left">
599 ${displayDate}
600 </div>
601 <div class="social-buttons right">
602 <a class="social-thing" onclick="voiceSpeak('contentText','voiceSex')"; style="margin-right: 5px;"
603 data-toggle="tooltip" title="Đọc bài viết">
604 <img class="volume-up" src="/o/portal-dt-home-theme/images/icons/trothinh_volume-btn.png" style="vertical-align: middle;opacity: 1;width: 16px;"/>
605 </a>
606 <a id="void-pause" class="social-thing" onclick="voicePause()"; style="margin-right: 1px;display:none;"
607 data-toggle="tooltip" title="Tạm dừng đọc">
608 <span class="fa fa-pause" style="vertical-align: middle;opacity: 1;width: 13px;color: dimgray;"/>
609 </a>
610 <a id="void-resume" class="social-thing" onclick="voiceResume()"; style="margin-right: 1px;display:none;"
611 data-toggle="tooltip" title="Tiếp tục đọc">
612 <span class="fa fa-repeat" style="vertical-align: middle;opacity: 1;width: 13px;color: dimgray;"></span>
613 </a>
614 <a id="void-stop" class="social-thing" onclick="voiceCancel()"; style="margin-right: 1px;display:none;"
615 data-toggle="tooltip" title="Dừng đọc">
616 <span class="fa fa-stop"style="vertical-align: middle;opacity: 1;width: 13px;color: dimgray;"/>
617 </a>
618 <a class="social-thing" style="margin-right: 5px;">
619 <img src="/o/portal-dt-home-theme/images/icons/trothinh_wall-ico.png" style="vertical-align: middle;opacity: 1;width: 1px;height: 13px"/>
620 </a>
621 <a class="social-thing" onclick="giamTuongPhan();" style="margin-right: 5px;"
622 data-toggle="tooltip" title="Giảm tương phản">
623 <img src="/o/portal-dt-home-theme/images/icons/trothinh_bright-down-btn.png" style="vertical-align: middle;opacity: 1;width: 16px;"/>
624 </a>
625 <a class="social-thing" onclick="tangTuongPhan();" style="margin-right: 5px;"
626 data-toggle="tooltip" title="Tăng tương phản">
627 <img src="/o/portal-dt-home-theme/images/icons/trothinh_bright-up-btn.png" style="vertical-align: middle;opacity: 1;width: 16px;"/>
628 </a>
629 <a class="social-thing" style="margin-right: 5px;">
630 <img src="/o/portal-dt-home-theme/images/icons/trothinh_wall-ico.png" style="vertical-align: middle;opacity: 1;width: 1px;height: 13px"/>
631 </a>
632 <a class="social-thing" onclick="fontMinus();" style="margin-right: 5px;"
633 data-toggle="tooltip" title="Giảm cỡ chữ">
634 <img src="/o/portal-dt-home-theme/images/icons/trothinh_zoom-down-btn.png" style="vertical-align: middle;opacity: 1;width: 16px;"/>
635 </a>
636 <a class="social-thing" onclick="fontDefault();" style="margin-right: 5px;"
637 data-toggle="tooltip" title="Cỡ chữ mặc định">
638 <img src="/o/portal-dt-home-theme/images/icons/trothinh_zoom-btn.png" style="vertical-align: middle;opacity: 1;width: 16px;"/>
639 </a>
640 <a class="social-thing" onclick="fontPlus();" style="margin-right: 5px;"
641 data-toggle="tooltip" title="Tăng cỡ chữ">
642 <img src="/o/portal-dt-home-theme/images/icons/trothinh_zoom-up-btn.png" style="vertical-align: middle;opacity: 1;width: 16px;"/>
643 </a>
644 <a class="social-thing" style="margin-right: 5px;">
645 <img src="/o/portal-dt-home-theme/images/icons/trothinh_wall-ico.png" style="vertical-align: middle;opacity: 1;width: 1px;height: 13px"/>
646 </a>
647 <a class="social-thing" onclick="printPage('contentText');" style="margin-right: 5px;"
648 data-toggle="tooltip" title="In bài viết">
649 <img src="/o/portal-dt-home-theme/images/icons/trothinh_print-btn.png" style="vertical-align: middle;opacity: 1;width: 16px;"/>
650 </a>
651 <a class="social-thing" onclick="generatePDF();" style="margin-right: 5px;"
652 data-toggle="tooltip" title="Lưu bài viết">
653 <img src="https://dongthap.gov.vn/documents/34223/4699960/dl.png" style="vertical-align: middle;opacity: 1;width: 16px;"/>
654 </a>
655 <a class="social-thing" href="https://mail.google.com/mail/?view=cm&fs=1&su=${title}&body=${currentUrl}" style="margin-right: 5px;"
656 data-toggle="tooltip" title="Gửi mail" target="_blank">
657 <img src="/o/portal-dt-home-theme/images/icons/trothinh_mail-btn.png" style="vertical-align: middle;opacity: 1;width: 16px;height:13px"/>
658 </a>
659 </div>
660 <input type="hidden" id="voiceSex" value="Vietnamese Female"></input>
661 <input type="hidden" id="tuongphan" value="3"></input>
662 <input type="hidden" id="baiVietId" name="baiVietId" value="${articlePrimKey}"></input>
663 <input type="hidden" id="commentId" name="commentId" value=""></input>
664 <input type="hidden" id="tieuDe" name="tieuDe" value="${title?html}"></input>
665 <input type="hidden" id="articleCatIds" name="articleCatIds" value="${articleCatIds}"></input>
666 <input type="hidden" value="1" id="curPage"/>
667 <input type="hidden" value="0" id="totalRelated"/>
668 </div>
669 </div>
670 </div>
671
672 <div id="contentText" style="margin:10px">
673 <input type="hidden" id="thumbnailUrl" name="thumbnailUrl" value="${imageUrl}"></input>
674 <h2 class="title-divvv" style="color: #ed0678;font-weight: bold;">${title}</h2>
675 <div class="tomtat">${summary}</div>
676 ${noiDung.getData()}
677 </div>
678 <div class="mb-3 pr-3" style="width:100%;display: inline-block;">
679 <#if tacGia?has_content && tacGia.getOptions()?has_content>
680 <#list tacGia.getOptions() as item>
681 <#if item?has_content>
682 <#assign u = userLocalService.fetchUser(item?number)/>
683 <#if u?has_content>
684 <#if u.getExpandoBridge()?has_content && u.getExpandoBridge().getAttribute("Bút danh")?has_content && u.getExpandoBridge().getAttribute("Email cá nhân")?has_content>
685 <#assign ten = u.getExpandoBridge().getAttribute("Bút danh")/>
686 <#assign email = u.getExpandoBridge().getAttribute("Email cá nhân")/>
687 </#if>
688 <#assign portraitURL = u.getPortraitURL(themeDisplay)/>
689 <#if ten?has_content && email?has_content>
690 <div class="right d-flex ml-3">
691 <div style="text-align:right">
692 <span><b>${ten}</b></span><br>
693 <span>${email}</span>
694 </div>
695 <div class="ml-2">
696 <span class="sticker">
697 <span class="inline-item" id="personal-menu-icon-wrapper">
698 <span class="rounded-circle sticker" style="width:2.5rem;height:2.5rem">
699 <span class="sticker-overlay">
700 <img alt="thumbnail" class="img-fluid" src="${portraitURL}">
701 </span>
702 </span>
703 </span>
704 </span>
705 </div>
706 </div>
707 </#if>
708 </#if>
709 </#if>
710 </#list>
711 </#if>
712 <#if congTacVien?has_content && congTacVien.tenCongTacVien?has_content && congTacVien.emailCongTacVien?has_content && congTacVien.tenCongTacVien.getData()?has_content>
713 <#assign tenCongTacVien = congTacVien.tenCongTacVien.getData()/>
714 <#assign emailCongTacVien = congTacVien.emailCongTacVien.getData()/>
715 <div class="right d-flex ml-3">
716 <div style="text-align:right">
717 <span><b>${tenCongTacVien}</b></span><br>
718 <span>${emailCongTacVien}</span>
719 </div>
720 <div class="ml-2">
721 <span class="sticker">
722 <span class="inline-item" id="personal-menu-icon-wrapper">
723 <span class="rounded-circle sticker" style="width:2.5rem;height:2.5rem">
724 <span class="sticker-overlay">
725 <img alt="thumbnail" class="img-fluid" src="/documents/34223/2640277/avata.jpg">
726 </span>
727 </span>
728 </span>
729 </span>
730 </div>
731 </div>
732 </#if>
733 </div>
734
735 <div class="article-info">
736 <div class="social-buttons">
737 <button class="quantam" id="quantam" onclick="follow(${articlePrimKey},'${title?html}');">
738 </button>
739 <!-- <div class="zalo-follow-only-button" data-oaid="3540423014405379625" style="width: 88px;"></div> -->
740 <div class="zalo-share-button" data-href="${currentUrl}" data-oaid="4499765515963062717" data-layout="1" data-color="blue"></div>
741 <iframe src="${srcfb}" width="140" height="35" style="border:none;overflow:hidden" scrolling="no" frameborder="0" allowTransparency="true" allow="encrypted-media"></iframe>
742 </div>
743 <#if listLayoutDHD?seq_index_of(layo) > -1 >
744 <#if teste?has_content>
745 <div class="tinkhac">
746 <div class="bg-tinkhac"></div>
747 <ul class="list-unstyled">
748 <#list teste as curEntryyy>
749 <#assign
750 renderer = curEntryyy.getAssetRenderer()
751 className = renderer.getClassName() />
752 <#if className == "com.liferay.journal.model.JournalArticle">
753 <#assign
754 title = curEntryyy.getTitle(locale)
755 article = renderer.getArticle()
756 description = article.getDescription(locale)
757 curEntryyy = curEntryyy
758 viewURL = "/chi-tiet-chuyen-trang-dh-dang/-/asset_publisher/hPvLbtAWEWEb/content/id/${curEntryyy.getEntryId()}?plidlayout=${themeDisplay.getLayout().getPlid()}" />
759 <#if description?has_content && description?length > 300>
760 <#assign description = description?substring(0,300) + " ..."/>
761 </#if>
762
763 <#if curEntryyy.getAssetRenderer().getThumbnailPath(renderRequest)??>
764 <#assign smallImageUrl = curEntryyy.getAssetRenderer().getThumbnailPath(renderRequest) >
765 <#else>
766 <#assign smallImageUrl = "" >
767 </#if>
768 <li><a href="${viewURL}">${title}</a></li>
769
770 </#if>
771 </#list>
772 </ul>
773 </div>
774 </#if>
775 <#else>
776 <div class="social-buttons right">
777 <div>
778 <p class="other-news">CÓ THỂ BẠN QUAN TÂM</p>
779 </div>
780 <div class="row ml-0 mr-0 relatedentry" id="relatedentry">
781
782 </div>
783 </div>
784 </#if>
785
786 <div style="text-align: center">
787 <div class="pagination2" style="position: relative; justify-content: center;">
788 Hiển thị
789 <select id="pageSize" onchange="changePageSize();">
790 <option>6</option>
791 <option>10</option>
792 <option>20</option>
793 </select>
794 Tới trang
795 <select id="pageIndex" onchange="changePageIndex();">
796 <option>1</option>
797 </select>
798 của <span id="totalPage" style="vertical-align: middle;font-size: 12px;">135</span>
799 <a id="previousP" onclick="previousPP();"><</a>
800 <a id="nextP" onclick="nextPP();">></a>
801 </div>
802 </div>
803 </div>
804
805 <h2 class="botting-border">Ý kiến của bạn</h2>
806 <section class="form-gradient">
807 <div style="padding-bottom: 1px" class="buttonIn">
808 <textarea id="commentContent" class="md-textarea" rows="3" required="true" placeholder="Nhập ý kiến của bạn..."></textarea>
809 <button type="button" class="btnsend"><i class="fa fa-paper-plane"></i> Gửi</button>
810 </div>
811 <form>
812 <div class="modal-thongtin">
813 <div class="modal-thongtin-content">
814 <span class="close">×</span>
815 <h3>Thông tin độc giả</h3>
816 <div class="row mb-2">
817 <div class="col-sm-2 align-self-center">
818 <label for="commentName" class="mb-1">Họ tên (<red style="color: red;">*</red>)</label>
819 </div>
820 <div class="col-sm-10 pl-2">
821 <input type="text" id="commentName" class="form-control" required="true">
822 </div>
823 </div>
824 <div class="row mb-2">
825 <div class="col-sm-2 align-self-center">
826 <label for="commentAddress" class="mb-1">Địa chỉ (<red style="color: red;">*</red>)</label>
827 </div>
828 <div class="col-sm-10 pl-2">
829 <input type="text" id="commentAddress" class="form-control" required="true">
830 </div>
831 </div>
832 <div class="row mb-2">
833 <div class="col-sm-2 align-self-center">
834 <label for="commentEmail" class="mb-1">Địa chỉ email (<red style="color: red;">*</red>)</label>
835 </div>
836 <div class="col-sm-10 pl-2">
837 <input type="email" id="commentEmail" class="form-control valid-email" required="true">
838 </div>
839 </div>
840 <div class="d-flex justify-content-end" style="margin: 0 24px 10px 0">
841 <button type="button" class="button-dt"><i class="fa fa-paper-plane"></i> Gửi</button>
842 <button type="button" class="button-dt-close">Đóng</button>
843 </div>
844 </div>
845 </div>
846 </form>
847 <form>
848 <div class="modal-thongtin-reply">
849 <div class="modal-thongtin-content">
850 <span class="close">×</span>
851 <h3>Thông tin độc giả</h3>
852 <div class="row mb-2">
853 <div class="col-sm-2 align-self-center">
854 <label for="commentNameReply" class="mb-1">Họ tên (<red style="color: red;">*</red>)</label>
855 </div>
856 <div class="col-sm-10 pl-2">
857 <input type="text" id="commentNameReply" class="form-control" required="true">
858 <input type="hidden" id="commentContentReply" class="form-control" required="true">
859 </div>
860 </div>
861 <div class="row mb-2">
862 <div class="col-sm-2 align-self-center">
863 <label for="commentAddressReply" class="mb-1">Địa chỉ (<red style="color: red;">*</red>)</label>
864 </div>
865 <div class="col-sm-10 pl-2">
866 <input type="text" id="commentAddressReply" class="form-control" required="true">
867 </div>
868 </div>
869 <div class="row mb-2">
870 <div class="col-sm-2 align-self-center">
871 <label for="commentEmailReply" class="mb-1">Địa chỉ email (<red style="color: red;">*</red>)</label>
872 </div>
873 <div class="col-sm-10 pl-2">
874 <input type="email" id="commentEmailReply" class="form-control valid-email" required="true">
875 </div>
876 </div>
877 <div class="d-flex justify-content-end" style="margin: 0 24px 10px 0">
878 <button type="button" class="button-dt-reply"><i class="fa fa-paper-plane"></i> Gửi</button>
879 <button type="button" class="button-dt-reply-close">Đóng</button>
880 </div>
881 </div>
882 </div>
883 </form>
884 </section>
885 <div class="comment-list">
886 <div style="width:100%;display:inline-block;background: gainsboro;">
887 <p style="color:#ed0678;margin: 4px;" class="left"><b>Ý kiến bạn đọc</b> (<span id="comment-count">0</span>)</p>
888 </div>
889 <div id="comment-show-list">
890
891 </div>
892 </div>
893
894 </div>
895</div>
896<#macro getMetadataField
897 fieldName
898 >
899 <#if stringUtil.split(metadataFields)?seq_contains(fieldName)>
900 <span class="metadata-entry metadata-${fieldName}">
901 <#assign dateFormat = "dd MMM yyyy - HH:mm:ss" />
902
903 <#if stringUtil.equals(fieldName, "author")>
904 <@liferay.language key="by" /> ${htmlUtil.escape(portalUtil.getUserName(assetRenderer.getUserId(), assetRenderer.getUserName()))}
905 <#elseif stringUtil.equals(fieldName, "categories")>
906 <@liferay_asset["asset-categories-summary"]
907 className=curEntry.getClassName()
908 classPK=curEntry.getClassPK()
909 portletURL=renderResponse.createRenderURL()
910 />
911 <#elseif stringUtil.equals(fieldName, "create-date")>
912 ${dateUtil.getDate(curEntry.getCreateDate(), dateFormat, locale)}
913 <#elseif stringUtil.equals(fieldName, "expiration-date")>
914 ${dateUtil.getDate(curEntry.getExpirationDate(), dateFormat, locale)}
915 <#elseif stringUtil.equals(fieldName, "modified-date")>
916 ${dateUtil.getDate(curEntry.getModifiedDate(), dateFormat, locale)}
917 <#elseif stringUtil.equals(fieldName, "priority")>
918 ${curEntry.getPriority()}
919 <#elseif stringUtil.equals(fieldName, "publish-date")>
920 ${dateUtil.getDate(curEntry.getPublishDate(), dateFormat, locale)}
921 <#elseif stringUtil.equals(fieldName, "tags")>
922 <@liferay_asset["asset-tags-summary"]
923 className=curEntry.getClassName()
924 classPK=curEntry.getClassPK()
925 portletURL=renderResponse.createRenderURL()
926 />
927 <#elseif stringUtil.equals(fieldName, "view-count")>
928 ${curEntry.getViewCount()} <@liferay.language key="views" />
929 </#if>
930 </span>
931 </#if>
932</#macro>