Asset Publisher

TP.Hồ Chí Minh được giao thu ngân sách trên 506.000 tỉ đồng năm 2025

An error occurred while processing the template.
Java method "com.sun.proxy.$Proxy771.getArticle(long, String)" threw an exception when invoked on com.sun.proxy.$Proxy771 object "com.liferay.journal.service.impl.JournalArticleLocalServiceImpl@3c3379ee"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign currentArticle = JournalArtic...  [in template "20097#20123#" at line 690, column 1]
----
1<style> 
2    .align-items-center.d-flex.mb-2 { 
3        display: none !important; 
4
5    .autofit-row.mb-4.metadata-author { 
6        display: none; 
7
8    .asset-anchor.lfr-asset-anchor { 
9        display: none; 
10
11    .liferayckevideo.video-container video { 
12        width: 100% !important; 
13        height: auto !important; 
14
15 
16    .social-buttons { 
17        display: flex; 
18
19 
20    .article-head { 
21        margin-bottom: 0; 
22
23 
24    .botting-border { 
25        color: #292a32; 
26        background: unset; 
27        font-family: "Roboto"; 
28        text-transform: unset; 
29        font-weight: bold; 
30        font-size: 20px; 
31        margin-bottom: 15px; 
32        border-bottom: 3px solid #d1d2d4; 
33
34 
35    .buttonIn { 
36        position: relative; 
37
38 
39    .btnsend { 
40        color: #FFF; 
41        border-color: #f70000; 
42        padding: 3px 0.75rem; 
43        border: none; 
44        height: 42px; 
45        cursor: pointer; 
46        border-radius: 6px; 
47        background: #C8392B; 
48        margin-top: 17px; 
49        font-size: 14px; 
50        font-style: normal; 
51        font-weight: 700; 
52        line-height: 130%; /* 18.2px */ 
53        letter-spacing: 0.021px; 
54
55 
56    .button-dt { 
57        color: #FFF; 
58        background-color: #f70000; 
59        border-color: #f70000; 
60        padding: 3px 0.75rem; 
61        border-radius: 5px; 
62        margin: 2px; 
63
64 
65    .button-dt-close { 
66        color: #FFF; 
67        background-color: #f70000; 
68        border-color: #f70000; 
69        padding: 3px 0.75rem; 
70        border-radius: 5px; 
71        margin: 2px; 
72
73 
74    .md-textarea { 
75        width: 100%; 
76
77 
78    .comment { 
79        display: inline-block; 
80        margin-top: 5px; 
81        width: 100%; 
82
83 
84    .comment-text { 
85        padding-left: 51px; 
86        margin-top: -9px; 
87        font-size: 14px; 
88
89 
90    .comment-child { 
91        margin-left: 35px; 
92
93 
94 
95    .modal-thongtin { 
96        display: none; 
97        position: fixed; 
98        z-index: 1111; 
99        padding-top: 100px; 
100        left: 0; 
101        top: 0; 
102        width: 100%; 
103        height: 100%; 
104        overflow: auto; 
105        background-color: rgb(0, 0, 0); 
106        background-color: rgba(0, 0, 0, .4); 
107
108 
109    .modal-thongtin-reply { 
110        display: none; 
111        position: fixed; 
112        z-index: 1; 
113        padding-top: 100px; 
114        left: 0; 
115        top: 0; 
116        width: 100%; 
117        height: 100%; 
118        overflow: auto; 
119        background-color: rgb(0, 0, 0); 
120        background-color: rgba(0, 0, 0, .4); 
121
122 
123 
124    .close { 
125        color: #aaaaaa; 
126        float: right; 
127        font-size: 28px; 
128        font-weight: bold; 
129
130 
131    .close:hover, 
132    .close:focus { 
133        color: #000; 
134        text-decoration: none; 
135        cursor: pointer; 
136
137 
138    .btnreply { 
139        color: #FFF; 
140        background-color: #f70000; 
141        border-color: #f70000; 
142        padding: 3px 0.75rem; 
143        border-radius: 5px; 
144        height: 28px; 
145        border: none; 
146        float: right; 
147
148 
149    .autofit-float.autofit-row.portlet-header { 
150        display: none; 
151
152 
153    .breadcrumb > li.active { 
154        color: #f70000; 
155
156 
157    .zalo-share-button { 
158        width: 158px !important; 
159
160 
161    iframe { 
162        min-width: 92px; 
163
164 
165    @media only screen and (min-width: 768px) { 
166        .other-imgs { 
167            height: 60px; 
168
169 
170        .modal-thongtin-content { 
171            background-color: #fefefe; 
172            margin: auto; 
173            padding: 20px; 
174            border: 1px solid #888; 
175            width: 60%; 
176
177
178 
179    @media only screen and (max-width: 768px) { 
180        .pagination2 a { 
181            cursor: pointer; 
182            color: black; 
183            padding: 3px 8px; 
184            text-decoration: none; 
185            transition: background-color .3s; 
186            margin: 0px; 
187            border-radius: 5px; 
188            background: #ddd; 
189
190 
191        .curPage-title { 
192            display: none; 
193
194 
195        h3.title-divvv { 
196            text-align: justify; 
197            margin-top: 16px; 
198            color: var(--darkdefault-212529, #212529); 
199            /*font-family: Roboto;*/ 
200            font-size: 22px; 
201            font-style: normal; 
202            font-weight: 700; 
203            line-height: normal; 
204            letter-spacing: -0.28px; 
205
206 
207        #contentText iframe { 
208            width: 100% !important; 
209
210 
211        .detail-social > a:hover { 
212            cursor: pointer; 
213
214 
215        .article-head .article-info { 
216            margin-bottom: 0; 
217            padding: 4px 0 8px 0; 
218            font-size: 14px; 
219            height: 59px !important; 
220
221 
222        .modal-thongtin-content { 
223            background-color: #fefefe; 
224            margin: auto; 
225            padding: 20px; 
226            border: 1px solid #888; 
227            width: 100%; 
228
229
230 
231    span.sticker-overlay { 
232        background: var(--main-color-background); 
233        color: var(--main-color-text); 
234        opacity: 0.8; 
235
236 
237 
238 
239 
240    .detail__flex { 
241        display: flex; 
242
243 
244    .sp-dislaydate { 
245        color: var(--darkdefault-212529, #212529); 
246        font-size: 16px; 
247        font-style: normal; 
248        font-weight: 400; 
249        line-height: 130%; 
250        letter-spacing: 0.08px; 
251        border-left: 3px solid #212529; 
252        margin-bottom: 18.5px; 
253        padding-left: 12px; 
254        margin-top: 40px; 
255
256 
257    .title-divvv { 
258        text-align: justify; 
259        margin-top: 16px; 
260        color: var(--darkdefault-212529, #212529); 
261        font-size: 22px; 
262        font-style: normal; 
263        font-weight: 700; 
264        line-height: normal; 
265        letter-spacing: -0.28px; 
266
267 
268    #contentText table { 
269        width: 100% !important; 
270        text-align: center; 
271
272 
273    #contentText table { 
274        width: 100% !important; 
275        text-align: center; 
276
277 
278    #contentText p { 
279        text-align: justify; 
280        color: #000; 
281        font-size: 16px; 
282        font-style: normal; 
283        font-weight: 400; 
284        line-height: 130%; 
285        letter-spacing: 0.08px; 
286
287 
288    #contentText > .text-summary > p { 
289        color: #000; 
290        font-size: 16px; 
291        font-style: italic; 
292        font-weight: 700; 
293        line-height: normal; 
294
295 
296    #contentText > p:has(img) { 
297        text-align: center; 
298
299 
300    .text-dgbv { 
301        display: flex; 
302        flex-direction: row; 
303        color: #000; 
304        font-size: 14px; 
305        font-style: normal; 
306        font-weight: 500; 
307        line-height: normal; 
308        margin-top: 8px; 
309
310 
311    .like-fb-custom { 
312        margin-top: 6px; 
313        max-width: 90px; 
314
315 
316    .text-trangchu-ctbv { 
317        color: var(--darkdefault-212529, #212529); 
318        font-size: 16px; 
319        font-style: normal; 
320        font-weight: 400; 
321        line-height: 130%; 
322        letter-spacing: 0.08px; 
323
324 
325    .text-gioithieu-ctbv { 
326        color:#0D4C92; 
327        font-size: 16px; 
328        font-style: normal; 
329        font-weight: 500; 
330        line-height: 130%; 
331        letter-spacing: 0.08px; 
332
333 
334    .ctbv-right { 
335        display: flex; 
336        flex-wrap: wrap; 
337        justify-content: flex-end; 
338
339 
340    .title-content-vni { 
341        color: var(--Dark-primary-000000, #000); 
342        font-size: 20px; 
343        font-style: normal; 
344        font-weight: 700; 
345        line-height: 130%; 
346        letter-spacing: 0.03px; 
347
348 
349    .line { 
350        background: #777; 
351        height: 1px; 
352        width: 100%; 
353        margin: 32px 0; 
354
355 
356    .line-tlq { 
357        background: #777; 
358        height: 1px; 
359        width: 100%; 
360        margin: 26px 18px 15px 15px; 
361
362 
363    .text-readmore-tlq { 
364        color: #0D4C92; 
365        font-size: 14px; 
366        font-style: normal; 
367        font-weight: 500; 
368        line-height: 130%; 
369        letter-spacing: 0.175px; 
370        margin-top: 16px; 
371
372 
373    .text-des-tlq > p  { 
374        color: var(--signinupfont-3777777, #777); 
375        font-size: 16px; 
376        font-style: normal; 
377        font-weight: 400!important; 
378        line-height: 130%; /* 18.2px */ 
379        letter-spacing: 0.035px; 
380
381 
382    .text-title-tlq { 
383        color: var(--darkdefault-212529, #212529); 
384        font-size: 16px; 
385        font-style: normal; 
386        font-weight: 700; 
387        line-height: 130%; 
388        letter-spacing: 0.024px; 
389        padding-right: 15px; 
390        padding-left: 15px; 
391
392 
393    .text-title-tlq-img { 
394        color: var(--darkdefault-212529, #212529); 
395        font-size: 16px; 
396        font-style: normal; 
397        font-weight: 700; 
398        line-height: 130%; 
399        letter-spacing: 0.024px; 
400        margin-top: 32px; 
401
402 
403    .title-content-tlq { 
404        color: var(--Dark-primary-000000, #000); 
405        font-size: 20px; 
406        font-style: normal; 
407        font-weight: 700; 
408        line-height: 130%; 
409        letter-spacing: 0.03px; 
410        margin-top: 22px; 
411
412 
413    .box-tlq { 
414        border-radius: 8px; 
415        border: 1px solid #C7C7C7; 
416        background: #FAFAFA; 
417
418 
419    .limit-title-1 { 
420        display: block; 
421        text-overflow: ellipsis; 
422        word-wrap: break-word; 
423        overflow: hidden; 
424        max-height: 3em; 
425        display: -webkit-box; 
426        -webkit-line-clamp: 1; 
427        -webkit-box-orient: vertical; 
428
429 
430    .border-item { 
431        border-radius: 8px; 
432        border: 1px solid var(--stroke-777777, rgba(119, 119, 119, 0.50)); 
433        margin: 0px 17px; 
434
435 
436    .tin-slide-img-left { 
437        border-radius: 8px 0px 0px 8px; 
438
439 
440    .sdt-list-tlq-items { 
441        color: var(--darkdefault-212529, #212529); 
442        font-size: 16px; 
443        font-style: normal; 
444        font-weight: 400; 
445        line-height: 130%; 
446        letter-spacing: 0.024px; 
447
448 
449    .sdt-list-tlq-items:hover > a{ 
450        color: #0D4C92!important; 
451        font-weight: 700; 
452
453 
454    .sdt-list-tlq-items:hover::before { 
455        background: #0D4C92; 
456
457    .sdt-list-tlq-items::before { 
458        position: absolute; 
459        top: 7px; 
460        left: 0; 
461        content: ""; 
462        height: 6px; 
463        width: 6px; 
464        border-radius: 8px; 
465        background: #D9D9D9; 
466        margin-right: 5px; 
467
468 
469    .text-border { 
470        color: #000; 
471        font-size: 18px; 
472        font-style: normal; 
473        font-weight: 400; 
474        line-height: 130%; 
475        letter-spacing: 0.027px; 
476        border-bottom: 3px solid #f70000; 
477
478 
479    .form-chitiet { 
480        border-radius: 6px; 
481        background: #F2F2F2; 
482        border-color: #F2F2F2; 
483
484 
485    .form-chitiet::placeholder { 
486        color: rgba(119, 119, 119, 0.50); 
487        font-size: 14px; 
488        font-style: normal; 
489        font-weight: 400; 
490        line-height: 130%; 
491        letter-spacing: 0.021px; 
492
493 
494    .lbl-blyk { 
495        color: #000; 
496        font-size: 16px; 
497        font-style: normal; 
498        font-weight: 500; 
499        line-height: 130%; 
500        letter-spacing: 0.024px; 
501
502 
503    .align-right { 
504        text-align: right; 
505        border: 0; 
506
507 
508    .gg-custom { 
509        margin-top: 10px; 
510
511 
512    .avatar { 
513        display: block; 
514        width: 40px; 
515        height: 40px; 
516        margin-right: 13px; 
517        border-radius: 50%; 
518        overflow: hidden; 
519
520 
521    .item { 
522        padding-bottom: 16px; 
523        margin-bottom: 16px; 
524        display: flex; 
525        border-bottom: 1px solid rgba(119, 119, 119, 0.30); 
526
527    .user-name { 
528        color: #000; 
529        font-size: 16px; 
530        font-style: normal; 
531        font-weight: 700; 
532        line-height: 130%; 
533        letter-spacing: 0.024px; 
534
535    .text-comment { 
536        color: #4D4D4D; 
537        font-size: 16px; 
538        font-style: normal; 
539        font-weight: 400; 
540        line-height: 130%; 
541        letter-spacing: 0.08px; 
542
543    .btnmorecmt { 
544        width: 285px; 
545        padding: 12px 50px; 
546        justify-content: center; 
547        align-items: center; 
548        gap: 10px; 
549        border-radius: 8px; 
550        border: 1px solid #000; 
551        color: #000; 
552        font-size: 14px; 
553        font-style: normal; 
554        font-weight: 400; 
555        line-height: 130%; /* 18.2px */ 
556        letter-spacing: 0.021px; 
557        background: none; 
558
559    .content-left-tlq{ 
560        padding: 0!important; 
561
562    .content-right-tlq{ 
563        padding-left: 32px!important; 
564
565    .content-right-tlq:hover, 
566    .content-right-tlq:hover ~ .content-left-tlq { 
567        background-color: #0D4C92; 
568
569 
570    .content-right-tlq:hover .text-title-tlq-img, 
571    .content-right-tlq:hover .text-des-tlq > p , 
572    .content-right-tlq:hover .text-readmore-tlq{ 
573        color: #ffffff!important; 
574
575    .content-right-tlq, 
576    .content-left-tlq, 
577    .content-right-tlq .text-title-tlq-img, 
578    .content-right-tlq .text-des-tlq > p , 
579    .content-right-tlq .text-readmore-tlq { 
580        transition: all 0.9s ease; 
581
582 
583    @media only screen and (min-width: 576px) { 
584        .h-img-ctbv { 
585            height: 181px; 
586
587
588 
589    @media only screen and (max-width: 576px) { 
590        .detail__sticky { 
591            display: none; 
592
593        .h-img-ctbv { 
594            height: 100%; 
595
596 
597        .text-title-tlq-img { 
598            margin-top: 10px; 
599
600 
601        #tin-slide-img-left { 
602            height: 100% !important; 
603
604 
605        .content-right-tlq { 
606            padding-left: 12px !important; 
607
608
609 
610    .star { 
611        position: relative; 
612        display: inline-block; 
613        transition: color 0.2s ease; 
614        color: #ebebeb; 
615
616 
617    .star:before { 
618        content: '\2605'; 
619        width: 30px; 
620        height: 30px; 
621        font-size: 30px; 
622
623 
624    .star:hover, 
625    .star.selected, 
626    .star:hover ~ .star, 
627    .star.selected ~ .star { 
628        transition: color 0.8s ease; 
629        color: #FDE16D; 
630
631    .ratings-wrapper { 
632        display: inline-block; 
633        margin-bottom: 20px; 
634
635 
636    .ratings { 
637        display: flex; 
638        flex-direction: row-reverse; 
639
640 
641    .ratings span { 
642        cursor: pointer; 
643        transition: color 0.8s ease; 
644        font-size: 50px; 
645
646 
647    .ratings span:hover { 
648        transition: color 0.8s ease; 
649        color: #FDE16D; 
650
651 
652    .ratings span:hover ~ span { 
653        transition: color 0.8s ease; 
654        color: #FDE16D; 
655
656 
657    .ratings span[data-clicked] { 
658        color: #FDE16D; 
659
660 
661    .ratings span[data-clicked] ~ span { 
662        color: #FDE16D; 
663
664 
665    .reset { 
666        font-size: 18px; 
667        text-decoration: none; 
668        background-color: #4f5a78; 
669        padding: 15px 50px; 
670        display: inline-block; 
671        margin-top: 20px; 
672        color: #fff; 
673        border: none; 
674        cursor: pointer; 
675
676 
677    .reset:hover { 
678        filter: brightness(1.2); 
679
680    .asset-details .mr-3 a{ 
681        display: none !important; 
682
683    .separator{ 
684        display: none !important; 
685
686</style> 
687<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService" )> 
688<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
689 
690<#assign currentArticle = JournalArticleLocalService.getArticle(getterUtil.getLong(groupId),.vars['reserved-article-id'].data)> 
691<#assign currentArticleResourcePrimKey = currentArticle.getResourcePrimKey()> 
692 
693<#assign currentArticleAssetEntry = AssetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", currentArticleResourcePrimKey)/> 
694 
695<#assign articlePrimKey = currentArticle.resourcePrimKey> 
696<#assign DDMStructureKey = currentArticle.DDMStructureKey> 
697 
698<#assign catLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")> 
699<#assign articleCatId = catLocalService.getCategoryIds("com.liferay.journal.model.JournalArticle", getterUtil.getLong(articlePrimKey))> 
700 
701<#assign assetEntryQueryService = objectUtil('com.liferay.asset.kernel.service.AssetEntryLocalServiceUtil')> 
702 
703<#assign assetEntryQuery = objectUtil('com.liferay.asset.kernel.service.persistence.AssetEntryQuery')> 
704 
705 
706<#assign search = assetEntryQuery.setAnyCategoryIds(articleCatId)> 
707<#assign search = assetEntryQuery.setOrderByCol1("publishDate")/> 
708<#assign search = assetEntryQuery.setStart(0)/> 
709<#assign search = assetEntryQuery.setEnd(10)/> 
710<#assign search = assetEntryQuery.setOrderByType1("DESC")/> 
711 
712<#assign teste = assetEntryQueryService.getEntries(assetEntryQuery) 
713totalPage = 0/> 
714 
715<#assign 
716title = .vars['reserved-article-title'].data 
717portalURL = themeDisplay.getPortalURL() 
718currentUrl = portalURL + themeDisplay.getURLCurrent() 
719imageUrl = portalURL + .vars['reserved-article-small-image-url'].data 
720srcfb = "https://www.facebook.com/plugins/like.php?href=${currentUrl}&width=92&layout=button_count&locale=vi_VN&action=like&size=small&share=false&height=28&appId=252861586372350" 
721 
722displayDate = .vars['reserved-article-display-date'].data 
723summary = .vars['reserved-article-description'].data/> 
724 
725<#assign scopeId = themeDisplay.getScopeGroupId()> 
726<#assign contentId = .vars['reserved-article-id'].data> 
727<#assign originalLocale = .locale> 
728<#setting locale = localeUtil.getDefault()> 
729<#assign displayDate = displayDate?datetime("EEE, d MMM yyyy HH:mm:ss Z")> 
730<#assign locale = originalLocale> 
731<#assign displayDate = displayDate?string("EEEE, dd/MM/yyyy, HH:mm a ")> 
732<#assign listLayoutDHD = [5474,5512,179]> 
733<#assign layo = themeDisplay.getPlid() /> 
734 
735<@liferay_util["html-top"]> 
736    <meta name="title" property="og:title" content="${title?html}"> 
737    <meta name="image" property="og:image" content="${imageUrl}"> 
738    <meta name="imageurl" property="og:image:url" content="${imageUrl}"> 
739    <meta name="description" property="og:description" content="${summary?html}"> 
740    <meta name="url" property="og:url" content="${currentUrl}"> 
741</@> 
742<#assign 
743theme_display = themeDisplay 
744images_folder = theme_display.getPathThemeImages() 
745/> 
746 
747<script> 
748    $(document).ready(function () { 
749        $(".hrefShareFb").attr("href", "https://www.facebook.com/sharer/sharer.php?u=" + window.location.href); 
750        $("#hrefShareEmail").attr("href", "mailto:?subject=I wanted you to see this site&amp;body=Check out this site " + window.location.href); 
751        $("#hrefShareSkype").attr("href", "https://web.skype.com/share?url=" + window.location.href); 
752        $("#trigger_zalo").attr("data-href", "" + window.location.href); 
753        $(".hrefShareTwitter").attr("href", "https://twitter.com/intent/tweet?text=" + window.location.href); 
754        var modal = $('.modal-thongtin'); 
755        var btn = $('.btnsend'); 
756        var button_dt = $('.button-dt'); 
757        var button_dt_close = $('.button-dt-close'); 
758        var span = $('.close'); 
759        var baiVietId = $('#baiVietId'); 
760        var tieuDe = $('#tieuDe'); 
761        var commentContent = $('#commentContent'); 
762        var commentName = $('#commentName'); 
763        var commentAddress = $('#commentAddress'); 
764        var commentEmail = $('#commentEmail'); 
765 
766        /*btn.click(function () { 
767            if (commentContent.val().length == 0) { 
768                alert('Vui lòng nhập nội dung ý kiến!'); 
769            } else { 
770                modal.show(); 
771                btn.hide(); 
772
773        });*/ 
774 
775 
776        button_dt.click(function () { 
777            const valid = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; 
778            if (commentName.val().length == 0) { 
779                commentName.css('border-color', 'red'); 
780                commentName.focus(); 
781            } else if (commentAddress.val().length == 0) { 
782                commentAddress.css('border-color', 'red'); 
783                commentAddress.focus(); 
784            } else if (commentEmail.val().length == 0) { 
785                commentEmail.css('border-color', 'red'); 
786                commentEmail.focus(); 
787            } else if (!valid.test(commentEmail.val())) { 
788                commentEmail.css('border-color', 'red'); 
789                commentEmail.focus(); 
790                alert('Vui lòng nhập đúng email!'); 
791            } else { 
792                comment(baiVietId.val(), tieuDe.val(), commentContent.val(), commentName.val(), commentAddress.val(), commentEmail.val(), ${groupId}); 
793                commentContent.val(''); 
794                commentName.val(''); 
795                commentAddress.val(''); 
796                commentEmail.val(''); 
797                modal.hide(); 
798                btn.show(); 
799
800        }); 
801 
802        button_dt_close.click(function () { 
803            commentContent.val(''); 
804            commentName.val(''); 
805            commentAddress.val(''); 
806            commentEmail.val(''); 
807            commentName.css('border-color', '#ccc'); 
808            commentAddress.css('border-color', '#ccc'); 
809            commentEmail.css('border-color', '#ccc'); 
810            modal.hide(); 
811            btn.show(); 
812 
813        }); 
814 
815        span.click(function () { 
816            commentContent.val(''); 
817            commentName.val(''); 
818            commentAddress.val(''); 
819            commentEmail.val(''); 
820            modal.hide(); 
821            $('.replyBox').hide(); 
822            btn.show(); 
823 
824            $('.inputReplyContent').val(''); 
825            commentNameReply.val(''); 
826            commentAddressReply.val(''); 
827            commentEmailReply.val(''); 
828            modal_reply.hide(); 
829            $('.replyBox').hide(); 
830            btnreply.show(); 
831        }); 
832 
833        $(window).on('click', function (e) { 
834            if ($(e.target).is('.modal-thongtin')) { 
835                commentContent.val(''); 
836                commentName.val(''); 
837                commentAddress.val(''); 
838                commentEmail.val(''); 
839                modal.hide(); 
840                btn.show(); 
841
842            if ($(e.target).is('.modal-thongtin-reply')) { 
843                $('.inputReplyContent').val(''); 
844                commentNameReply.val(''); 
845                commentAddressReply.val(''); 
846                commentEmailReply.val(''); 
847                modal_reply.hide(); 
848                btnreply.show(); 
849
850        }); 
851 
852 
853        var modal_reply = $('.modal-thongtin-reply'); 
854        var btnreply = $('.btnreply'); 
855        var button_dt_reply = $('.button-dt-reply'); 
856        var button_dt_reply_close = $('.button-dt-reply-close'); 
857        var span = $('.close'); 
858        var commentNameReply = $('#commentNameReply'); 
859        var commentAddressReply = $('#commentAddressReply'); 
860        var commentEmailReply = $('#commentEmailReply'); 
861 
862        function submitreply() { 
863            var commentId = $('#commentId').val(); 
864            if ($('#inputReplyContent' + commentId).val().length == 0) { 
865                alert('Vui lòng nhập nội dung ý kiến!'); 
866            } else { 
867                modal_reply.show(); 
868                $('#commentContentReply').val($('#inputReplyContent' + commentId).val()); 
869                btnreply.hide(); 
870
871
872 
873        button_dt_reply.click(function () { 
874            if (commentNameReply.val().length == 0) { 
875                commentNameReply.css('border-color', 'red'); 
876            } else if (commentAddressReply.val().length == 0) { 
877                commentAddressReply.css('border-color', 'red'); 
878            } else if (commentEmailReply.val().length == 0) { 
879                commentEmailReply.css('border-color', 'red'); 
880            } else { 
881                replyComment($('#commentId').val(), baiVietId.val(), tieuDe.val(), $('#commentContentReply').val(), commentNameReply.val(), commentAddressReply.val(), commentEmailReply.val()); 
882                $('.inputReplyContent').val(''); 
883                commentNameReply.val(''); 
884                commentAddressReply.val(''); 
885                commentEmailReply.val(''); 
886                modal_reply.hide(); 
887
888        }); 
889 
890        button_dt_reply_close.click(function () { 
891            $('.inputReplyContent').val(''); 
892            commentNameReply.val(''); 
893            commentAddressReply.val(''); 
894            commentEmailReply.val(''); 
895            modal_reply.hide(); 
896 
897        }); 
898    }); 
899 
900    $(function () { 
901        var star = '.star', 
902            selected = '.selected'; 
903        $(star).on('click', function () { 
904            $(selected).each(function () { 
905                $(this).removeClass('selected'); 
906            }); 
907            $(this).addClass('selected'); 
908        }); 
909    }); 
910 
911    function submitreply() { 
912        var commentId = $('#commentId').val(); 
913        if ($('#inputReplyContent' + commentId).val().length == 0) { 
914            alert('Vui lòng nhập nội dung ý kiến!'); 
915        } else { 
916            $('.modal-thongtin-reply').show(); 
917            $('#commentContentReply').val($('#inputReplyContent' + commentId).val()); 
918            $('.btnreply').hide(); 
919
920
921 
922    function changePageSize() { 
923        var pageSize = $('#pageSize').val(); 
924        var pageIndex = $('#pageIndex').val(); 
925        paginate(pageIndex, pageSize); 
926
927 
928    function changePageIndex() { 
929        var pageSize = $('#pageSize').val(); 
930        var pageIndex = $('#pageIndex').val(); 
931        $('#curPage').val(pageIndex); 
932        paginate(pageIndex, pageSize); 
933
934 
935    function gotoPage(i) { 
936        $('a[name="gotoPage"]').removeClass("active"); 
937        $('#gotoPage' + i).addClass("active"); 
938        $('.list-unstyled').css("display", "none"); 
939        $('ul[name="list-unstyled-' + i + '"]').css("display", "grid"); 
940        $('#currentPage').val(i); 
941
942 
943    function previousPage() { 
944        var i = $('#currentPage').val(); 
945        if (i > 1) { 
946            gotoPage(Number(i) - 1); 
947
948
949 
950    function nextPage() { 
951        var i = $('#currentPage').val(); 
952        var totalPage = $('#totalPages').val(); 
953        console.log(i); 
954        console.log(totalPage); 
955        if (i < totalPage) { 
956            gotoPage(Number(i) + 1); 
957
958
959 
960 
961</script> 
962<div id="fb-root"></div> 
963<div class="detail__flex"> 
964    <div class="detail__sticky"> 
965        <div class="detail__scroll-action"> 
966            <div class="detail-social"> 
967                <a onclick="fontMinus();" href="javascript:void(0);" title="Giảm cỡ chữ" data-toggle="tooltip"> 
968				<span class="icon"> 
969					<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28" fill="none"> 
970						<circle cx="14" cy="14" r="13.5" stroke="#777777"/> 
971						<path d="M17.5 15.5L13.75 11.75L10 15.5" stroke="#777777" stroke-width="1.5" 
972                              stroke-linecap="round" stroke-linejoin="round"/> 
973					</svg> 
974				</span> 
975                </a> 
976                <a onclick="fontPlus();" href="javascript:void(0);" title="Tăng cỡ chữ" data-toggle="tooltip"> 
977				<span class="icon"> 
978					<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28" fill="none"> 
979						<circle cx="14" cy="14" r="13.5" transform="rotate(-180 14 14)" stroke="#777777"/> 
980						<path d="M10 12L13.75 15.75L17.5 12" stroke="#777777" stroke-width="1.5" stroke-linecap="round" 
981                              stroke-linejoin="round"/> 
982					</svg> 
983				</span> 
984                </a> 
985                <a onclick="voiceSpeak('contentText','voiceSex')" href="javascript:void(0);" data-toggle="tooltip" 
986                   title="Đọc bài viết"> 
987				<span class="icon"> 
988					<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28" fill="none"> 
989					<path d="M17.1145 3.14453C16.9531 3.14453 16.7891 3.18828 16.6387 3.28945L6.94531 9.625H2.46094C2.22031 9.625 2.02344 9.82188 2.02344 10.0625V17.9375C2.02344 18.1781 2.22031 18.375 2.46094 18.375H6.94531L16.6387 24.7105C16.7891 24.809 16.9559 24.8555 17.1145 24.8555C17.5711 24.8555 17.9922 24.4918 17.9922 23.9777V4.02227C17.9922 3.5082 17.5711 3.14453 17.1145 3.14453ZM16.0234 21.957L8.02266 16.7262L7.53047 16.4062H3.99219V11.5938H7.53047L8.01992 11.2738L16.0234 6.04297V21.957ZM25.5391 13.0156H22.0391C21.7984 13.0156 21.6016 13.2125 21.6016 13.4531V14.5469C21.6016 14.7875 21.7984 14.9844 22.0391 14.9844H25.5391C25.7797 14.9844 25.9766 14.7875 25.9766 14.5469V13.4531C25.9766 13.2125 25.7797 13.0156 25.5391 13.0156ZM24.3934 20.1742L21.3773 18.4324C21.3278 18.404 21.2731 18.3857 21.2165 18.3785C21.1599 18.3712 21.1023 18.3752 21.0472 18.3902C20.9921 18.4052 20.9405 18.4309 20.8954 18.4658C20.8502 18.5007 20.8123 18.5442 20.784 18.5938L20.2398 19.5371C20.1195 19.7449 20.1906 20.0129 20.3984 20.1332L23.4145 21.875C23.464 21.9034 23.5187 21.9217 23.5753 21.929C23.6319 21.9362 23.6894 21.9322 23.7445 21.9172C23.7996 21.9023 23.8513 21.8766 23.8964 21.8416C23.9416 21.8067 23.9794 21.7632 24.0078 21.7137L24.552 20.7703C24.6723 20.5625 24.5984 20.2945 24.3934 20.1742ZM20.7812 9.40625C20.8096 9.45581 20.8475 9.49929 20.8926 9.53422C20.9378 9.56915 20.9894 9.59484 21.0445 9.60982C21.0996 9.6248 21.1571 9.62878 21.2138 9.62153C21.2704 9.61428 21.3251 9.59595 21.3746 9.56758L24.3906 7.82578C24.5984 7.70547 24.6695 7.4375 24.5492 7.22969L24.0078 6.28906C23.9794 6.23951 23.9416 6.19602 23.8964 6.16109C23.8513 6.12616 23.7996 6.10048 23.7445 6.0855C23.6894 6.07051 23.6319 6.06653 23.5753 6.07378C23.5187 6.08103 23.464 6.09936 23.4145 6.12773L20.3984 7.86953C20.2986 7.92775 20.2258 8.02314 20.1961 8.13484C20.1664 8.24655 20.1821 8.36548 20.2398 8.46563L20.7812 9.40625Z" 
990                          fill="#777777"/> 
991					</svg> 
992				</span> 
993                </a> 
994                <a id="void-pause" onclick="voicePause()" href="javascript:void(0);" style="display:none;" 
995                   data-toggle="tooltip" 
996                   title="Tạm dừng đọc"> 
997				<span class="icon"> 
998					<i class="fa fa-pause" style="vertical-align: middle;opacity: 1;color: dimgray;"></i> 
999				</span> 
1000                </a> 
1001                <a id="void-resume" onclick="voiceResume()" href="javascript:void(0);" style="display:none;" 
1002                   data-toggle="tooltip" 
1003                   title="Tiếp tục đọc"> 
1004                    <i class="icon fa fa-repeat" style="vertical-align: middle;opacity: 1;color: dimgray;"></i> 
1005                </a> 
1006                <a id="void-stop" onclick="voiceCancel()" href="javascript:void(0);" style="display:none;" 
1007                   data-toggle="tooltip" 
1008                   title="Dừng đọc"> 
1009                    <i class="icon fa fa-stop" style="vertical-align: middle;opacity: 1;color: dimgray;"></i> 
1010                </a> 
1011 
1012                <a onclick="giamTuongPhan();" href="javascript:void(0);" 
1013                   data-toggle="tooltip" title="Giảm tương phản"> 
1014					<span class="icon"> 
1015						<img src="/o/portal-home-multi-theme/icons/trothinh/trothinh_bright-down-btn.png" 
1016                             style="vertical-align: middle;opacity: 1;"/> 
1017					</span> 
1018                </a> 
1019                <a onclick="tangTuongPhan();" href="javascript:void(0);" 
1020                   data-toggle="tooltip" title="Tăng tương phản"> 
1021					<span class="icon"> 
1022						<img src="/o/portal-home-multi-theme/icons/trothinh/trothinh_bright-up-btn.png" 
1023                             style="vertical-align: middle;opacity: 1;"/> 
1024					</span> 
1025                </a> 
1026                <a target="_blank" title="Chia sẻ Facebook" class="hrefShareFb"> 
1027                    <span class="icon"> 
1028                        <img src="${images_folder}/icons/iconfacebookvni.png"> 
1029                    </span> 
1030                </a> 
1031 
1032                <a target="_blank" title="Chia sẻ Twitter" class="hrefShareTwitter"> 
1033                    <span class="icon"> 
1034                        <img src="${images_folder}/icons/twittershare.png"> 
1035                    </span> 
1036                </a> 
1037 
1038                <a class="" title="Chia sẻ Zalo" onclick="load_js_zalo();" href="javascript:void(0);"> 
1039				<span class="icon"> 
1040					<img src="${images_folder}/icons/iconzlvni.png"> 
1041				</span> 
1042                </a> 
1043                <span id="trigger_zalo" style="position: absolute;" href="javascript:void(0);" class="zalo-share-button" 
1044                      data-oaid="3853758560685742933" data-layout="2" data-color="blue" data-customize="true" 
1045                      title="Chia sẻ Zalo"></span> 
1046            </div> 
1047        </div> 
1048    </div> 
1049    <div class="detail__main"> 
1050        <span class="text-trangchu-ctbv">TRANG CHỦ / <span class="text-gioithieu-ctbv">TIN TỨC</span></span> 
1051        <div class="main-content main_blog_post_content"> 
1052            <div class="panel mbp_thumb_post" id="main-body"> 
1053                <div class="shortcode-content hreview"> 
1054                    <div style="margin:10px 0px;"> 
1055                        <h3 class="title-divvv">${title}</h3> 
1056                    </div> 
1057                    <div class="article-head"> 
1058                        <div class="article-info" style="border-top: 0px;border-bottom: 0px; height: 33px;"> 
1059                            <div class="social-buttons left" style="float: left!important;"> 
1060                                <ul class="blog_sp_post_meta"> 
1061                                    <li class="list-inline-item"> 
1062                                        <span class="sp-dislaydate">${displayDate}</span> 
1063                                    </li> 
1064                                </ul> 
1065                            </div> 
1066                            <input type="hidden" id="voiceSex" value="Vietnamese Female"/> 
1067                            <input type="hidden" id="tuongphan" value="3"/> 
1068                            <input type="hidden" id="DDMStructureKey" name="DDMStructureKey" 
1069                                   value="${DDMStructureKey}"/> 
1070                            <input type="hidden" id="baiVietId" name="baiVietId" value="${articlePrimKey}"/> 
1071                            <input type="hidden" id="commentId" name="commentId" value=""/> 
1072                            <input type="hidden" id="tieuDe" name="tieuDe" value="${title?html}"/> 
1073                            <input type="hidden" value="1" id="curPage"/> 
1074                            <input type="hidden" value="0" id="totalRelated"/> 
1075                            <input type="hidden" value="${currentUrl}" id="currentURL"/> 
1076                        </div> 
1077                    </div> 
1078                </div> 
1079                <div id="contentText" style="margin:10px 0px;"> 
1080                    <b style="text-align: justify;" class="text-summary">${summary}</b> 
1081                    <#assign sanitizedContent = noiDung.getData()?replace("<script>", "<p class='d-none'>")?replace("</script>", "</p>")> 
1082                    ${sanitizedContent} 
1083                </div> 
1084                <div class="article-info"> 
1085                    <div class="row social-buttons"> 
1086                        <div class="col-lg-10 d-flex align-items-center"> 
1087                            <iframe class="like-fb-custom" src="${srcfb}" width="92" height="28" style="border:none;overflow:hidden" scrolling="no" frameborder="0" allowTransparency="true" allow="encrypted-media"></iframe> 
1088                            <div style="display: flex; align-items: center;"> 
1089                                <p class="text-dgbv">Đánh giá bài viết:</p> 
1090                                <div class="ratings-wrapper ml-2"> 
1091                                    <div data-productid="39" class="ratings"> 
1092                                        <span class="star" data-rating="5"></span> 
1093                                        <span class="star" data-rating="4"></span> 
1094                                        <span class="star" data-rating="3"></span> 
1095                                        <span class="star" data-rating="2"></span> 
1096                                        <span class="star" data-rating="1"></span> 
1097                                    </div> 
1098                                </div> 
1099                            </div> 
1100                        </div> 
1101                        <div class="col-lg-1 ctbv-right"></div> 
1102                    </div> 
1103                </div> 
1104                <div class="line"></div> 
1105                <p class="title-content-vni"> 
1106                    <svg xmlns="http://www.w3.org/2000/svg" width="33" height="32" viewBox="0 0 33 32" fill="none"> 
1107                        <path d="M31.5337 15.445L25.8262 6.89125C25.6445 6.61728 25.3978 6.39252 25.1082 6.23702C24.8185 6.08151 24.4949 6.00008 24.1662 6H5.70117C5.17074 6 4.66203 6.21071 4.28696 6.58579C3.91189 6.96086 3.70117 7.46957 3.70117 8V24C3.70117 24.5304 3.91189 25.0391 4.28696 25.4142C4.66203 25.7893 5.17074 26 5.70117 26H24.1662C24.4947 25.9994 24.818 25.9179 25.1075 25.7626C25.397 25.6074 25.6439 25.3833 25.8262 25.11L31.5299 16.555C31.6401 16.391 31.6993 16.1981 31.7 16.0006C31.7006 15.803 31.6428 15.6097 31.5337 15.445ZM24.1662 24H5.70117V8H24.1662L29.4987 16L24.1662 24Z" 
1108                              fill="#0D4C92"/> 
1109                    </svg> 
1110                    Từ khoá 
1111                </p> 
1112                <div class="menu-tags"> 
1113                    <#list currentArticleAssetEntry.getTags() as tag> 
1114                        <div class="tags"><p class="tag">${tag.name}</p></div> 
1115                    </#list> 
1116                </div> 
1117                 
1118                <div id="comment-list"></div> 
1119                <div class="line"></div> 
1120                <div class="col-lg-12 col-xl-12 box-tlq mb-4"> 
1121                    <#if teste?has_content> 
1122                        <h1 class="title-content-tlq font-merri mb-3">Tin liên quan</h1> 
1123                        <div class="row"> 
1124                            <#assign indexLocal = 0/> 
1125                            <#assign 
1126                            isSpecialSite = getterUtil.getBoolean(themeDisplay.getThemeSetting("isSpecialSite")) 
1127                            /> 
1128                            <#list teste?filter(curEntryyy -> curEntryyy.getEntryId() != currentArticleAssetEntry.getEntryId()) as  curEntryyy> 
1129                                <#if curEntryyy?? && curEntryyy.getAssetRenderer()??> 
1130                                    <#assign 
1131                                    renderer = curEntryyy.getAssetRenderer() 
1132                                    className = renderer.getClassName() /> 
1133                                    <#if className == "com.liferay.journal.model.JournalArticle" && indexLocal < 6> 
1134                                        <#assign 
1135                                        title = curEntryyy.getTitle(locale) 
1136                                        article = renderer.getArticle() 
1137                                        SmallImageID  = article.getSmallImageId() 
1138                                        SmallImage  = article.getSmallImageURL() 
1139                                        description = article.getDescription(locale) 
1140                                        curEntryyy = curEntryyy 
1141                                        viewURL = "${themeDisplay.getPathFriendlyURLPublic()}${themeDisplay.getSiteGroup().getFriendlyURL()}/-/${renderer.getUrlTitle()}" 
1142                                        hasMatch = false /> 
1143                                        <#if isSpecialSite?c == "true"> 
1144                                            <#assign currentUrl = themeDisplay.getURLCurrent() /> 
1145                                            <#assign parts_split = currentUrl?split("/")> 
1146                                            <#assign aidx = parts_split?seq_index_of("asset_publisher")> 
1147                                            <#if aidx != -1 && (parts_split?size > (aidx + 1))> 
1148                                                <#assign portletKey = parts_split[aidx + 1]> 
1149                                            <#else> 
1150                                                <#assign portletKey = rvlr> 
1151                                            </#if> 
1152                                            <#assign viewURL = 	"${themeDisplay.getPathFriendlyURLPublic()}${themeDisplay.getSiteGroup().getFriendlyURL()}/chi-tiet-bai-viet/-/asset_publisher/${portletKey}/content/${renderer.getUrlTitle()}/39403" 
1153                                            /> 
1154                                        </#if> 
1155                                        <#list curEntryyy.getCategories() as categoryList> 
1156                                            <#list currentArticleAssetEntry.getCategories() as cateId> 
1157                                                <#if categoryList.getCategoryId() == cateId.getCategoryId()> 
1158                                                    <#assign hasMatch = true /> 
1159                                                    <#break /> 
1160                                                </#if> 
1161                                            </#list> 
1162                                            <#if hasMatch> 
1163                                                <#break /> 
1164                                            </#if> 
1165                                        </#list> 
1166 
1167                                        <#if hasMatch> 
1168                                            <#if SmallImage ?? && SmallImage?length !=0 > 
1169                                                <#assign smallImageUrl = SmallImage> 
1170                                            <#elseif SmallImageID ?? && SmallImageID != 0> 
1171                                                <#assign smallImageUrl = "/image/journal/article?img_id=${SmallImageID}"> 
1172                                            <#else> 
1173                                                <#assign smallImageUrl = "/documents/60205/77945/no-image.jpg" > 
1174                                            </#if> 
1175                                            <#if indexLocal  == 0> 
1176                                                <div class="col-12 d-flex p-0 mb-16" idx="${indexLocal+1}" style="height: 100% !important;"> 
1177                                                    <a href="${viewURL}" class="d-flex w-100 border-item"> 
1178                                                        <div class="col-4 pl-0 content-left-tlq"> 
1179                                                            <img id="tin-slide-img-left" 
1180                                                                 class="tin-slide-img-left img-34-left p-0 h-img-ctbv" 
1181                                                                 src="${smallImageUrl}" alt="" width="100%"> 
1182                                                        </div> 
1183                                                        <div class="col-8 content-right-tlq"> 
1184                                                            <p class="limit-title-1 text-title-tlq-img">${title}</p> 
1185                                                            <div class="text-left limit-description-3 text-des-tlq">${description}</div> 
1186                                                            <p class="text-readmore-tlq d-mobile-none">Đọc thêm 
1187                                                                <i class="fa fa-angle-right"></i> 
1188                                                            </p> 
1189                                                        </div> 
1190                                                    </a> 
1191                                                </div> 
1192                                                <div class="line-tlq"></div> 
1193                                            <#else> 
1194                                                <div class="col-lg-12" idx="${indexLocal+1}" style="margin-left: 15px;"> 
1195                                                    <li class="sdt-list-tlq-items "><a class="limit-title-1 mr-2" href="${viewURL}">${title}</a></li> 
1196                                                </div> 
1197                                            </#if> 
1198                                            <#assign indexLocal = indexLocal + 1 /> 
1199                                        </#if> 
1200                                    </#if> 
1201                                </#if> 
1202                            </#list> 
1203                        </div> 
1204                    </#if> 
1205                </div> 
1206 
1207            </div> 
1208        </div> 
1209    </div> 
1210</div> 
1211 
1212<script> 
1213    $(document).ready(function () { 
1214        getFeedback(10); 
1215        let stars = document.querySelectorAll(".ratings span"); 
1216        let products = document.querySelectorAll(".ratings"); 
1217        let ratings = []; 
1218 
1219        for(let star of stars){ 
1220            star.addEventListener("click", function(){ 
1221                let children = 	star.parentElement.children; 
1222                for(let child of children){ 
1223                    if(child.getAttribute("data-clicked")){ 
1224                        return false; 
1225
1226
1227 
1228                this.setAttribute("data-clicked","true"); 
1229                let rating = this.dataset.rating; 
1230                let productId = this.parentElement.dataset.productid; 
1231                let data = { 
1232                    "rating": rating, 
1233                    "product-id": productId, 
1234
1235                ratings.push(data); 
1236                localStorage.setItem("rating", JSON.stringify(ratings)); 
1237            }); 
1238
1239 
1240        if(localStorage.getItem("rating")){ 
1241            ratings = JSON.parse(localStorage.getItem("rating")); 
1242            for(let rating of ratings){ 
1243                for(let product of products){ 
1244                    if(rating["product-id"] == product.dataset.productid){ 
1245                        let reverse = Array.from(product.children).reverse(); 
1246                        let index = parseInt(rating["rating"]) - 1; 
1247                        reverse[index].setAttribute("data-clicked", "true"); 
1248
1249
1250
1251
1252    }); 
1253    /*function submitUserForm() { 
1254        var response = grecaptcha.getResponse(); 
1255        if (response.length == 0) { 
1256            $("#g-recaptcha-error").html("<span style='color:red;'>This field is required.</span>"); 
1257            return false; 
1258
1259        return true; 
1260    }; 
1261*/ 
1262    function verifyCaptcha() { 
1263        $("#g-recaptcha-error").html(""); 
1264
1265 
1266    function sendFeedback() { 
1267        let isValid = true; 
1268        var response = grecaptcha.getResponse(); 
1269        if (response.length == 0) { 
1270            $("#g-recaptcha-error").html("<span style='color:red;'>This field is required.</span>"); 
1271            return false; 
1272
1273        $('[required]').each(function () { 
1274            if ($(this).val().toString().trim().length == 0) { 
1275                isValid = false; 
1276                alert('Vui lòng nhập thông tin '+$(this).attr('title')); 
1277                return false; 
1278            } else if ($(this).attr("regex") != undefined){ 
1279                if (new RegExp($(this).attr('regex')).test($(this).val())) { 
1280                    isValid = true; 
1281                } else { 
1282                    alert('Vui lòng nhập đúng định dạng '+$(this).attr('title')) 
1283                    isValid = false; 
1284                    return false; 
1285
1286 
1287            } else { 
1288                isValid = true; 
1289
1290        }); 
1291        const param = JSON.stringify({ 
1292            baiVietId: '${currentArticle.id}', 
1293            noiDung: $("#commentContent").val(), 
1294            ten : $("#commentName").val(), 
1295            mail : $("#email").val(), 
1296            soDienThoai : $("#soDienThoai").val(), 
1297            tieuDeBaiViet :'${currentArticle.title}', 
1298            tenTacGia :'${currentArticle.userName}', 
1299        }); 
1300        console.log(param) 
1301        $.ajax({ 
1302            url: location.origin+'/api/v1/public/tuongtacbaiviet/themBinhLuan', 
1303            type: 'POST', 
1304            cache : false, 
1305            dataType:"json", 
1306            contentType:"application/json", 
1307            data:param, 
1308            success: function () { 
1309                alert("Đã gửi thành công"); 
1310                $("#commentContent").val(''); 
1311                $("#commentName").val(''); 
1312                $("#email").val(''); 
1313                $("#soDienThoai").val(''); 
1314            }, 
1315            error: function (er) { 
1316                alert("Gửi bình luận thất bại"); 
1317
1318        }); 
1319
1320 
1321    function getFeedback(sizecmt) { 
1322        $('#comment-list').empty(); 
1323        const param = JSON.stringify({ 
1324            baiVietId: '${currentArticle.id}' 
1325        }); 
1326        $.ajax({ 
1327            url: location.origin+'/api/v1/public/tuongtacbaiviet/truyCapBaiViet', 
1328            type: 'POST', 
1329            cache : false, 
1330            dataType:"json", 
1331            contentType:"application/json", 
1332            data: param, 
1333        }).done(function (data) { 
1334            var dsBinhLuan = data.msg.thongTinBinhLuans; 
1335            var count = data.msg.thongTinBinhLuans.length; 
1336            var htmlYKien = ''; 
1337            if (dsBinhLuan.length > 0) { 
1338                htmlYKien += '<h2 class="botting-border"><span class="text-border">Bình luận, ý kiến của bạn đọc ('+count+')</span></h2>'; 
1339                for (var i = 0 ; i < dsBinhLuan.length ; i++) { 
1340                    var obj = dsBinhLuan[i]; 
1341                    htmlYKien += '<div class="item box_cm">'; 
1342                    htmlYKien += '<a href="javascript:void(0)" class="avatar">\n' + 
1343                        '                <img src="${images_folder}/icons/iconuser.png">\n' + 
1344                        '            </a>'; 
1345                    htmlYKien += '<div class="item-content">'; 
1346                    htmlYKien += '<span class="user-name">' + obj.ten + '</span>'+' <span class="date-cmt">'+ obj.thoiGianBinhLuan+'</span></br>'; 
1347                    htmlYKien += '<span class="text-comment">' + obj.noiDungHienThi + '</span>'; 
1348                    htmlYKien += '</div>'; 
1349                    htmlYKien += '</div>'; 
1350
1351                if (count > sizecmt) { 
1352                    htmlYKien += '<div class="text-center">\n' + 
1353                        '<button type="submit" class="btnmorecmt" onclick="getFeedback('+(sizecmt+10)+')" >Xem thêm bình luận, ý kiến\n' + 
1354                        '</button>\n' + 
1355                        '</div>'; 
1356
1357                $('#comment-list').append(htmlYKien); 
1358            }; 
1359        }); 
1360
1361</script> 
1362<script src="https://sp.zalo.me/plugins/sdk.js"></script> 
1363<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> 
1364<script src="https://code.responsivevoice.org/responsivevoice.js?key=25hFfRt0"></script> 
1365<script async defer crossorigin="anonymous" src="https://connect.facebook.net/vi_VN/sdk.js#xfbml=1&version=v17.0" nonce="vuMxJ4dq"></script> 
1366<script src="https://www.google.com/recaptcha/api.js" async defer></script> 
1367 
1368 
1369<#macro getMetadataField 
1370fieldName 
1371
1372    <#if stringUtil.split(metadataFields)?seq_contains(fieldName)> 
1373        <span class="metadata-entry metadata-${fieldName}"> 
1374 			<#assign dateFormat = "dd MMM yyyy - HH:mm:ss" /> 
1375 
1376            <#if stringUtil.equals(fieldName, "author")> 
1377                <@liferay.language key="by" /> ${htmlUtil.escape(portalUtil.getUserName(assetRenderer.getUserId(), assetRenderer.getUserName()))} 
1378            <#elseif stringUtil.equals(fieldName, "categories")> 
1379                <@liferay_asset["asset-categories-summary"] 
1380                className=curEntry.getClassName() 
1381                classPK=curEntry.getClassPK() 
1382                portletURL=renderResponse.createRenderURL() 
1383                /> 
1384            <#elseif stringUtil.equals(fieldName, "create-date")> 
1385                ${dateUtil.getDate(curEntry.getCreateDate(), dateFormat, locale)} 
1386            <#elseif stringUtil.equals(fieldName, "expiration-date")> 
1387                ${dateUtil.getDate(curEntry.getExpirationDate(), dateFormat, locale)} 
1388            <#elseif stringUtil.equals(fieldName, "modified-date")> 
1389                ${dateUtil.getDate(curEntry.getModifiedDate(), dateFormat, locale)} 
1390            <#elseif stringUtil.equals(fieldName, "priority")> 
1391                ${curEntry.getPriority()} 
1392            <#elseif stringUtil.equals(fieldName, "publish-date")> 
1393                ${dateUtil.getDate(curEntry.getPublishDate(), dateFormat, locale)} 
1394            <#elseif stringUtil.equals(fieldName, "tags")> 
1395                <@liferay_asset["asset-tags-summary"] 
1396                className=curEntry.getClassName() 
1397                classPK=curEntry.getClassPK() 
1398                portletURL=renderResponse.createRenderURL() 
1399                /> 
1400            <#elseif stringUtil.equals(fieldName, "view-count")> 
1401                ${curEntry.getViewCount()} 
1402            </#if> 
1403 		</span> 
1404    </#if> 
1405</#macro> 

Asset Publisher