Có lỗi xảy ra trong quá trình xử lý biểu mẫu.
Java method "static com.liferay.asset.kernel.service.AssetEntryLocalServiceUtil.getEntries(com.liferay.asset.kernel.service.persistence.AssetEntryQuery)" threw an exception; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: teste = assetEntryQueryService.getEnt...  [in template "37610#37640#102007" at line 1226, column 10]
----
1<style> 
2    p.component-title { 
3        display: none; 
4
5    .display-img-default > figure > img { 
6        width: 95%; 
7        height: auto !important; 
8
9    .display-img-default > figure > span > img { 
10        width: 95%; 
11        height: auto !important; 
12
13    figcaption.figcaption p { 
14        color: rgb(94, 94, 255) !important; 
15        font-style: italic !important; 
16        text-align: center !important; 
17
18    .figcaption { 
19        color: #5e5eff; 
20        font-style: italic; 
21        text-align: center; 
22
23    .autofit-row.mb-4.metadata-author { 
24        display: none; 
25
26    .display-img-default { 
27        background: transparent !important; 
28        height: fit-content !important; 
29        min-height: unset!important; 
30
31    .display-img-default > figure > img { 
32        width: 95%; 
33        height: auto !important; 
34
35 
36 
37    .asset-anchor.lfr-asset-anchor { 
38        display: none; 
39
40    .liferayckevideo { 
41        display: flex; 
42        justify-content: center; 
43        position: relative; 
44
45 
46    .liferayckevideo.video-container { 
47        position: relative; 
48        display: flex; 
49        justify-content: center; 
50
51 
52    .liferayckevideo.video-container video { 
53        width: 99% !important; 
54        height: 465px !important; 
55        border: 1px solid #333; 
56
57    @media only screen and (min-width: 1400px) { 
58        .liferayckevideo.video-container video { 
59            height: 600px !important; 
60
61
62    .liferayckevideo video { 
63        width: 99% !important; 
64        height: 465px !important; 
65
66 
67    /* Nút play overlay */ 
68    .video-play-button { 
69        position: absolute; 
70        top: 50%; 
71        left: 50%; 
72        transform: translate(-50%, -50%); 
73        width: 60px; 
74        height: 60px; 
75        background: rgba(0, 0, 0, 0.7); 
76        border: 3px solid #fff; 
77        border-radius: 50%; 
78        cursor: pointer; 
79        z-index: 10; 
80        display: flex; 
81        align-items: center; 
82        justify-content: center; 
83        transition: all 0.3s ease; 
84
85 
86    .video-play-button:hover { 
87        background: rgba(0, 0, 0, 0.9); 
88        transform: translate(-50%, -50%) scale(1.1); 
89
90 
91    .video-play-button::before { 
92        content: ''; 
93        width: 0; 
94        height: 0; 
95        border-style: solid; 
96        border-width: 15px 0 15px 25px; 
97        border-color: transparent transparent transparent #fff; 
98        margin-left: 5px; 
99
100 
101    .video-play-button.playing { 
102        display: none; 
103
104 
105    .social-buttons { 
106        display: flex; 
107
108 
109    .article-head { 
110        margin-bottom: 0; 
111
112 
113    .botting-border { 
114        color: #292a32; 
115        background: unset; 
116        font-family: "Roboto"; 
117        text-transform: unset; 
118        font-weight: bold; 
119        font-size: 20px; 
120        margin-bottom: 15px; 
121        border-bottom: 3px solid #d1d2d4; 
122
123 
124    .buttonIn { 
125        position: relative; 
126
127 
128    .btnsend { 
129        color: #FFF; 
130        border-color: #f70000; 
131        padding: 3px 0.75rem; 
132        border: none; 
133        height: 42px; 
134        cursor: pointer; 
135        border-radius: 6px; 
136        background: #C8392B; 
137        margin-top: 17px; 
138        font-size: 14px; 
139        font-style: normal; 
140        font-weight: 700; 
141        line-height: 130%; /* 18.2px */ 
142        letter-spacing: 0.021px; 
143
144 
145    .button-dt { 
146        color: #FFF; 
147        background-color: #f70000; 
148        border-color: #f70000; 
149        padding: 3px 0.75rem; 
150        border-radius: 5px; 
151        margin: 2px; 
152
153 
154    .button-dt-close { 
155        color: #FFF; 
156        background-color: #f70000; 
157        border-color: #f70000; 
158        padding: 3px 0.75rem; 
159        border-radius: 5px; 
160        margin: 2px; 
161
162 
163    .md-textarea { 
164        width: 100%; 
165
166 
167    .comment { 
168        display: inline-block; 
169        margin-top: 5px; 
170        width: 100%; 
171
172 
173    .comment-text { 
174        padding-left: 51px; 
175        margin-top: -9px; 
176        font-size: 14px; 
177
178 
179    .comment-child { 
180        margin-left: 35px; 
181
182 
183 
184    .modal-thongtin { 
185        display: none; 
186        position: fixed; 
187        z-index: 1111; 
188        padding-top: 100px; 
189        left: 0; 
190        top: 0; 
191        width: 100%; 
192        height: 100%; 
193        overflow: auto; 
194        background-color: rgb(0, 0, 0); 
195        background-color: rgba(0, 0, 0, .4); 
196
197 
198    .modal-thongtin-reply { 
199        display: none; 
200        position: fixed; 
201        z-index: 1; 
202        padding-top: 100px; 
203        left: 0; 
204        top: 0; 
205        width: 100%; 
206        height: 100%; 
207        overflow: auto; 
208        background-color: rgb(0, 0, 0); 
209        background-color: rgba(0, 0, 0, .4); 
210
211 
212 
213    .close { 
214        color: #aaaaaa; 
215        float: right; 
216        font-size: 28px; 
217        font-weight: bold; 
218
219 
220    .close:hover, 
221    .close:focus { 
222        color: #000; 
223        text-decoration: none; 
224        cursor: pointer; 
225
226 
227    .btnreply { 
228        color: #FFF; 
229        background-color: #f70000; 
230        border-color: #f70000; 
231        padding: 3px 0.75rem; 
232        border-radius: 5px; 
233        height: 28px; 
234        border: none; 
235        float: right; 
236
237 
238    .autofit-float.autofit-row.portlet-header { 
239        display: none; 
240
241 
242    .breadcrumb > li.active { 
243        color: #f70000; 
244
245 
246    .zalo-share-button { 
247        width: 158px !important; 
248
249 
250    iframe { 
251        min-width: 92px; 
252
253 
254    b.text-summary { 
255        color: #000; 
256        font-size: 16px; 
257        font-style: italic; 
258        font-weight: 700; 
259        line-height: normal; 
260
261 
262    @media only screen and (min-width: 768px) { 
263        .other-imgs { 
264            height: 60px; 
265
266 
267        .modal-thongtin-content { 
268            background-color: #fefefe; 
269            margin: auto; 
270            padding: 20px; 
271            border: 1px solid #888; 
272            width: 60%; 
273
274
275 
276    @media only screen and (max-width: 768px) { 
277        .pagination2 a { 
278            cursor: pointer; 
279            color: black; 
280            padding: 3px 8px; 
281            text-decoration: none; 
282            transition: background-color .3s; 
283            margin: 0px; 
284            border-radius: 5px; 
285            background: #ddd; 
286
287 
288        .curPage-title { 
289            display: none; 
290
291 
292        h3.title-divvv { 
293            /*text-align: justify;*/ 
294            /*margin-top: 16px;*/ 
295            color: #15191C; 
296            font-size: clamp(18px, 4vw, 24px); 
297            font-style: normal; 
298            font-weight: 700; 
299            line-height: 33.6px; 
300            letter-spacing: -0.28px; 
301            margin-bottom: 0px; 
302
303 
304        #contentText iframe { 
305            width: 100% !important; 
306
307 
308        .detail-social > a:hover { 
309            cursor: pointer; 
310
311 
312        .article-head .article-info { 
313            margin-bottom: 0; 
314            padding: 4px 0 8px 0; 
315            font-size: 14px; 
316            height: 24px !important; 
317
318 
319        .modal-thongtin-content { 
320            background-color: #fefefe; 
321            margin: auto; 
322            padding: 20px; 
323            border: 1px solid #888; 
324            width: 100%; 
325
326
327    @media only screen and (max-width: 576px) { 
328        .article-head .article-info { 
329            height: 59px !important; 
330
331
332 
333    span.sticker-overlay { 
334        background: var(--main-color-background); 
335        color: var(--main-color-text); 
336        opacity: 0.8; 
337
338 
339 
340    .detail__flex { 
341        display: flex; 
342
343 
344    .sp-dislaydate { 
345        color: var(--darkdefault-212529, #212529); 
346        font-size: 16px; 
347        font-style: normal; 
348        font-weight: 400; 
349        line-height: 130%; 
350        letter-spacing: 0.08px; 
351        /*border-left: 3px solid #212529;*/ 
352        margin-bottom: 18.5px; 
353        /*padding-left: 12px;*/ 
354        margin-top: 40px; 
355
356 
357    .title-divvv { 
358        text-align: justify; 
359        /*margin-top: 16px;*/ 
360        color: var(--darkdefault-212529, #212529); 
361        font-size: clamp(22px, 4vw, 24px); 
362        font-style: normal; 
363        font-weight: 700; 
364        line-height: normal; 
365        /*letter-spacing: -0.28px;*/ 
366
367 
368    #contentText table { 
369        width: 100% !important; 
370        text-align: center; 
371
372 
373    #contentText table { 
374        width: 100% !important; 
375        text-align: center; 
376
377 
378    #contentText p { 
379        text-align: justify; 
380        color: #2E2E2E; 
381        font-size: 16px; 
382        font-style: normal; 
383        font-weight: 400; 
384        line-height: 22.4px; 
385        letter-spacing: 0.08px; 
386
387 
388    #contentText > .text-summary > p { 
389        color: #2E2E2E; 
390        font-size: 16px; 
391        /*font-style: italic;*/ 
392        font-weight: 500; 
393        line-height: normal; 
394
395 
396    #contentText > p:has(img) { 
397        text-align: center; 
398
399 
400    .text-dgbv { 
401        display: flex; 
402        flex-direction: row; 
403        color: #000; 
404        font-size: 14px; 
405        font-style: normal; 
406        font-weight: 500; 
407        line-height: normal; 
408        margin-top: 8px; 
409
410 
411    .share-fb-custom { 
412        margin-top: 6px; 
413        max-width: 90px; 
414
415 
416    .text-trangchu-ctbv { 
417        color: var(--darkdefault-212529, #212529); 
418        font-size: 16px; 
419        font-style: normal; 
420        font-weight: 400; 
421        line-height: 130%; 
422        letter-spacing: 0.08px; 
423
424 
425    .text-gioithieu-ctbv { 
426        color: #0D4C92; 
427        font-size: 16px; 
428        font-style: normal; 
429        font-weight: 500; 
430        line-height: 130%; 
431        letter-spacing: 0.08px; 
432
433 
434    .ctbv-right { 
435        display: flex; 
436        flex-wrap: wrap; 
437        justify-content: flex-end; 
438
439 
440    .title-content-vni { 
441        color: var(--Dark-primary-000000, #000); 
442        font-size: 20px; 
443        font-style: normal; 
444        font-weight: 700; 
445        line-height: 130%; 
446        letter-spacing: 0.03px; 
447
448 
449    .line { 
450        background: #848A8F; 
451        height: 1px; 
452        width: 100%; 
453        margin: 32px 0; 
454
455 
456    .line-tlq { 
457        background: #848A8F; 
458        height: 1px; 
459        width: 100%; 
460        margin: 26px 18px 15px 15px; 
461
462 
463    .text-readmore-tlq { 
464        color: #0D4C92; 
465        font-size: 14px; 
466        font-style: normal; 
467        font-weight: 500; 
468        line-height: 130%; 
469        letter-spacing: 0.175px; 
470        margin-top: 16px; 
471
472 
473    .text-des-tlq > p { 
474        color: var(--signinupfont-3777777, #777); 
475        font-size: 16px; 
476        font-style: normal; 
477        font-weight: 400 !important; 
478        line-height: 130%; /* 18.2px */ 
479        letter-spacing: 0.035px; 
480
481 
482    .text-title-tlq { 
483        color: var(--darkdefault-212529, #212529); 
484        font-size: 16px; 
485        font-style: normal; 
486        font-weight: 700; 
487        line-height: 130%; 
488        letter-spacing: 0.024px; 
489        padding-right: 15px; 
490        padding-left: 15px; 
491
492 
493    .text-title-tlq-img { 
494        color: var(--darkdefault-212529, #212529); 
495        font-size: 16px; 
496        font-style: normal; 
497        font-weight: 700; 
498        line-height: 130%; 
499        letter-spacing: 0.024px; 
500        /*margin-top: 32px;*/ 
501
502 
503    .title-content-tlq { 
504        color: var(--Dark-primary-000000, #000); 
505        font-size: 20px; 
506        font-style: normal; 
507        font-weight: 700; 
508        line-height: 130%; 
509        letter-spacing: 0.03px; 
510        margin-top: 22px; 
511
512 
513    .box-tlq { 
514        border-radius: 8px; 
515        border: 1px solid #C7C7C7; 
516        background: #FAFAFA; 
517
518 
519 
520 
521    .border-item { 
522        border-radius: 8px; 
523        border: 1px solid var(--stroke-777777, rgba(119, 119, 119, 0.50)); 
524        margin: 0px 17px; 
525
526 
527    .tin-slide-img-left { 
528        border-radius: 8px 0px 0px 8px; 
529
530 
531    .sdt-list-tlq-items { 
532        color: var(--darkdefault-212529, #212529); 
533        font-size: 16px; 
534        font-style: normal; 
535        font-weight: 400; 
536        line-height: 130%; 
537        letter-spacing: 0.024px; 
538
539 
540    .sdt-list-tlq-items:hover > a { 
541        color: #0D4C92 !important; 
542        font-weight: 700; 
543
544 
545    .sdt-list-tlq-items:hover > div > img { 
546        filter: invert(20%) sepia(202%) saturate(280%) hue-rotate(-10deg) brightness(140%) contrast(142%); 
547
548 
549    .sdt-list-tlq-items:hover::before { 
550        background: #0D4C92; 
551
552 
553 
554    .text-border { 
555        color: #000; 
556        font-size: 18px; 
557        font-style: normal; 
558        font-weight: 400; 
559        line-height: 130%; 
560        letter-spacing: 0.027px; 
561
562 
563    .form-chitiet { 
564        border-radius: 6px; 
565        background: #F2F2F2; 
566        border-color: #F2F2F2; 
567
568 
569    .form-chitiet::placeholder { 
570        color: rgba(119, 119, 119, 0.50); 
571        font-size: 14px; 
572        font-style: normal; 
573        font-weight: 400; 
574        line-height: 130%; 
575        letter-spacing: 0.021px; 
576
577 
578    .lbl-blyk { 
579        color: #000; 
580        font-size: 16px; 
581        font-style: normal; 
582        font-weight: 500; 
583        line-height: 130%; 
584        letter-spacing: 0.024px; 
585
586 
587    .align-right { 
588        text-align: right; 
589        border: 0; 
590
591 
592    .gg-custom { 
593        margin-top: 10px; 
594
595 
596    .avatar { 
597        display: block; 
598        width: 25px; 
599        height: 25px; 
600        margin-right: 13px; 
601        border-radius: 50%; 
602        overflow: hidden; 
603        flex: 0 0 auto; 
604
605 
606    .item { 
607        padding-bottom: 16px; 
608        margin-bottom: 16px; 
609        display: flex; 
610        border-bottom: 1px solid rgba(119, 119, 119, 0.30); 
611
612 
613    .user-name { 
614        color: #000; 
615        font-size: 16px; 
616        font-style: normal; 
617        font-weight: 700; 
618        line-height: 130%; 
619        letter-spacing: 0.024px; 
620
621 
622    .text-comment { 
623        color: #4D4D4D; 
624        font-size: 16px; 
625        font-style: normal; 
626        font-weight: 400; 
627        line-height: 130%; 
628        letter-spacing: 0.08px; 
629
630 
631    .btnmorecmt { 
632        width: 285px; 
633        padding: 12px 50px; 
634        justify-content: center; 
635        align-items: center; 
636        gap: 10px; 
637        border-radius: 8px; 
638        border: 1px solid #000; 
639        color: #000; 
640        font-size: 14px; 
641        font-style: normal; 
642        font-weight: 400; 
643        line-height: 130%; /* 18.2px */ 
644        letter-spacing: 0.021px; 
645        background: none; 
646
647 
648    .content-left-tlq { 
649        padding: 0 !important; 
650
651 
652    .content-right-tlq { 
653        /*padding-left: 32px !important;*/ 
654        padding: 10px 20px !important; 
655        background: #E0E0E04D; 
656        color: #212529; 
657
658 
659    .content-right-tlq:hover, 
660    .content-right-tlq:hover ~ .content-left-tlq { 
661        /*background-color: #0D4C92;*/ 
662
663 
664    .content-right-tlq:hover .text-title-tlq-img, 
665    .content-right-tlq:hover .text-des-tlq > p, 
666    .content-right-tlq:hover .text-readmore-tlq { 
667        /*color: #ffffff !important;*/ 
668
669 
670    .content-right-tlq, 
671    .content-left-tlq, 
672    .content-right-tlq .text-title-tlq-img, 
673    .content-right-tlq .text-des-tlq > p, 
674    .content-right-tlq .text-readmore-tlq { 
675        transition: all 0.9s ease; 
676
677 
678    @media only screen and (max-width: 576px) { 
679        .liferayckevideo.video-container video { 
680            width: 100% !important; 
681            height: 300px !important; 
682
683        .detail__sticky { 
684            display: none; 
685
686 
687        .h-img-ctbv { 
688            height: 100%; 
689
690 
691        .text-title-tlq-img { 
692            margin-top: 10px; 
693
694 
695        #tin-slide-img-left { 
696            height: 100% !important; 
697
698 
699        .content-right-tlq { 
700            padding-left: 12px !important; 
701
702 
703        #contentText p, 
704        #contentText > .text-summary > p { 
705            line-height: 1.6; 
706
707 
708
709 
710    .star { 
711        position: relative; 
712        display: inline-block; 
713        transition: color 0.2s ease; 
714        color: #ebebeb; 
715
716 
717    .star:before { 
718        content: '\2605'; 
719        width: 30px; 
720        height: 30px; 
721        font-size: 30px; 
722
723 
724    .star:hover, 
725    .star.selected, 
726    .star:hover ~ .star, 
727    .star.selected ~ .star { 
728        transition: color 0.8s ease; 
729        color: #FDE16D; 
730
731 
732    .ratings-wrapper { 
733        display: inline-block; 
734        margin-bottom: 20px; 
735
736 
737    .ratings { 
738        display: flex; 
739        flex-direction: row-reverse; 
740
741 
742    .ratings span { 
743        cursor: pointer; 
744        transition: color 0.8s ease; 
745        font-size: 50px; 
746
747 
748    .ratings span:hover { 
749        transition: color 0.8s ease; 
750        color: #FDE16D; 
751
752 
753    .ratings span:hover ~ span { 
754        transition: color 0.8s ease; 
755        color: #FDE16D; 
756
757 
758    .ratings span[data-clicked] { 
759        color: #FDE16D; 
760
761 
762    .ratings span[data-clicked] ~ span { 
763        color: #FDE16D; 
764
765 
766    .reset { 
767        font-size: 18px; 
768        text-decoration: none; 
769        background-color: #4f5a78; 
770        padding: 15px 50px; 
771        display: inline-block; 
772        margin-top: 20px; 
773        color: #fff; 
774        border: none; 
775        cursor: pointer; 
776
777 
778    .reset:hover { 
779        filter: brightness(1.2); 
780
781 
782    .asset-details .mr-3 a { 
783        display: none !important; 
784
785 
786    .separator { 
787        display: none !important; 
788
789 
790 
791    .title-ccni a{ 
792        text-decoration: none; 
793        color: #035FB5; 
794        font-size: clamp(16px, 3vw, 24px); 
795        font-weight: 700; 
796        line-height: 33.6px; 
797
798 
799    .title-ccni-icon { 
800        height: 24px; 
801
802    .line-tail-chitiet{ 
803        width: 100%; 
804        height: 2px; 
805        background: #DE6F18; 
806        position: absolute; 
807        bottom: 0; 
808        z-index: 1; 
809
810    .line-blue { 
811        width: 70%; 
812        height: 6px; 
813        background: #035FB5; 
814        clip-path: polygon(0 0, calc(100% - 6px) 0,  100% 6px, 0% 100%); 
815
816    .orange-line{ 
817        height: 6px; 
818        background: #DE6F18; 
819        clip-path: polygon(0 0, calc(100% - 4px) 0, 100% 100%, 0 100%); 
820
821    .label-binh-luan { 
822        color: #15191C; 
823        font-size: 14px; 
824        font-weight: 500; 
825        line-height: 18px; 
826
827 
828    .form-binh-luan { 
829        background: #E0E0E04D; 
830        padding: 1rem; 
831
832 
833    .btn-send-cmt { 
834        color: white; 
835        border-radius: 10px; 
836        box-shadow: -2px 2px 3px 0px #00000040; 
837        background: #DE6F18; 
838
839 
840    .btn-send-cmt:hover { 
841        color: white; 
842        border-radius: 10px; 
843        box-shadow: -2px 2px 3px 0px #00000040; 
844        background: #DE6F18; 
845
846 
847    .wrap-list-comment { 
848        border: 1px solid #848A8F; 
849        padding: 20px; 
850        border-radius: 10px; 
851
852 
853    .user-name-cmt { 
854        font-size: 16px; 
855        font-weight: 500; 
856        line-height: 20px; 
857        color: #15191C; 
858
859 
860    .time-comment { 
861        color: #848A8F; 
862
863 
864    .txt-content-cmt { 
865        font-size: 16px; 
866        font-weight: 400; 
867        line-height: 22.4px; 
868        color: #2E2E2E; 
869
870 
871    .thin-line { 
872        background: #EBEBEB; 
873        height: 1px; 
874
875 
876    .btn-xem-them-cmt { 
877        border-radius: 5px; 
878        font-size: 16px; 
879        padding: 10px; 
880        font-weight: 500; 
881        line-height: 22.4px; 
882        text-align: center; 
883        color: #0065B3; 
884        background: #E0E0E04D; 
885        border: 1px solid #035FB5; 
886
887 
888    .icon-tool { 
889        width: 25px; 
890        height: 25px; 
891        margin-right: 10px; 
892
893 
894 
895 
896 
897 
898    .img-lo57 { 
899        width: 100%; 
900        aspect-ratio: 4 / 3; 
901        object-fit: cover; 
902
903 
904    .img-nho-block11 { 
905        border-radius: 10px 10px 0 0; 
906
907 
908    .tin-nho-block11 { 
909        border-radius: 10px; 
910
911 
912    .title-tin-nho-block11 { 
913        height: 125px; 
914        overflow-y: auto; 
915        font-family: Roboto; 
916        font-size: clamp(14px, 2vw, 16px); 
917        font-weight: 500; 
918        text-align: left; 
919        color: rgba(46, 46, 46, 1); 
920        scrollbar-width: none; 
921        -ms-overflow-style: none; 
922
923 
924    .title-tin-nho-block11::-webkit-scrollbar { 
925        display: none; 
926
927 
928    .inner-bg-gray:hover { 
929        cursor: pointer; 
930 
931        .title-tin-nho-block11 { 
932            color: rgba(3, 95, 181, 1); 
933
934 
935        img { 
936            box-shadow: 4px 4px 4px 0px rgba(0, 0, 0, 0.25); 
937
938
939 
940    .item-small-news .inner-bg-gray { 
941        background-color: rgba(224, 224, 224, 0.3); 
942        height: 100%; 
943        width: 100%; 
944        border-radius: 8px; 
945        overflow: hidden; 
946        border-bottom: 1px solid rgba(235, 235, 235, 1); 
947
948 
949    @media (max-width: 992px) { 
950        .title-tin-nho-block11 { 
951            height: 100px; 
952
953
954 
955 
956    .tin-nho-block11 .under-ws { 
957        bottom: 0; 
958        left: 0; 
959        width: 100%; 
960        height: 35px; 
961        background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.7) 28.26%, #FFFFFF 59.44%); 
962
963 
964 
965 
966 
967 
968 
969 
970    .hoat-dong-khac-tin-khac { 
971        height: 100%; 
972        padding: 15px; 
973        background: #E0E0E04D; 
974
975    .hoat-dong-khac-tin-khac  .makeshortnews-pct-thuy { 
976        margin-bottom: 25px !important; 
977
978    .mg-b-24 { 
979        margin-bottom: 24px; 
980        display: flex; 
981        flex-direction: column; 
982        gap: 20px; 
983
984    .news-item-pvm .asset-publisher-title{ 
985        font-size: clamp(14px, 3vw, 18px); 
986        font-weight: 700; 
987        line-height: 25.2px; 
988        color: #2E2E2E; 
989
990    .news-item-pvm:hover .asset-publisher-title{ 
991        color: #035FB5; 
992
993    .news-item-pvm .tin-slide-img-left { 
994        width: 100%; 
995        aspect-ratio: 4 / 3; 
996        object-fit: cover; 
997        height: 100% !important; 
998
999    .news-item-pvm:hover .tin-slide-img-left{ 
1000        filter: drop-shadow(4px 4px 4px rgba(0, 0, 0, 0.25)); 
1001 
1002
1003 
1004    .title-tin-hd-khac{ 
1005        width: 100%; 
1006        padding-right: 14px; 
1007
1008    .hd-khac-tin-nho { 
1009        position: relative; 
1010
1011 
1012    .limit-tin-descc-news > p{ 
1013        color: #2E2E2E !important; 
1014
1015    .main-color-pct-tin-khac > p{ 
1016        color: #031739!important; 
1017
1018 
1019 
1020    .limit-3-lines{ 
1021        display: -webkit-box; 
1022        -webkit-line-clamp: 3; 
1023        -webkit-box-orient: vertical; 
1024        overflow: hidden; 
1025        text-overflow: ellipsis; 
1026
1027    .limit-5-lines-desc { 
1028        display: -webkit-box; 
1029        -webkit-line-clamp: 5; 
1030        -webkit-box-orient: vertical; 
1031        overflow: hidden; 
1032        text-overflow: ellipsis; 
1033
1034    @media screen and (max-width: 426px) { 
1035        .hoat-dong-khac-tin-khac{ 
1036            margin-left: 15px; 
1037            margin-right: 15px; 
1038
1039 
1040        .limit-5-lines-desc{ 
1041            line-height: 1.6; 
1042
1043        .hoat-dong-khac-tin-khac{ 
1044            padding-bottom: 30px; 
1045 
1046
1047        .img-hdk-ct{ 
1048            padding-right: 15px !important; 
1049
1050
1051    @media screen and (min-width: 768px) and (max-width: 993px) { 
1052        .liferayckevideo.video-container video { 
1053            width: 100% !important; 
1054            height: 400px !important; 
1055
1056 
1057
1058    @media screen and (min-width: 993px) and (max-width: 1025px) { 
1059        .liferayckevideo.video-container video { 
1060            width: 100% !important; 
1061            height: 500px !important; 
1062
1063
1064    @media screen and (min-width: 427px) and (max-width: 768px) { 
1065        .hoat-dong-khac-tin-khac{ 
1066            margin-left: 15px; 
1067            margin-right: 15px; 
1068
1069 
1070        .limit-5-lines-desc{ 
1071            line-height: 1.6; 
1072
1073        .hoat-dong-khac-tin-khac{ 
1074            padding-bottom: 30px; 
1075 
1076
1077        .img-hdk-ct{ 
1078            padding-right: 15px !important; 
1079
1080
1081 
1082 
1083    .binhLuanMacDinh{ 
1084        margin-bottom: 0; 
1085        color: #2E2E2E; 
1086        font-size: clamp(14px, 2vw, 16px); 
1087        font-weight: 600; 
1088
1089    @media screen and (min-width: 767.9px) and (max-width: 768px) { 
1090        .col-12.col-md-3.pr-0.img-hdk-ct { 
1091            padding-right: 0px !important; 
1092
1093
1094 
1095    .hoat-dong-khac-tin-khac.hd-khac-tin-nho.d-flex.flex-column.align-items-start { 
1096        margin-left: 0px !important; 
1097        margin-right: 0px !important; 
1098
1099 
1100    @media screen and (max-width: 932px) and (max-height: 430px) { 
1101        .mb-50 { 
1102            margin-bottom: -50px !important; 
1103
1104
1105 
1106    @media screen and (max-width: 810px) { 
1107        .mb-50-portal { 
1108            margin-bottom: -50px !important; 
1109
1110
1111 
1112    @media screen and (max-width: 912px) and (min-width: 911.99px) and (max-height: 1368px) and (min-height: 1367.99px) { 
1113        .mb-50-surface-pro-7 { 
1114            margin-bottom: -50px !important; 
1115
1116
1117 
1118    .mb-32 { 
1119        margin-bottom: -32px !important; 
1120
1121 
1122    .no-mt { 
1123        margin-top: 0px !important; 
1124
1125 
1126    .pb-32 { 
1127        padding-bottom: 32px !important; 
1128
1129 
1130    @media screen and (min-width: 992px) { 
1131        .mb-30 { 
1132            margin-bottom: -30px !important; 
1133
1134
1135 
1136    @media screen and (max-width: 740px) { 
1137        .hoat-dong-khac-tin-khac.hd-khac-tin-nho.d-flex.flex-column.align-items-start { 
1138            margin-left: 15px !important; 
1139            margin-right: 15px !important; 
1140
1141
1142 
1143    @media screen and (max-width: 768px) and (max-width: 767.99px) and (max-height: 1024px) and (min-height: 1023.99px) { 
1144        .col-12.col-md-4.pr-0.img-hdk-ct { 
1145            padding-right: 0px !important; 
1146
1147
1148    .popup-overlay { 
1149        position: fixed; 
1150        top: 0; 
1151        left: 0; 
1152        width: 100vw; 
1153        height: 100vh; 
1154        background-color: rgba(0, 0, 0, 0.5); /* lớp mờ xám */ 
1155        display: flex; 
1156        align-items: center; 
1157        justify-content: center; 
1158        z-index: 9998; /* thấp hơn popup một chút */ 
1159
1160 
1161    .custom-popup-ykien-binhluan { 
1162        background: white; 
1163        border-radius: 10px; 
1164        box-shadow: 0 0 15px rgba(0, 0, 0, 0.2); 
1165        z-index: 9999; 
1166        width: 300px; 
1167        padding: 20px; 
1168        text-align: center; 
1169        border: 1px solid #035FB5; 
1170
1171 
1172    .custom-popup-ykien-binhluan-content img.popup-icon { 
1173        width: 50px; 
1174        height: 50px; 
1175
1176 
1177    .custom-popup-ykien-binhluan-content div { 
1178        border-bottom: solid 1px #035FB5; 
1179        padding-bottom: 20px; 
1180
1181 
1182    .custom-popup-ykien-binhluan-content .popup-message { 
1183        margin-top: 2rem; 
1184        font-weight: bold; 
1185        color: #035FB5; 
1186
1187 
1188    .d-none { 
1189        display: none; 
1190
1191 
1192    .img-binhluan{ 
1193        height: 25px; 
1194        width: 25px; 
1195
1196    iframe[src*="facebook.com/plugins/video.php"] { 
1197        height: 420px !important; 
1198
1199 
1200</style> 
1201<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService" )> 
1202<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
1203 
1204<#assign currentArticle = JournalArticleLocalService.getArticle(getterUtil.getLong(groupId),.vars['reserved-article-id'].data)> 
1205<#assign currentArticleResourcePrimKey = currentArticle.getResourcePrimKey()> 
1206 
1207<#assign currentArticleAssetEntry = AssetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", currentArticleResourcePrimKey)/> 
1208 
1209<#assign articlePrimKey = currentArticle.resourcePrimKey> 
1210<#assign DDMStructureKey = currentArticle.DDMStructureKey> 
1211 
1212<#assign catLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")> 
1213<#assign articleCatId = catLocalService.getCategoryIds("com.liferay.journal.model.JournalArticle", getterUtil.getLong(articlePrimKey))> 
1214 
1215<#assign assetEntryQueryService = objectUtil('com.liferay.asset.kernel.service.AssetEntryLocalServiceUtil')> 
1216 
1217<#assign assetEntryQuery = objectUtil('com.liferay.asset.kernel.service.persistence.AssetEntryQuery')> 
1218 
1219 
1220<#assign search = assetEntryQuery.setAnyCategoryIds(articleCatId)> 
1221<#assign search = assetEntryQuery.setOrderByCol1("publishDate")/> 
1222<#assign search = assetEntryQuery.setStart(0)/> 
1223<#assign search = assetEntryQuery.setEnd(200)/> 
1224<#assign search = assetEntryQuery.setOrderByType1("DESC")/> 
1225 
1226<#assign teste = assetEntryQueryService.getEntries(assetEntryQuery) 
1227totalPage = 0/> 
1228 
1229<#assign 
1230title = .vars['reserved-article-title'].data 
1231portalURL = themeDisplay.getPortalURL() 
1232currentUrl = portalURL + themeDisplay.getURLCurrent() 
1233imageUrl = portalURL + .vars['reserved-article-small-image-url'].data 
1234<#--srcfb = "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"--> 
1235srcfb = "https://www.facebook.com/sharer/sharer.php?u=${currentUrl}" 
1236displayDate = .vars['reserved-article-display-date'].data 
1237summary = .vars['reserved-article-description'].data/> 
1238<#assign summaryText = htmlUtil.extractText(summary) > 
1239 
1240<#assign scopeId = themeDisplay.getScopeGroupId()> 
1241<#assign contentId = .vars['reserved-article-id'].data> 
1242<#assign originalLocale = .locale> 
1243<#setting locale = localeUtil.getDefault()> 
1244<#assign displayDate = displayDate?datetime("EEE, d MMM yyyy HH:mm:ss Z")> 
1245<#assign locale = originalLocale> 
1246<#--<#assign displayDate = displayDate?string("EEEE, dd/MM/yyyy, HH:mm a ")>--> 
1247<#assign displayDate = displayDate?string("dd/MM/yyyy HH:mm")> 
1248<#assign listLayoutDHD = [5474,5512,179]> 
1249<#assign layo = themeDisplay.getPlid() /> 
1250<#assign noImageUrl = "/documents/37638/0/ảnh-đại-diện-đà-nẵng-01.jpg" > 
1251<#assign danhMucTacGia = 348587> 
1252<#assign authorCategories = ""> 
1253<#list currentArticleAssetEntry.getCategories() as category> 
1254<#if category.vocabularyId == danhMucTacGia> 
1255<#if authorCategories?has_content> 
1256<#assign authorCategories = authorCategories + ", " + category.name> 
1257<#else> 
1258<#assign authorCategories = category.name> 
1259</#if> 
1260</#if> 
1261</#list> 
1262<@liferay_util["html-top"]> 
1263<meta name='DC.Creator' content="${authorCategories}"> 
1264<meta name="DC.Description" content="${summary?replace('<[^>]*>', '', 'r')}"> 
1265<meta name="title" property="og:title" content="${title?html}"> 
1266<meta name="image" property="og:image" content="${imageUrl}"> 
1267<meta name="imageurl" property="og:image:url" content="${imageUrl}"> 
1268<meta name="description" property="og:description" content="${summaryText}"> 
1269<meta name="url" property="og:url" content="${currentUrl}"> 
1270</@> 
1271<#assign 
1272theme_display = themeDisplay 
1273images_folder = theme_display.getPathThemeImages() 
1274 
1275/> 
1276 
1277<script> 
1278    $(document).ready(function () { 
1279        $(".hrefShareFb").attr("href", "https://www.facebook.com/sharer/sharer.php?u=" + window.location.href); 
1280        /*$("#hrefShareEmail").attr("href", "mailto:?subject=I wanted you to see this site&amp;body=Check out this site " + window.location.href);*/ 
1281        $("#hrefShareEmail").attr("href", 'https://mail.google.com/mail/u/0/?su='+'${title}'+'&body=' + window.location.href+'&fs=1&tf=cm'); 
1282        $("#hrefShareSkype").attr("href", "https://web.skype.com/share?url=" + window.location.href); 
1283        $("#trigger_zalo").attr("data-href", "" + window.location.href); 
1284        $(".hrefShareTwitter").attr("href", "https://twitter.com/intent/tweet?text=" + window.location.href); 
1285        var modal = $('.modal-thongtin'); 
1286        var btn = $('.btnsend'); 
1287        var button_dt = $('.button-dt'); 
1288        var button_dt_close = $('.button-dt-close'); 
1289        var span = $('.close'); 
1290        var baiVietId = $('#baiVietId'); 
1291        var tieuDe = $('#tieuDe'); 
1292        var commentContent = $('#commentContent'); 
1293        var commentName = $('#commentName'); 
1294        var commentAddress = $('#commentAddress'); 
1295        var commentEmail = $('#commentEmail'); 
1296 
1297        button_dt.click(function () { 
1298            const valid = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; 
1299            if (commentName.val().length == 0) { 
1300                commentName.css('border-color', 'red'); 
1301                commentName.focus(); 
1302            } else if (commentAddress.val().length == 0) { 
1303                commentAddress.css('border-color', 'red'); 
1304                commentAddress.focus(); 
1305            } else if (commentEmail.val().length == 0) { 
1306                commentEmail.css('border-color', 'red'); 
1307                commentEmail.focus(); 
1308            } else if (!valid.test(commentEmail.val())) { 
1309                commentEmail.css('border-color', 'red'); 
1310                commentEmail.focus(); 
1311                alert('Vui lòng nhập đúng email!'); 
1312            } else { 
1313                comment(baiVietId.val(), tieuDe.val(), commentContent.val(), commentName.val(), commentAddress.val(), commentEmail.val(), groupId); 
1314                commentContent.val(''); 
1315                commentName.val(''); 
1316                commentAddress.val(''); 
1317                commentEmail.val(''); 
1318                modal.hide(); 
1319                btn.show(); 
1320
1321        }); 
1322 
1323        button_dt_close.click(function () { 
1324            commentContent.val(''); 
1325            commentName.val(''); 
1326            commentAddress.val(''); 
1327            commentEmail.val(''); 
1328            commentName.css('border-color', '#ccc'); 
1329            commentAddress.css('border-color', '#ccc'); 
1330            commentEmail.css('border-color', '#ccc'); 
1331            modal.hide(); 
1332            btn.show(); 
1333 
1334        }); 
1335 
1336        span.click(function () { 
1337            commentContent.val(''); 
1338            commentName.val(''); 
1339            commentAddress.val(''); 
1340            commentEmail.val(''); 
1341            modal.hide(); 
1342            $('.replyBox').hide(); 
1343            btn.show(); 
1344 
1345            $('.inputReplyContent').val(''); 
1346            commentNameReply.val(''); 
1347            commentAddressReply.val(''); 
1348            commentEmailReply.val(''); 
1349            modal_reply.hide(); 
1350            $('.replyBox').hide(); 
1351            btnreply.show(); 
1352        }); 
1353 
1354        $(window).on('click', function (e) { 
1355            if ($(e.target).is('.modal-thongtin')) { 
1356                commentContent.val(''); 
1357                commentName.val(''); 
1358                commentAddress.val(''); 
1359                commentEmail.val(''); 
1360                modal.hide(); 
1361                btn.show(); 
1362
1363            if ($(e.target).is('.modal-thongtin-reply')) { 
1364                $('.inputReplyContent').val(''); 
1365                commentNameReply.val(''); 
1366                commentAddressReply.val(''); 
1367                commentEmailReply.val(''); 
1368                modal_reply.hide(); 
1369                btnreply.show(); 
1370
1371        }); 
1372 
1373 
1374        var modal_reply = $('.modal-thongtin-reply'); 
1375        var btnreply = $('.btnreply'); 
1376        var button_dt_reply = $('.button-dt-reply'); 
1377        var button_dt_reply_close = $('.button-dt-reply-close'); 
1378        var span = $('.close'); 
1379        var commentNameReply = $('#commentNameReply'); 
1380        var commentAddressReply = $('#commentAddressReply'); 
1381        var commentEmailReply = $('#commentEmailReply'); 
1382 
1383        function submitreply() { 
1384            var commentId = $('#commentId').val(); 
1385            if ($('#inputReplyContent' + commentId).val().length == 0) { 
1386                alert('Vui lòng nhập nội dung ý kiến!'); 
1387            } else { 
1388                modal_reply.show(); 
1389                $('#commentContentReply').val($('#inputReplyContent' + commentId).val()); 
1390                btnreply.hide(); 
1391
1392
1393 
1394        button_dt_reply.click(function () { 
1395            if (commentNameReply.val().length == 0) { 
1396                commentNameReply.css('border-color', 'red'); 
1397            } else if (commentAddressReply.val().length == 0) { 
1398                commentAddressReply.css('border-color', 'red'); 
1399            } else if (commentEmailReply.val().length == 0) { 
1400                commentEmailReply.css('border-color', 'red'); 
1401            } else { 
1402                replyComment($('#commentId').val(), baiVietId.val(), tieuDe.val(), $('#commentContentReply').val(), commentNameReply.val(), commentAddressReply.val(), commentEmailReply.val()); 
1403                $('.inputReplyContent').val(''); 
1404                commentNameReply.val(''); 
1405                commentAddressReply.val(''); 
1406                commentEmailReply.val(''); 
1407                modal_reply.hide(); 
1408
1409        }); 
1410 
1411        button_dt_reply_close.click(function () { 
1412            $('.inputReplyContent').val(''); 
1413            commentNameReply.val(''); 
1414            commentAddressReply.val(''); 
1415            commentEmailReply.val(''); 
1416            modal_reply.hide(); 
1417 
1418        }); 
1419    }); 
1420 
1421    function printById(elementId) { 
1422        var contentHTML = document.getElementById(elementId).innerHTML; 
1423        var titleDetail = document.getElementById('title-detail').innerHTML; 
1424        const baseUrl = window.location.origin; 
1425        contentHTML = contentHTML.replace(/src="\/(?!\/)/g, 'src="' + baseUrl + '/'); 
1426        var headerHTML = ` 
1427        <div class="menu-logo-90"> 
1428						<img src="https://cttdt.danangportal.gov.vn/o/portal-home-multi-theme/images/icons/DNG_icon.png" alt="logo" class="menu-logo__image-90 DN-logo"> 
1429							<div class="header-title mx-3"> 
1430								<div class="ttdt-header-1">CỔNG THÔNG TIN ĐIỆN TỬ</div> 
1431								<div class="ttdt-header-2"> 
1432 
1433									THÀNH PHỐ ĐÀ NẴNG 
1434								</div> 
1435								<div class="ttdt-header-3"> 
1436 
1437										WWW.DANANG.GOV.VN 
1438								</div> 
1439							</div> 
1440					</div> 
1441    `; 
1442        var printWindow = window.open('', '', 'width=800,height=600'); 
1443 
1444        printWindow.document.open(); 
1445        printWindow.document.write(` 
1446            <html> 
1447                <head> 
1448                    <style> 
1449.text-summary > p { 
1450        color: #000; 
1451        font-size: 16px; 
1452        font-style: italic; 
1453        font-weight: 700; 
1454        line-height: normal; 
1455
1456    p { 
1457        text-align: justify; 
1458        color: #2E2E2E; 
1459        font-size: 16px; 
1460        font-style: normal; 
1461        font-weight: 400; 
1462        line-height: 22.4px; 
1463        letter-spacing: 0.08px; 
1464
1465        .menu-logo-90 { 
1466        display: flex; 
1467        height: 132px; 
1468        padding: 9px; 
1469
1470 
1471    .menu-logo__image-90 { 
1472        object-fit: contain; 
1473
1474 
1475    .header-title { 
1476    line-height: 38px; 
1477    letter-spacing: 0.25px; 
1478    margin: auto; 
1479
1480 
1481.ttdt-header-1 { 
1482    letter-spacing: 6px; 
1483    color: #DE6F18; 
1484    font-weight: 700; 
1485    font-size: 22px; 
1486    font-family: 'Montserrat Bold' !important; 
1487    line-height: 30px; 
1488
1489 
1490.ttdt-header-2 { 
1491    color: #035FB5; 
1492    font-family: 'Montserrat Black' !important; 
1493    font-style: normal; 
1494    font-size: 36px; 
1495    font-weight: 900; 
1496    line-height: 50px; 
1497
1498 
1499.ttdt-header-3 { 
1500    letter-spacing: 11px; 
1501    color: #0065B3; 
1502    font-weight: 500; 
1503    font-size: 20px; 
1504    font-family: 'Montserrat Medium' !important; 
1505    line-height: 30px; 
1506
1507 
1508.print-separator { 
1509                    border: none; 
1510                    border-top: 2px solid #ccc; 
1511                    margin: 10px 0 25px 0; 
1512
1513 
1514                .display-img-default { 
1515    background: transparent !important; 
1516    height: fit-content !important; 
1517
1518 
1519.display-img-default > figure > img { 
1520    width: 95%; 
1521    height: auto !important; 
1522
1523                    </style> 
1524                </head> 
1525                <body>`+ headerHTML+`<hr class="print-separator">` + titleDetail+contentHTML+` 
1526                </body> 
1527            </html> 
1528        `); 
1529        printWindow.document.close(); 
1530        const interval = setInterval(() => { 
1531            if (printWindow.document.readyState === 'complete') { 
1532                clearInterval(interval); 
1533 
1534                const imgs = printWindow.document.images; 
1535                if (imgs.length === 0) { 
1536                    startPrint(); 
1537                    return; 
1538
1539 
1540                let loadedCount = 0; 
1541                for (let img of imgs) { 
1542                    if (img.complete) { 
1543                        loadedCount++; 
1544                        if (loadedCount === imgs.length) startPrint(); 
1545                    } else { 
1546                        img.onload = img.onerror = () => { 
1547                            loadedCount++; 
1548                            if (loadedCount === imgs.length) startPrint(); 
1549                        }; 
1550
1551
1552 
1553                function startPrint() { 
1554                    printWindow.focus(); 
1555                    setTimeout(() => { 
1556                        printWindow.print(); 
1557                        // printWindow.close(); // bật nếu bạn muốn tự đóng 
1558                    }, 300); 
1559
1560
1561        }, 100); 
1562
1563 
1564    $(function () { 
1565        var star = '.star', 
1566            selected = '.selected'; 
1567        $(star).on('click', function () { 
1568            $(selected).each(function () { 
1569                $(this).removeClass('selected'); 
1570            }); 
1571            $(this).addClass('selected'); 
1572        }); 
1573    }); 
1574 
1575    function submitreply() { 
1576        var commentId = $('#commentId').val(); 
1577        if ($('#inputReplyContent' + commentId).val().length == 0) { 
1578            alert('Vui lòng nhập nội dung ý kiến!'); 
1579        } else { 
1580            $('.modal-thongtin-reply').show(); 
1581            $('#commentContentReply').val($('#inputReplyContent' + commentId).val()); 
1582            $('.btnreply').hide(); 
1583
1584
1585 
1586    function changePageSize() { 
1587        var pageSize = $('#pageSize').val(); 
1588        var pageIndex = $('#pageIndex').val(); 
1589        paginate(pageIndex, pageSize); 
1590
1591 
1592    function changePageIndex() { 
1593        var pageSize = $('#pageSize').val(); 
1594        var pageIndex = $('#pageIndex').val(); 
1595        $('#curPage').val(pageIndex); 
1596        paginate(pageIndex, pageSize); 
1597
1598 
1599    function gotoPage(i) { 
1600        $('a[name="gotoPage"]').removeClass("active"); 
1601        $('#gotoPage' + i).addClass("active"); 
1602        $('.list-unstyled').css("display", "none"); 
1603        $('ul[name="list-unstyled-' + i + '"]').css("display", "grid"); 
1604        $('#currentPage').val(i); 
1605
1606 
1607    function previousPage() { 
1608        var i = $('#currentPage').val(); 
1609        if (i > 1) { 
1610            gotoPage(Number(i) - 1); 
1611
1612
1613 
1614    function nextPage() { 
1615        var i = $('#currentPage').val(); 
1616        var totalPage = $('#totalPages').val(); 
1617        console.log(i); 
1618        console.log(totalPage); 
1619        if (i < totalPage) { 
1620            gotoPage(Number(i) + 1); 
1621
1622
1623 
1624 
1625</script> 
1626<div id="fb-root"></div> 
1627<div class="detail__flex"> 
1628 
1629    <div class="detail__main"> 
1630        <#--        <span class="text-trangchu-ctbv">TRANG CHỦ / <span class="text-gioithieu-ctbv">TIN TỨC</span></span>--> 
1631        <div class="main-content main_blog_post_content"> 
1632            <div class="panel mbp_thumb_post mb-50-portal mb-50 mb-50-surface-pro-7 mb-30" id="main-body"> 
1633                <div style="margin:0px 0px;" id="title-detail"> 
1634                    <h3 class="title-divvv">${title}</h3> 
1635                </div> 
1636                <div class="shortcode-content hreview py-1 py-md-2"> 
1637                    <div class="article-head"> 
1638                        <div class="article-info" style="border-top: 0px;border-bottom: 0px; height: 33px;"> 
1639                            <div class="social-buttons left" style="float: left!important;"> 
1640                                <ul class="blog_sp_post_meta"> 
1641                                    <li class="list-inline-item"> 
1642                                        <span class="sp-dislaydate">${displayDate} , Lượt xem: ${currentArticleAssetEntry.viewCount} </span> 
1643                                    </li> 
1644                                </ul> 
1645                            </div> 
1646                            <div style="float: right"> 
1647                                <div class="wrap-tool d-flex"> 
1648                                    <a onclick="fontMinus();" href="javascript:void(0);" title="Giảm cỡ chữ" 
1649                                       class="" 
1650                                       data-toggle="tooltip"> 
1651                                                <span class="icon-tool"> 
1652                                                    <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" 
1653                                                         viewBox="0 0 28 28" fill="none"> 
1654                                                        <circle cx="14" cy="14" r="13.5" stroke="#777777"/> 
1655                                                        <path d="M17.5 15.5L13.75 11.75L10 15.5" stroke="#777777" 
1656                                                              stroke-width="1.5" 
1657                                                              stroke-linecap="round" stroke-linejoin="round"/> 
1658                                                    </svg> 
1659                                                </span> 
1660                                    </a> 
1661 
1662                                    <a onclick="fontPlus();" href="javascript:void(0);" title="Aa" class="" 
1663                                       data-toggle="tooltip"> 
1664                                                <span class="icon-tool"> 
1665                                                    <img src="/documents/37638/39612/Aa.svg" style="height: 20px" /> 
1666                                                </span> 
1667                                    </a> 
1668 
1669                                    <a onclick="fontPlus();" href="javascript:void(0);" title="Tăng cỡ chữ" class="" 
1670                                       data-toggle="tooltip"> 
1671                                                <span class="icon-tool"> 
1672                                                    <svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" 
1673                                                         viewBox="0 0 28 28" fill="none"> 
1674                                                        <circle cx="14" cy="14" r="13.5" transform="rotate(-180 14 14)" 
1675                                                                stroke="#777777"/> 
1676                                                        <path d="M10 12L13.75 15.75L17.5 12" stroke="#777777" 
1677                                                              stroke-width="1.5" stroke-linecap="round" 
1678                                                              stroke-linejoin="round"/> 
1679                                                    </svg> 
1680                                                </span> 
1681                                    </a> 
1682 
1683                                    <a onclick="giamTuongPhan();" href="javascript:void(0);" 
1684                                       data-toggle="tooltip" title="Giảm tương phản"> 
1685                                                <span class="icon-tool"> 
1686                                                    <img src="/o/portal-home-multi-theme/icons/trothinh/trothinh_bright-down-btn.png" 
1687                                                         style="vertical-align: middle;opacity: 1; height: 28px"/> 
1688                                                </span> 
1689                                    </a> 
1690 
1691                                    <a onclick="tangTuongPhan();" href="javascript:void(0);" 
1692                                       data-toggle="tooltip" title="Tăng tương phản"> 
1693                                                <span class="icon-tool"> 
1694                                                    <img src="/o/portal-home-multi-theme/icons/trothinh/trothinh_bright-up-btn.png" 
1695                                                         style="vertical-align: middle;opacity: 1; height: 28px"/> 
1696                                                </span> 
1697                                    </a> 
1698 
1699                                    <a onclick="voiceSpeak('contentText','voiceSex')" href="javascript:void(0);" 
1700 
1701                                       data-toggle="tooltip" 
1702                                       title="Đọc bài viết"> 
1703                                                <span class="icon-tool"> 
1704                                                    <svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" 
1705                                                         viewBox="0 0 28 28" fill="none"> 
1706                                                    <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" 
1707                                                          fill="#777777"/> 
1708                                                    </svg> 
1709                                                </span> 
1710                                    </a> 
1711                                    <a id="void-pause" onclick="voicePause()" href="javascript:void(0);" style="display:none;" 
1712                                       data-toggle="tooltip" 
1713                                       title="Tạm dừng đọc"> 
1714				<span class="icon"> 
1715					<span class="fa fa-pause mr-3" style="vertical-align: middle;opacity: 1;color: dimgray;"/> 
1716				</span> 
1717                                    </a> 
1718                                    <a id="void-resume" onclick="voiceResume()" href="javascript:void(0);" style="display:none;" 
1719                                       data-toggle="tooltip" 
1720                                       title="Tiếp tục đọc"> 
1721                                        <span class="icon fa fa-repeat mr-3" style="vertical-align: middle;opacity: 1;color: dimgray;"></span> 
1722                                    </a> 
1723                                    <a id="void-stop" onclick="voiceCancel()" href="javascript:void(0);" style="display:none;" 
1724                                       data-toggle="tooltip" 
1725                                       title="Dừng đọc"> 
1726                                        <span class="icon fa fa-stop mr-3" style="vertical-align: middle;opacity: 1;color: dimgray;"/> 
1727                                    </a> 
1728                                    <a target="_blank" id="hrefShareEmail" title="Gửi Mail" style="float: left" 
1729                                       data-toggle="tooltip"> 
1730                                                <span class="icon-tool"> 
1731                                                    <img src="/documents/37638/39612/icon-mail.svg" style="height: 25px" /> 
1732                                                </span> 
1733                                    </a> 
1734 
1735                                    <a onclick="printById('contentText')" href="javascript:void(0);" title="In bài" class="" style="float: left" 
1736                                       data-toggle="tooltip"> 
1737                                                <span class="icon-tool"> 
1738                                                    <img src="/documents/37638/39612/icon-print.svg" style="height: 25px" /> 
1739                                                </span> 
1740                                    </a> 
1741 
1742                                </div> 
1743                            </div> 
1744 
1745 
1746                            <input type="hidden" id="voiceSex" value="Vietnamese Female"/> 
1747                            <input type="hidden" id="tuongphan" value="3"/> 
1748                            <input type="hidden" id="DDMStructureKey" name="DDMStructureKey" 
1749                                   value="${DDMStructureKey}"/> 
1750                            <input type="hidden" id="baiVietId" name="baiVietId" value="${articlePrimKey}"/> 
1751                            <input type="hidden" id="commentId" name="commentId" value=""/> 
1752                            <input type="hidden" id="tieuDe" name="tieuDe" value="${title?html}"/> 
1753                            <input type="hidden" value="1" id="curPage"/> 
1754                            <input type="hidden" value="0" id="totalRelated"/> 
1755                            <input type="hidden" value="${currentUrl}" id="currentURL"/> 
1756                        </div> 
1757                    </div> 
1758                </div> 
1759                <div id="contentText" style="margin:10px 0px;"> 
1760                    <b style="text-align: justify;" class="text-summary">${summary}</b> 
1761                    <#assign sanitizedContent = noiDung.getData()?replace("<script>", "<p class='d-none'>")?replace("</script>", "</p>")> 
1762                    ${noiDung.getData()} 
1763                </div> 
1764                <div class="article-info"> 
1765                    <div class="row social-buttons"> 
1766                        <div class="col-lg-10 d-flex align-items-center"> 
1767                            <iframe class="share-fb-custom" src="https://www.facebook.com/plugins/share_button.php?href=${currentUrl}&layout=button_count&size=small&width=92&height=28&appId=252861586372350&locale=vi_VN" width="92" height="28" 
1768                                    style="border:none;overflow:hidden" scrolling="no" frameborder="0" 
1769                                    allowTransparency="true" allow="encrypted-media"></iframe> 
1770                            <div style="display: flex; align-items: center;"> 
1771                                <p class="text-dgbv">Đánh giá bài viết:</p> 
1772                                <div class="ratings-wrapper ml-2"> 
1773                                    <div data-productid="39" class="ratings"> 
1774                                        <span class="star" data-rating="5"></span> 
1775                                        <span class="star" data-rating="4"></span> 
1776                                        <span class="star" data-rating="3"></span> 
1777                                        <span class="star" data-rating="2"></span> 
1778                                        <span class="star" data-rating="1"></span> 
1779                                    </div> 
1780                                </div> 
1781                            </div> 
1782                        </div> 
1783                        <div class="col-lg-1 ctbv-right"></div> 
1784                    </div> 
1785                </div> 
1786                <div class="line no-mt"></div> 
1787 
1788                <#assign videoCategoryIds = [] /> 
1789                <#assign audioCategoryIds = [] /> 
1790                <#assign currentURL = themeDisplay.getURLCurrent()?lower_case /> 
1791                <div class="d-flex align-items-start pb-32"> 
1792                    <p class="title-content-vni mr-2"> 
1793                        <img src="/documents/37638/39612/icon-tag.svg" /> 
1794                    </p> 
1795                    <div class="d-flex flex-wrap" style="gap: 10px;"> 
1796                        <#list currentArticleAssetEntry.getCategories() as category> 
1797                        <#if category_index == 0> 
1798                        <span id="firstCategory" data-category="${category.name}"></span> 
1799                    </#if> 
1800                    <#if currentURL?contains("video")> 
1801                    <#if category.name?lower_case?contains("video")> 
1802                    <#assign videoCategoryIds = videoCategoryIds + [category.categoryId] /> 
1803                </#if> 
1804            </#if> 
1805            <#if currentURL?contains("audio")> 
1806            <#if category.name?lower_case?contains("audio")> 
1807            <#assign audioCategoryIds = audioCategoryIds + [category.categoryId] /> 
1808        </#if> 
1809    </#if> 
1810    <#if category.vocabularyId != danhMucTacGia> 
1811    <div class="tags mr-2" style=" background: #EBEBEB; border-radius: 6px; padding: 3px 8px; color: #5F676D; font-size: clamp(14px, 2vw, 16px); font-weight: 400;"> 
1812        <p data-categoryId="${category.categoryId}" class="tag mb-0">${category.name}</p> 
1813    </div> 
1814</#if> 
1815</#list> 
1816</div> 
1817</div> 
1818 
1819 
1820<script> 
1821    $(document).ready(function () { 
1822        getCurrentCategorie(); 
1823    }); 
1824 
1825    function getCurrentCategorie() { 
1826        var firstCategory = $("#firstCategory").data("category"); 
1827        if (firstCategory) { 
1828            $("#tinTucChiTietBreadcrumd a:last").html(' / ' + firstCategory); 
1829
1830
1831</script> 
1832 
1833<div class="line no-mt"></div> 
1834 
1835<div class="y-kien"> 
1836    <div class="position-relative d-flex flex-column" > 
1837        <div class="title-ccni" style="width: fit-content"> 
1838            <a class="d-flex align-items-center" style="margin-bottom: 10px"> 
1839                <p class="mb-0" data-lfr-editable-id="element-text" data-lfr-editable-type="text"> 
1840                    Ý KIẾN CỦA BẠN 
1841                </p> 
1842            </a> 
1843            <div class="spotlight-x" style=" 
1844width: 20%; 
1845position: absolute; 
1846bottom: 0; 
1847left: 0; 
1848z-index: 2; 
1849display: block; 
1850                            "> 
1851                <div class="d-flex orange-line"> 
1852                    <div class="line-blue"></div> 
1853                </div> 
1854            </div> 
1855            <div class="line-tail-chitiet position-absolute"></div> 
1856        </div> 
1857    </div> 
1858 
1859 
1860    <div class="form-binh-luan my-2"> 
1861        <form action="?" method="POST" class="needs-validation" novalidate="novalidate" onsubmit="return submitUserForm();"> 
1862            <div id="articleWrapper" 
1863                 data-article-id="${currentArticle.id}" 
1864                 data-article-title="${currentArticle.title?html}" 
1865                 data-article-author="${currentArticle.userName}" 
1866                 data-group-id="${groupId}" 
1867                 data-url-title="${currentArticle.urlTitle}"> 
1868            </div> 
1869            <div class="form-group"> 
1870                <label class="label-binh-luan" for="commentName">Tên <span class="text-danger">*</span></label> 
1871                <input type="text" class="form-control" id="commentName" placeholder="Nhập tên" title="tên" required> 
1872            </div> 
1873            <div class="form-row"> 
1874                <div class="form-group col-md-3"> 
1875                    <label class="label-binh-luan" for="soDienThoai">Số điện thoại <span class="text-danger">*</span></label> 
1876                    <input type="tel" max="12" id="soDienThoai" class="form-control" placeholder="Nhập số điện thoại" required /> 
1877                    <span id="soDienThoaiValid" style="color: red; font-size: 12px;"></span> 
1878                </div> 
1879                <div class="form-group col-md-9"> 
1880                    <label class="label-binh-luan" for="email">Thư điện tử <span class="text-danger">*</span></label> 
1881                    <input type="email" class="form-control" placeholder="Nhập thư điện tử" id="email" regex="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$" required> 
1882                </div> 
1883            </div> 
1884 
1885            <div class="form-group"> 
1886                <label class="label-binh-luan" for="commentContent">Bình luận, góp ý <span class="text-danger">*</span></label> 
1887                <textarea class="form-control" id="commentContent" placeholder="Nhập ý kiến của bạn ..." rows="3" required></textarea> 
1888            </div> 
1889            <div class="g-recaptcha gg-custom" 
1890                 data-sitekey="6LdJn8wUAAAAAMvr7BbFYRPvKU8CJh8eppjhQVrp" data-callback="verifyCaptcha"> 
1891            </div> 
1892            <div class="d-flex justify-content-end"> 
1893                <button type="submit" class="btn btn-send-cmt btnsend" onclick="sendFeedback()" style="">Gửi bình luận</button> 
1894            </div> 
1895        </form> 
1896    </div> 
1897</div> 
1898<div id="customSuccessPopupOverlay" class="popup-overlay d-none"> 
1899    <div id="customSuccessPopup" class="custom-popup-ykien-binhluan"> 
1900        <div class="custom-popup-ykien-binhluan-content"> 
1901            <div> 
1902                <img src="/documents/37638/0/daguibinhluan-icon.png" alt="Success Icon" class="popup-icon"/> 
1903            </div> 
1904            <p class="popup-message">"Cảm ơn bạn đã bình luận!"</p> 
1905        </div> 
1906    </div> 
1907</div> 
1908<div class="y-kien-ban-doc my-4"> 
1909    <div class="position-relative d-flex flex-column" > 
1910        <div class="title-ccni" style="width: fit-content"> 
1911            <a class="d-flex align-items-center" style="margin-bottom: 10px"> 
1912                <p class="mb-0" data-lfr-editable-id="element-text" data-lfr-editable-type="text"> 
1913                    Ý KIẾN BẠN ĐỌC 
1914                </p> 
1915            </a> 
1916            <div class="spotlight-x" style=" 
1917width: 20%; 
1918position: absolute; 
1919bottom: 0; 
1920left: 0; 
1921z-index: 2; 
1922display: block; 
1923                            "> 
1924                <div class="d-flex orange-line"> 
1925                    <div class="line-blue"></div> 
1926                </div> 
1927            </div> 
1928            <div class="line-tail-chitiet position-absolute"></div> 
1929        </div> 
1930    </div> 
1931 
1932    <div class="wrap-list-comment my-3"> 
1933        <div class="row"> 
1934            <div class="col-12"> 
1935                <div id="comment-list"></div> 
1936                <div id="binhLuanMacDinh"> <p class="binhLuanMacDinh"> Chưa có bình luận ý kiến bài viết! </p></div> 
1937            </div> 
1938        </div> 
1939    </div> 
1940</div> 
1941 
1942 
1943 
1944<div class="y-kien-ban-doc my-4"> 
1945    <div class="position-relative d-flex flex-column mb-3" > 
1946        <div class="title-ccni" style="width: fit-content"> 
1947            <a class="d-flex align-items-center" style="margin-bottom: 10px"> 
1948                <p class="mb-0" data-lfr-editable-id="element-text" data-lfr-editable-type="text"> 
1949                    CÁC TIN KHÁC 
1950                </p> 
1951            </a> 
1952            <div class="spotlight-x" style=" width:18%; position: absolute; bottom: 0; left: 0; z-index: 2; display: block;"> 
1953                <div class="d-flex orange-line"> 
1954                    <div class="line-blue"></div> 
1955                </div> 
1956            </div> 
1957            <div class="line-tail-chitiet position-absolute"></div> 
1958        </div> 
1959    </div> 
1960 
1961 
1962    <div class="col-lg-12 col-xl-12 mb-4 px-lg-0 px-3"> 
1963        <#if teste?has_content> 
1964        <div class="row"> 
1965            <#assign indexLocal = 0/> 
1966            <#assign isSpecialSite = getterUtil.getBoolean(themeDisplay.getThemeSetting("isSpecialSite")) /> 
1967            <#list teste?filter(curEntryyy -> curEntryyy.getEntryId() != currentArticleAssetEntry.getEntryId()) as  curEntryyy> 
1968            <#if curEntryyy?? && curEntryyy.getAssetRenderer()??> 
1969            <#assign 
1970            renderer = curEntryyy.getAssetRenderer() 
1971            className = renderer.getClassName()!"" /> 
1972            <#if className == "com.liferay.journal.model.JournalArticle"> 
1973            <#assign 
1974            title = curEntryyy.getTitle(locale)!"" 
1975            article = renderer.getArticle() 
1976            SmallImageID  = article.getSmallImageId() 
1977            SmallImage  = article.getSmallImageURL() 
1978            viewCount = curEntryyy.getViewCount() 
1979            description = article.getDescription(locale)!"" 
1980            curEntryyy = curEntryyy 
1981            viewURL = "${themeDisplay.getPathFriendlyURLPublic()}${themeDisplay.getSiteGroup().getFriendlyURL()}/-/${renderer.getUrlTitle()}" 
1982            hasMatch = false /> 
1983            <#if isSpecialSite?? && isSpecialSite?c == "true"> 
1984            <#assign currentUrl = themeDisplay.getURLCurrent()!"" /> 
1985            <#if currentUrl?has_content> 
1986            <#assign parts_split = currentUrl?split("/")> 
1987            <#assign aidx = parts_split?seq_index_of("asset_publisher")> 
1988            <#if aidx != -1 && (parts_split?size > (aidx + 1))> 
1989            <#assign portletKey = parts_split[aidx + 1]> 
1990            <#else> 
1991            <#if rvlr??> 
1992            <#assign portletKey = rvlr> 
1993            <#else> 
1994            <#assign portletKey = "default_portlet_key"> 
1995        </#if> 
1996    </#if> 
1997</#if> 
1998</#if> 
1999 
2000<#if videoCategoryIds?has_content > 
2001<#list curEntryyy.getCategories() as categoryList> 
2002<#if videoCategoryIds?seq_contains(categoryList.getCategoryId())> 
2003<#assign hasMatch = true /> 
2004<#break /> 
2005</#if> 
2006</#list> 
2007<#elseif audioCategoryIds?has_content > 
2008<#list curEntryyy.getCategories() as categoryList> 
2009<#if audioCategoryIds?seq_contains(categoryList.getCategoryId())> 
2010<#assign hasMatch = true /> 
2011<#break /> 
2012</#if> 
2013</#list> 
2014 
2015<#else> 
2016<#list curEntryyy.getCategories() as categoryList> 
2017<#list currentArticleAssetEntry.getCategories() as cateId> 
2018<#if categoryList.getCategoryId() == cateId.getCategoryId()> 
2019<#assign hasMatch = true /> 
2020<#break /> 
2021</#if> 
2022</#list> 
2023<#if hasMatch> 
2024<#break /> 
2025</#if> 
2026</#list> 
2027</#if> 
2028<#if hasMatch> 
2029<#assign indexLocal = indexLocal + 1 /> 
2030<#if indexLocal < 13> 
2031<#if SmallImage ?? && SmallImage?length !=0 > 
2032<#assign smallImageUrl = SmallImage> 
2033<#elseif SmallImageID ?? && SmallImageID != 0> 
2034<#assign smallImageUrl = "/image/journal/article?img_id=${article.getSmallImageId()}"> 
2035<#else> 
2036<#assign smallImageUrl = "/documents/37638/0/ảnh-đại-diện-đà-nẵng-01.jpg" > 
2037</#if> 
2038<div class="col-6 col-lg-4 item-small-news mb-2 px-1 px-lg-3"> 
2039    <a class="inner-bg-gray" href="${viewURL}" title="${title}"> 
2040        <div class="row"> 
2041            <div class="col-12"> 
2042                <div class="tin-nho-block11 position-relative" > 
2043                    <img src="${smallImageUrl}" alt="" class="img-nho-block11 img-lo57" onerror="this.onerror=null; this.src='/documents/37638/0/ảnh-đại-diện-đà-nẵng-01.jpg';"> 
2044                    <div class="p-2 p-lg-3 title-tin-nho-block11"> 
2045                        ${title} 
2046                    </div> 
2047                    <div class="under-ws position-absolute"></div> 
2048                </div> 
2049            </div> 
2050        </div> 
2051    </a> 
2052</div> 
2053</#if> 
2054<#if indexLocal == 12> 
2055<#break> 
2056</#if> 
2057</#if> 
2058</#if> 
2059</#if> 
2060</#list> 
2061</div> 
2062</#if> 
2063</div> 
2064</div> 
2065 
2066 
2067<div class="tin-doc-nhieu-nhat"> 
2068    <div class="position-relative d-flex flex-column mb-3" > 
2069        <div class="title-ccni" style="width: fit-content"> 
2070            <a class="d-flex align-items-center" style="margin-bottom: 10px"> 
2071                <p class="mb-0" data-lfr-editable-id="element-text" data-lfr-editable-type="text"> 
2072                    TIN ĐỌC NHIỀU 
2073                </p> 
2074            </a> 
2075            <div class="spotlight-x" style=" 
2076width:18%; 
2077position: absolute; 
2078bottom: 0; 
2079left: 0; 
2080z-index: 2; 
2081display: block; 
2082                                "> 
2083                <div class="d-flex orange-line"> 
2084                    <div class="line-blue"></div> 
2085                </div> 
2086            </div> 
2087            <div class="line-tail-chitiet position-absolute"></div> 
2088        </div> 
2089    </div> 
2090    <div class=" p-0 scroll-divv news-container-pvm "> 
2091        <#if teste?has_content> 
2092        <div class=" news-item-pvm mg-b-24"> 
2093            <#assign indexLocal = 0/> 
2094            <#assign 
2095            isSpecialSite = getterUtil.getBoolean(themeDisplay.getThemeSetting("isSpecialSite")) 
2096            /> 
2097            <#assign sortedEntries = teste?sort_by("viewCount")?reverse /> 
2098            <#list sortedEntries?filter(curEntryyy -> curEntryyy.getEntryId() != currentArticleAssetEntry.getEntryId()) as  curEntryyy> 
2099            <#if curEntryyy?? && curEntryyy.getAssetRenderer()??> 
2100            <#assign 
2101            renderer = curEntryyy.getAssetRenderer() 
2102            className = renderer.getClassName()!"" /> 
2103            <#if className == "com.liferay.journal.model.JournalArticle"> 
2104            <#assign 
2105            title = curEntryyy.getTitle(locale)!"" 
2106            article = renderer.getArticle() 
2107            SmallImageID  = article.getSmallImageId() 
2108            SmallImage  = article.getSmallImageURL() 
2109            <#--SmallImageID = article.getSmallImageId()!0 
2110            SmallImage = article.getSmallImageURL()!""--> 
2111            description = article.getDescription(locale)!"" 
2112            curEntryyy = curEntryyy 
2113            countView = curEntryyy.getViewCount() 
2114            viewURL = "${themeDisplay.getPathFriendlyURLPublic()}${themeDisplay.getSiteGroup().getFriendlyURL()}/-/${renderer.getUrlTitle()}" 
2115            hasMatch = false /> 
2116            <#if isSpecialSite?? && isSpecialSite?c == "true"> 
2117            <#assign currentUrl = themeDisplay.getURLCurrent()!"" /> 
2118            <#if currentUrl?has_content> 
2119            <#assign parts_split = currentUrl?split("/")> 
2120            <#assign aidx = parts_split?seq_index_of("asset_publisher")> 
2121            <#if aidx != -1 && (parts_split?size > (aidx + 1))> 
2122            <#assign portletKey = parts_split[aidx + 1]> 
2123            <#else> 
2124            <#if rvlr??> 
2125            <#assign portletKey = rvlr> 
2126            <#else> 
2127            <#assign portletKey = "default_portlet_key"> 
2128        </#if> 
2129    </#if> 
2130</#if> 
2131</#if> 
2132<#if videoCategoryIds?has_content> 
2133<#list curEntryyy.getCategories() as categoryList> 
2134<#if videoCategoryIds?seq_contains(categoryList.getCategoryId())> 
2135<#assign hasMatch = true /> 
2136<#break /> 
2137</#if> 
2138</#list> 
2139<#elseif audioCategoryIds?has_content > 
2140<#list curEntryyy.getCategories() as categoryList> 
2141<#if audioCategoryIds?seq_contains(categoryList.getCategoryId())> 
2142<#assign hasMatch = true /> 
2143<#break /> 
2144</#if> 
2145</#list> 
2146<#else> 
2147<#list curEntryyy.getCategories() as categoryList> 
2148<#list currentArticleAssetEntry.getCategories() as cateId> 
2149<#if categoryList.getCategoryId() == cateId.getCategoryId()> 
2150<#assign hasMatch = true /> 
2151<#break /> 
2152</#if> 
2153</#list> 
2154<#if hasMatch> 
2155<#break /> 
2156</#if> 
2157</#list> 
2158</#if> 
2159 
2160<#if hasMatch> 
2161<#assign indexLocal = indexLocal + 1 /> 
2162<#if indexLocal < 11> 
2163<#if SmallImage ?? && SmallImage?length !=0 > 
2164<#assign smallImageUrl = SmallImage> 
2165<#elseif SmallImageID ?? && SmallImageID != 0> 
2166<#assign smallImageUrl = "/image/journal/article?img_id=${SmallImageID}"> 
2167<#else> 
2168<#assign smallImageUrl = "/documents/37638/0/ảnh-đại-diện-đà-nẵng-01.jpg" > 
2169</#if> 
2170<span class="abcd" style="display:none;">${article}</span> 
2171<a href="${viewURL}" class=" w-100 same-height"> 
2172    <div class="row"> 
2173        <div class="col-12 col-md-4 pr-0 img-hdk-ct"> 
2174            <img id="tin-slide-img-left" 
2175                 class=" tin-slide-img-left img-tin-hd-khac" 
2176                 onerror="this.onerror=null; this.src='/documents/37638/0/ảnh-đại-diện-đà-nẵng-01.jpg';" 
2177                 src="${smallImageUrl}" alt=""> 
2178        </div> 
2179        <div class="col-12 col-md-8 limit-tin-desc-news-3 p-0 pr-md-3 title-tin-hd-khac"> 
2180            <div class="hoat-dong-khac-tin-khac hd-khac-tin-nho d-flex flex-column align-items-start" style="gap: 8px;"> 
2181                <div class="limit-tin-desc-2 main-color-pct-tin-khac"> 
2182                    <p class="makeshortnews asset-publisher-title mb-0 limit-tin-desc-2 limit-3-lines" title="${title}">${title}</p> 
2183                </div> 
2184                <div class="text-left align-items-start top-0 limit-tin-descc-news limit-5-lines-desc description-color d-mobile-none"><p title="${htmlUtil.extractText(description)}">${htmlUtil.extractText(description)}</p></div> 
2185            </div> 
2186        </div> 
2187    </div> 
2188</a> 
2189</#if> 
2190<#if indexLocal == 10> 
2191<#break> 
2192</#if> 
2193</#if> 
2194 
2195</#if> 
2196</#if> 
2197</#list> 
2198</div> 
2199</#if> 
2200 
2201 
2202<script> 
2203    $(document).ready(function () { 
2204        //load lần đầu lấy 3 comments 
2205        getFeedback(3); 
2206 
2207 
2208        let stars = document.querySelectorAll(".ratings span"); 
2209        let products = document.querySelectorAll(".ratings"); 
2210        let ratings = []; 
2211 
2212        for (let star of stars) { 
2213            star.addEventListener("click", function () { 
2214                let children = star.parentElement.children; 
2215                for (let child of children) { 
2216                    if (child.getAttribute("data-clicked")) { 
2217                        return false; 
2218
2219
2220 
2221                this.setAttribute("data-clicked", "true"); 
2222                let rating = this.dataset.rating; 
2223                let productId = this.parentElement.dataset.productid; 
2224                let data = { 
2225                    "rating": rating, 
2226                    "product-id": productId, 
2227
2228                ratings.push(data); 
2229                localStorage.setItem("rating", JSON.stringify(ratings)); 
2230            }); 
2231
2232 
2233        if (localStorage.getItem("rating")) { 
2234            ratings = JSON.parse(localStorage.getItem("rating")); 
2235            for (let rating of ratings) { 
2236                for (let product of products) { 
2237                    if (rating["product-id"] == product.dataset.productid) { 
2238                        let reverse = Array.from(product.children).reverse(); 
2239                        let index = parseInt(rating["rating"]) - 1; 
2240                        reverse[index].setAttribute("data-clicked", "true"); 
2241
2242
2243
2244
2245    }); 
2246 
2247 
2248 
2249    function submitUserForm() { 
2250        var response = grecaptcha.getResponse(); 
2251        if (response.length == 0) { 
2252            $("#g-recaptcha-error").html("<span style='color:red;'>This field is required.</span>"); 
2253            return false; 
2254
2255        return true; 
2256    }; 
2257    function verifyCaptcha() { 
2258        $("#g-recaptcha-error").html(""); 
2259
2260 
2261    function sendFeedback() { 
2262        event.preventDefault(); 
2263        let isValid = true; 
2264        let btn = $(".btnsend"); 
2265        if (btn.prop("disabled")) return; 
2266        btn.prop("disabled", true); 
2267        /*var response = grecaptcha.getResponse(); 
2268        if (response.length == 0) { 
2269            $("#g-recaptcha-error").html("<span style='color:red;'>This field is required.</span>"); 
2270            return false; 
2271        }*/ 
2272 
2273        const sdt = $('#soDienThoai').val().trim(); 
2274        if (!/^\d*$/.test(sdt)) { 
2275            $('#soDienThoai').addClass('is-invalid'); 
2276            $('#soDienThoaiValid').text("Số điện thoại chỉ được nhập số"); 
2277            isValid = false; 
2278        } else if (sdt.length !== 10 && sdt.length !== 0) { 
2279            $('#soDienThoai').addClass('is-invalid'); 
2280            $('#soDienThoaiValid').text("Số điện thoại phải đủ 10 số"); 
2281            isValid = false; 
2282        } else { 
2283            $('#soDienThoaiValid').text(""); 
2284            $('#soDienThoai').removeClass('is-invalid'); 
2285
2286 
2287        $('[required]').each(function () { 
2288            let fieldTitle = $(this).attr('title'); 
2289            if ($(this).val().toString().trim().length == 0) { 
2290                isValid = false; 
2291                btn.prop("disabled", false); 
2292                Swal.fire({ 
2293                    title: "Vui lòng nhập thông tin", 
2294                    icon: "error", 
2295                }) 
2296                return false; 
2297            } else if ($(this).attr("regex") != undefined) { 
2298                let regex = new RegExp($(this).attr('regex')); 
2299                if (!regex.test($(this).val())) { 
2300                    isValid = false; 
2301                    btn.prop("disabled", false); 
2302                    Swal.fire({ 
2303                        title: "Vui lòng nhập đúng định dạng", 
2304                        icon: "error", 
2305                    }) 
2306                    return false; 
2307
2308 
2309
2310        }); 
2311        if (!isValid) { 
2312            btn.prop("disabled", false); 
2313            return false; 
2314
2315        fetch('https://api.ipify.org?format=json') 
2316            .then(response => response.json()) 
2317            .then(data => { 
2318                const ipAddress = data.ip; 
2319                const articleId = $('#articleWrapper').data('article-id'); 
2320                const title = $('#articleWrapper').data('article-title'); 
2321                const author = $('#articleWrapper').data('article-author'); 
2322                const groupId = $('#articleWrapper').data('group-id'); 
2323                const urlArticle = $('#articleWrapper').data('url-title'); 
2324                const param = JSON.stringify({ 
2325                    baiVietId: articleId, 
2326                    noiDung: $("#commentContent").val(), 
2327                    ten: $("#commentName").val(), 
2328                    mail: $("#email").val(), 
2329                    soDienThoai: $("#soDienThoai").val(), 
2330                    tieuDeBaiViet: title, 
2331                    tenTacGia: author, 
2332                    ipNguoiDung: ipAddress, 
2333                    groupId : groupId, 
2334                    urlBaiViet: urlArticle 
2335                }); 
2336                $.ajax({ 
2337                    url: location.origin+'/api/v1/public/tuongtacbaiviet/themBinhLuan', 
2338                    type: 'POST', 
2339                    cache: false, 
2340                    dataType:"json", 
2341                    contentType:"application/json", 
2342                    data:param, 
2343                    /*data: { 
2344                        baiVietId: '${currentArticle.id}', 
2345    noiDung: $("#commentContent").val(), 
2346    ten: $("#commentName").val(), 
2347    mail: $("#email").val(), 
2348    soDienThoai: $("#soDienThoai").val(), 
2349    tieuDeBaiViet: '${currentArticle.title}', 
2350    tenTacGia: '${currentArticle.userName}', 
2351    },*/ 
2352 
2353                    success: function () { 
2354                        $("#customSuccessPopupOverlay").removeClass("d-none"); 
2355 
2356                        $("#commentContent").val(''); 
2357                        $("#commentName").val(''); 
2358                        $("#email").val(''); 
2359                        $("#soDienThoai").val(''); 
2360                        btn.prop("disabled", false); 
2361                        setTimeout(function () { 
2362                            $("#customSuccessPopupOverlay").addClass("d-none"); 
2363                        }, 3000); 
2364                    }, 
2365                    error: function (er) { 
2366                        btn.prop("disabled", false); 
2367                        Swal.fire({ 
2368                            title: "Thực hiện không thành công", 
2369                            text: 'Gửi bình luận thất bại', 
2370                            icon: "error", 
2371                        }) 
2372
2373                });}) 
2374            .catch(error => { 
2375                btn.prop("disabled", false); 
2376                Swal.fire({ 
2377                    title: "Thực hiện không thành công", 
2378                    text: 'Gửi bình luận thất bại', 
2379                    icon: "error", 
2380                }) 
2381            }); 
2382
2383    $(document).ready(function () { 
2384        $("#customSuccessPopupOverlay").on("click", function () { 
2385            $(this).addClass("d-none"); 
2386        }); 
2387 
2388        $(".custom-popup-ykien-binhluan").on("click", function (e) { 
2389            e.stopPropagation(); 
2390        }); 
2391    }); 
2392    function getFeedback(sizecmt) { 
2393        $('#comment-list').empty(); 
2394        const param = JSON.stringify({ 
2395            baiVietId: '${currentArticle.id}' 
2396        }); 
2397        $.ajax({ 
2398            url: location.origin+'/api/v1/public/tuongtacbaiviet/truyCapBaiViet', 
2399            type: 'POST', 
2400            cache : false, 
2401            dataType:"json", 
2402            contentType:"application/json", 
2403            data: param, 
2404        }).done(function (data) { 
2405 
2406            console.log(data) 
2407            var dsBinhLuan = data.msg.thongTinBinhLuans; 
2408            var count = data.msg.thongTinBinhLuans.length; 
2409            var htmlYKien = ''; 
2410            if (dsBinhLuan.length > 0) { 
2411                $('#binhLuanMacDinh').empty(); 
2412                // htmlYKien += '<h2 class="botting-border"><span class="text-border">Bình luận, ý kiến của bạn đọc (' + count + ')</span></h2>'; 
2413                for (var i = 0; i < dsBinhLuan.length; i++) { 
2414                    var obj = dsBinhLuan[i]; 
2415                    htmlYKien += '<div class="item box_cm">'; 
2416                    htmlYKien += '<a href="javascript:void(0)" class="avatar">\n' + 
2417                        '    <img src="${images_folder}/icons/iconuser.png" class="img-binhluan">\n' + 
2418                        '</a>'; 
2419                    htmlYKien += '<div class="item-content">'; 
2420                    htmlYKien += '<span class="user-name">' + obj.ten + '</span>' + ' <span class="date-cmt">' + obj.thoiGianBinhLuan + '</span></br>'; 
2421                    htmlYKien += '<span class="text-comment">' + obj.noiDungHienThi + '</span>'; 
2422                    htmlYKien += '</div>'; 
2423                    htmlYKien += '</div>'; 
2424
2425                if (count > sizecmt) { 
2426                    htmlYKien += '<div class="text-center">\n' + 
2427                        '<button type="submit" class="btnmorecmt" onclick="getFeedback(' + (sizecmt + 10) + ')" >Xem thêm bình luận, ý kiến\n' + 
2428                        '</button>\n' + 
2429                        '</div>'; 
2430
2431                $('#comment-list').append(htmlYKien); 
2432
2433
2434        }); 
2435
2436</script> 
2437<script src="https://sp.zalo.me/plugins/sdk.js"></script> 
2438<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> 
2439<script src="https://code.responsivevoice.org/responsivevoice.js?key=25hFfRt0"></script> 
2440<script async defer crossorigin="anonymous" src="https://connect.facebook.net/vi_VN/sdk.js#xfbml=1&version=v17.0" 
2441        nonce="vuMxJ4dq"></script> 
2442<script src="https://www.google.com/recaptcha/api.js" async defer></script> 
2443 
2444 
2445<#macro getMetadataField 
2446fieldName 
2447
2448<#if stringUtil.split(metadataFields)?seq_contains(fieldName)> 
2449<span class="metadata-entry metadata-${fieldName}"> 
2450 			<#assign dateFormat = "dd MMM yyyy - HH:mm:ss" /> 
2451 
2452                                    <#if stringUtil.equals(fieldName, "author")> 
2453                                        <@liferay.language key="by" /> ${htmlUtil.escape(portalUtil.getUserName(assetRenderer.getUserId(), assetRenderer.getUserName()))} 
2454                                    <#elseif stringUtil.equals(fieldName, "categories")> 
2455                                        <@liferay_asset["asset-categories-summary"] 
2456                                        className=curEntry.getClassName() 
2457                                        classPK=curEntry.getClassPK() 
2458                                        portletURL=renderResponse.createRenderURL() 
2459                                        /> 
2460                                    <#elseif stringUtil.equals(fieldName, "create-date")> 
2461                                        ${dateUtil.getDate(curEntry.getCreateDate(), dateFormat, locale)} 
2462                                    <#elseif stringUtil.equals(fieldName, "expiration-date")> 
2463                                        ${dateUtil.getDate(curEntry.getExpirationDate(), dateFormat, locale)} 
2464                                    <#elseif stringUtil.equals(fieldName, "modified-date")> 
2465                                        ${dateUtil.getDate(curEntry.getModifiedDate(), dateFormat, locale)} 
2466                                    <#elseif stringUtil.equals(fieldName, "priority")> 
2467                                        ${curEntry.getPriority()} 
2468                                    <#elseif stringUtil.equals(fieldName, "publish-date")> 
2469                                        ${dateUtil.getDate(curEntry.getPublishDate(), dateFormat, locale)} 
2470                                    <#elseif stringUtil.equals(fieldName, "tags")> 
2471                                        <@liferay_asset["asset-tags-summary"] 
2472                                        className=curEntry.getClassName() 
2473                                        classPK=curEntry.getClassPK() 
2474                                        portletURL=renderResponse.createRenderURL() 
2475                                        /> 
2476                                    <#elseif stringUtil.equals(fieldName, "view-count")> 
2477                                        ${curEntry.getViewCount()} 
2478                                    </#if> 
2479</span> 
2480</#if> 
2481</#macro> 
2482 
2483<script> 
2484    $(document).ready(function() { 
2485        function getCleanUrl(url) { 
2486            if(!url) return ""; 
2487 
2488            // Xử lý trường hợp URL có phần /ID và tham số query 
2489            var match = url.match(/(.+\.mp4)\/[^\/]+(\?.*)?$/); 
2490            if(match) { 
2491                return match[1]; 
2492
2493 
2494            // Trường hợp URL chỉ có .mp4 và tham số query 
2495            var queryIndex = url.indexOf('?'); 
2496            if(queryIndex !== -1 && url.indexOf('.mp4') < queryIndex) { 
2497                return url.substring(0, queryIndex); 
2498
2499 
2500            // Trường hợp URL chỉ kết thúc với .mp4 
2501            var mp4Index = url.indexOf('.mp4'); 
2502            if(mp4Index !== -1) { 
2503                return url.substring(0, mp4Index + 4); 
2504
2505 
2506            return url; 
2507
2508 
2509        function processVideo(videoElement) { 
2510            try { 
2511                // Xử lý source trong video 
2512                var sourceElements = videoElement.find("source"); 
2513                if(sourceElements.length > 0) { 
2514                    sourceElements.each(function() { 
2515                        var sourceUrl = $(this).attr("src"); 
2516                        if(sourceUrl) { 
2517                            var cleanSourceUrl = getCleanUrl(sourceUrl); 
2518                            $(this).attr("src", cleanSourceUrl); 
2519                            // Sửa lỗi type có dấu chấm phẩy 
2520                            var type = $(this).attr("type"); 
2521                            if(type && type.endsWith(';')) { 
2522                                $(this).attr("type", type.slice(0, -1)); 
2523
2524
2525                    }); 
2526                } else { 
2527                    // Xử lý trường hợp video không có thẻ source 
2528                    var videoSrc = videoElement.attr("src"); 
2529                    if(videoSrc) { 
2530                        var cleanVideoSrc = getCleanUrl(videoSrc); 
2531                        videoElement.attr("src", cleanVideoSrc); 
2532
2533
2534 
2535                // Xử lý poster 
2536                var posterUrl = videoElement.attr("poster"); 
2537                if(posterUrl) { 
2538                    var cleanPosterUrl = getCleanUrl(posterUrl); 
2539                    videoElement.attr("poster", cleanPosterUrl); 
2540
2541 
2542                // Tải lại video 
2543                if(videoElement[0]) { 
2544                    videoElement[0].load(); 
2545
2546            } catch(e) { 
2547                console.error("Lỗi khi xử lý video:", e); 
2548
2549
2550 
2551        function processAllVideos() { 
2552 
2553 
2554            // Xử lý video trong contentText 
2555            if($("#contentText").length) { 
2556                $("#contentText video").each(function() { 
2557                    processVideo($(this)); 
2558                }); 
2559
2560 
2561            // Xử lý video trong liferayckevideo 
2562            $(".liferayckevideo").each(function() { 
2563                var container = $(this); 
2564                var video = container.find("video"); 
2565                if(video.length > 0) { 
2566                    processVideo(video); 
2567
2568            }); 
2569 
2570            // Xử lý tất cả video còn lại 
2571            $("video").each(function() { 
2572                processVideo($(this)); 
2573            }); 
2574
2575 
2576        // Chạy xử lý ngay lập tức 
2577        processAllVideos(); 
2578 
2579        // Chạy lại sau 1 giây để đảm bảo xử lý các video được thêm sau 
2580        setTimeout(processAllVideos, 1000); 
2581 
2582        // Chạy lại sau 3 giây để đảm bảo xử lý các video được tải chậm 
2583        setTimeout(processAllVideos, 3000); 
2584 
2585        // Theo dõi thay đổi DOM để xử lý video mới được thêm vào 
2586        if(window.MutationObserver) { 
2587            var observer = new MutationObserver(function(mutations) { 
2588                var needsProcessing = false; 
2589                mutations.forEach(function(mutation) { 
2590                    if(mutation.addedNodes.length) { 
2591                        needsProcessing = true; 
2592
2593                }); 
2594 
2595                if(needsProcessing) { 
2596                    processAllVideos(); 
2597                    addPlayButtonsToVideos(); 
2598
2599            }); 
2600 
2601            observer.observe(document.body, { 
2602                childList: true, 
2603                subtree: true 
2604            }); 
2605
2606 
2607        // Hàm thêm nút play cho video 
2608        function addPlayButtonsToVideos() { 
2609            $('.liferayckevideo.video-container').each(function() { 
2610                var container = $(this); 
2611                var video = container.find('video'); 
2612 
2613                // Kiểm tra xem đã có nút play chưa 
2614                if (container.find('.video-play-button').length === 0 && video.length > 0) { 
2615                    // Tạo nút play 
2616                    var playButton = $('<div class="video-play-button" title="Phát video"></div>'); 
2617                    container.append(playButton); 
2618 
2619                    // Xử lý sự kiện click 
2620                    playButton.on('click', function() { 
2621                        var videoElement = video[0]; 
2622                        if (videoElement) { 
2623                            videoElement.play(); 
2624                            $(this).addClass('playing'); 
2625
2626                    }); 
2627 
2628                    // Ẩn nút play khi video đang phát 
2629                    video.on('play', function() { 
2630                        playButton.addClass('playing'); 
2631                    }); 
2632 
2633                    // Hiển thị lại nút play khi video dừng 
2634                    video.on('pause ended', function() { 
2635                        playButton.removeClass('playing'); 
2636                    }); 
2637
2638            }); 
2639
2640 
2641        // Chạy hàm thêm nút play ngay lập tức 
2642        addPlayButtonsToVideos(); 
2643 
2644        // Chạy lại sau 1 giây 
2645        setTimeout(addPlayButtonsToVideos, 1000); 
2646 
2647        // Chạy lại sau 3 giây 
2648        setTimeout(addPlayButtonsToVideos, 3000); 
2649    }); 
2650</script> 
2651 
2652<script> 
2653    document.addEventListener("DOMContentLoaded", function () { 
2654        const el = document.querySelector(".sp-dislaydate"); 
2655        if (!el) { 
2656            return; 
2657
2658        let text = el.textContent; 
2659        const match = text.match(/Lượt xem:\s*(\d+)/); 
2660        if (match) { 
2661            const originalNumber = match[1]; 
2662            const formattedNumber = formatNumber(originalNumber); 
2663            text = text.replace(originalNumber, formattedNumber); 
2664            el.textContent = text; 
2665
2666    }); 
2667 
2668    function formatNumber(value) { 
2669        return value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, "."); 
2670
2671</script> 

Xuất bản thông tin

Navigation Menu

Navigation Menu

LIÊN KẾT WEBSITE

Navigation Menu

Navigation Menu

Navigation Menu