Có lỗi xảy ra trong quá trình xử lý biểu mẫu.
The string doesn't match the expected date/time/date-time format. The string to parse was: "". The expected format was: "yyyy-MM-dd". The nested reason given follows: Unparseable date: "" ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign thoiGianBatDauDisplay = thoiG... [in template "37610#37640#173439" at line 1358, column 21] ----
1<style>
2 /*.align-items-center.d-flex.mb-2 {*/
3 /* display: none !important;*/
4 /*}*/
5 .autofit-row.mb-4.metadata-author {
6 display: none;
7 }
8
9 .asset-anchor.lfr-asset-anchor {
10 display: none;
11 }
12
13 .liferayckevideo.video-container video {
14 width: 100% !important;
15 height: auto !important;
16 }
17
18 .social-buttons {
19 display: flex;
20 }
21
22 .article-head {
23 margin-bottom: 0;
24 }
25
26 .botting-border {
27 color: #292a32;
28 background: unset;
29 font-family: "Roboto";
30 text-transform: unset;
31 font-weight: bold;
32 font-size: 20px;
33 margin-bottom: 15px;
34 border-bottom: 3px solid #d1d2d4;
35 }
36
37 .buttonIn {
38 position: relative;
39 }
40
41 .btnsend {
42 color: #FFF;
43 border-color: #f70000;
44 padding: 3px 0.75rem;
45 border: none;
46 height: 42px;
47 cursor: pointer;
48 border-radius: 6px;
49 background: #C8392B;
50 margin-top: 17px;
51 font-size: 14px;
52 font-style: normal;
53 font-weight: 700;
54 line-height: 130%; /* 18.2px */
55 letter-spacing: 0.021px;
56 }
57
58 .button-dt {
59 color: #FFF;
60 background-color: #f70000;
61 border-color: #f70000;
62 padding: 3px 0.75rem;
63 border-radius: 5px;
64 margin: 2px;
65 }
66
67 .button-dt-close {
68 color: #FFF;
69 background-color: #f70000;
70 border-color: #f70000;
71 padding: 3px 0.75rem;
72 border-radius: 5px;
73 margin: 2px;
74 }
75
76 .md-textarea {
77 width: 100%;
78 }
79
80 .comment {
81 display: inline-block;
82 margin-top: 5px;
83 width: 100%;
84 }
85
86 .comment-text {
87 padding-left: 51px;
88 margin-top: -9px;
89 font-size: 14px;
90 }
91
92 .comment-child {
93 margin-left: 35px;
94 }
95
96
97 .modal-thongtin {
98 display: none;
99 position: fixed;
100 z-index: 1111;
101 padding-top: 100px;
102 left: 0;
103 top: 0;
104 width: 100%;
105 height: 100%;
106 overflow: auto;
107 background-color: rgb(0, 0, 0);
108 background-color: rgba(0, 0, 0, .4);
109 }
110
111 .modal-thongtin-reply {
112 display: none;
113 position: fixed;
114 z-index: 1;
115 padding-top: 100px;
116 left: 0;
117 top: 0;
118 width: 100%;
119 height: 100%;
120 overflow: auto;
121 background-color: rgb(0, 0, 0);
122 background-color: rgba(0, 0, 0, .4);
123 }
124
125
126 .close {
127 color: #aaaaaa;
128 float: right;
129 font-size: 28px;
130 font-weight: bold;
131 }
132
133 .close:hover,
134 .close:focus {
135 color: #000;
136 text-decoration: none;
137 cursor: pointer;
138 }
139
140 .btnreply {
141 color: #FFF;
142 background-color: #f70000;
143 border-color: #f70000;
144 padding: 3px 0.75rem;
145 border-radius: 5px;
146 height: 28px;
147 border: none;
148 float: right;
149 }
150
151 .autofit-float.autofit-row.portlet-header {
152 display: none;
153 }
154
155 .breadcrumb > li.active {
156 color: #f70000;
157 }
158
159 .zalo-share-button {
160 width: 158px !important;
161 }
162
163 iframe {
164 min-width: 92px;
165 }
166
167 @media only screen and (min-width: 768px) {
168 .other-imgs {
169 height: 60px;
170 }
171
172 .modal-thongtin-content {
173 background-color: #fefefe;
174 margin: auto;
175 padding: 20px;
176 border: 1px solid #888;
177 width: 60%;
178 }
179 }
180
181 @media only screen and (max-width: 768px) {
182 .pagination2 a {
183 cursor: pointer;
184 color: black;
185 padding: 3px 8px;
186 text-decoration: none;
187 transition: background-color .3s;
188 margin: 0px;
189 border-radius: 5px;
190 background: #ddd;
191 }
192
193 .curPage-title {
194 display: none;
195 }
196
197 h3.title-divvv {
198 /*text-align: justify;*/
199 /*margin-top: 16px;*/
200 color: #15191C;
201 font-size: clamp(18px, 4vw, 24px);
202 font-style: normal;
203 font-weight: 700;
204 line-height: 33.6px;
205 letter-spacing: -0.28px;
206 }
207
208 #contentText iframe {
209 width: 100% !important;
210 }
211
212 .detail-social > a:hover {
213 cursor: pointer;
214 }
215
216 .article-head .article-info {
217 margin-bottom: 0;
218 padding: 4px 0 8px 0;
219 font-size: 14px;
220 height: 59px !important;
221 }
222
223 .modal-thongtin-content {
224 background-color: #fefefe;
225 margin: auto;
226 padding: 20px;
227 border: 1px solid #888;
228 width: 100%;
229 }
230 }
231
232 span.sticker-overlay {
233 background: var(--main-color-background);
234 color: var(--main-color-text);
235 opacity: 0.8;
236 }
237
238
239 .detail__flex {
240 display: flex;
241 }
242
243 .sp-dislaydate {
244 color: var(--darkdefault-212529, #212529);
245 font-size: 16px;
246 font-style: normal;
247 font-weight: 400;
248 line-height: 130%;
249 letter-spacing: 0.08px;
250 /*border-left: 3px solid #212529;*/
251 margin-bottom: 18.5px;
252 /*padding-left: 12px;*/
253 margin-top: 40px;
254 }
255
256 .title-divvv {
257 text-align: justify;
258 margin-top: 16px;
259 color: var(--darkdefault-212529, #212529);
260 font-size: 22px;
261 font-style: normal;
262 font-weight: 700;
263 line-height: normal;
264 letter-spacing: -0.28px;
265 }
266
267 #contentText table {
268 width: 100% !important;
269 text-align: center;
270 }
271
272 #contentText table {
273 width: 100% !important;
274 text-align: center;
275 }
276
277 #contentText p {
278 text-align: justify;
279 color: #2E2E2E;
280 font-size: 16px;
281 font-style: normal;
282 font-weight: 400;
283 line-height: 22.4px;
284 letter-spacing: 0.08px;
285 }
286
287 #contentText > .text-summary > p {
288 color: #000;
289 font-size: 16px;
290 font-style: italic;
291 font-weight: 700;
292 line-height: normal;
293 }
294
295 #contentText > p:has(img) {
296 text-align: center;
297 }
298
299 .text-dgbv {
300 display: flex;
301 flex-direction: row;
302 color: #000;
303 font-size: 14px;
304 font-style: normal;
305 font-weight: 500;
306 line-height: normal;
307 margin-top: 8px;
308 }
309
310 .share-fb-custom {
311 margin-top: 6px;
312 max-width: 90px;
313 }
314
315 .text-trangchu-ctbv {
316 color: var(--darkdefault-212529, #212529);
317 font-size: 16px;
318 font-style: normal;
319 font-weight: 400;
320 line-height: 130%;
321 letter-spacing: 0.08px;
322 }
323
324 .text-gioithieu-ctbv {
325 color: #0D4C92;
326 font-size: 16px;
327 font-style: normal;
328 font-weight: 500;
329 line-height: 130%;
330 letter-spacing: 0.08px;
331 }
332
333 .ctbv-right {
334 display: flex;
335 flex-wrap: wrap;
336 justify-content: flex-end;
337 }
338
339 .title-content-vni {
340 color: var(--Dark-primary-000000, #000);
341 font-size: 20px;
342 font-style: normal;
343 font-weight: 700;
344 line-height: 130%;
345 letter-spacing: 0.03px;
346 }
347
348 .line {
349 background: #848A8F;
350 height: 1px;
351 width: 100%;
352 margin: 32px 0;
353 }
354
355 .line-tlq {
356 background: #848A8F;
357 height: 1px;
358 width: 100%;
359 margin: 26px 18px 15px 15px;
360 }
361
362 .text-readmore-tlq {
363 color: #0D4C92;
364 font-size: 14px;
365 font-style: normal;
366 font-weight: 500;
367 line-height: 130%;
368 letter-spacing: 0.175px;
369 margin-top: 16px;
370 }
371
372 .text-des-tlq > p {
373 color: var(--signinupfont-3777777, #777);
374 font-size: 16px;
375 font-style: normal;
376 font-weight: 400 !important;
377 line-height: 130%; /* 18.2px */
378 letter-spacing: 0.035px;
379 }
380
381 .text-title-tlq {
382 color: var(--darkdefault-212529, #212529);
383 font-size: 16px;
384 font-style: normal;
385 font-weight: 700;
386 line-height: 130%;
387 letter-spacing: 0.024px;
388 padding-right: 15px;
389 padding-left: 15px;
390 }
391
392 .text-title-tlq-img {
393 color: var(--darkdefault-212529, #212529);
394 font-size: 16px;
395 font-style: normal;
396 font-weight: 700;
397 line-height: 130%;
398 letter-spacing: 0.024px;
399 /*margin-top: 32px;*/
400 }
401
402 .title-content-tlq {
403 color: var(--Dark-primary-000000, #000);
404 font-size: 20px;
405 font-style: normal;
406 font-weight: 700;
407 line-height: 130%;
408 letter-spacing: 0.03px;
409 margin-top: 22px;
410 }
411
412 .box-tlq {
413 border-radius: 8px;
414 border: 1px solid #C7C7C7;
415 background: #FAFAFA;
416 }
417
418 .limit-title-1 {
419 /*display: block;*/
420 /*text-overflow: ellipsis;*/
421 /*word-wrap: break-word;*/
422 /*overflow: hidden;*/
423 /*max-height: 3em;*/
424 /*display: -webkit-box;*/
425 /*-webkit-line-clamp: 1;*/
426 /*-webkit-box-orient: vertical;*/
427 }
428
429 .border-item {
430 border-radius: 8px;
431 border: 1px solid var(--stroke-777777, rgba(119, 119, 119, 0.50));
432 margin: 0px 17px;
433 }
434
435 .tin-slide-img-left {
436 border-radius: 8px 0px 0px 8px;
437 }
438
439 .sdt-list-tlq-items {
440 color: var(--darkdefault-212529, #212529);
441 font-size: 16px;
442 font-style: normal;
443 font-weight: 400;
444 line-height: 130%;
445 letter-spacing: 0.024px;
446 }
447
448 .sdt-list-tlq-items:hover > a {
449 color: #0D4C92 !important;
450 font-weight: 700;
451 }
452
453 .sdt-list-tlq-items:hover > div > img {
454 filter: invert(20%) sepia(202%) saturate(280%) hue-rotate(-10deg) brightness(140%) contrast(142%);
455 }
456
457 .sdt-list-tlq-items:hover::before {
458 background: #0D4C92;
459 }
460
461 /*.sdt-list-tlq-items::before {*/
462 /* position: absolute;*/
463 /* top: 7px;*/
464 /* left: 0;*/
465 /* content: "";*/
466 /* height: 6px;*/
467 /* width: 6px;*/
468 /* border-radius: 8px;*/
469 /* background: #D9D9D9;*/
470 /* margin-right: 5px;*/
471 /*}*/
472
473 .text-border {
474 color: #000;
475 font-size: 18px;
476 font-style: normal;
477 font-weight: 400;
478 line-height: 130%;
479 letter-spacing: 0.027px;
480 border-bottom: 3px solid #f70000;
481 }
482
483 .form-chitiet {
484 border-radius: 6px;
485 background: #F2F2F2;
486 border-color: #F2F2F2;
487 }
488
489 .form-chitiet::placeholder {
490 color: rgba(119, 119, 119, 0.50);
491 font-size: 14px;
492 font-style: normal;
493 font-weight: 400;
494 line-height: 130%;
495 letter-spacing: 0.021px;
496 }
497
498 .lbl-blyk {
499 color: #000;
500 font-size: 16px;
501 font-style: normal;
502 font-weight: 500;
503 line-height: 130%;
504 letter-spacing: 0.024px;
505 }
506
507 .align-right {
508 text-align: right;
509 border: 0;
510 }
511
512 .gg-custom {
513 margin-top: 10px;
514 }
515
516 .avatar {
517 display: block;
518 width: 40px;
519 height: 40px;
520 margin-right: 13px;
521 border-radius: 50%;
522 overflow: hidden;
523 }
524
525 .item {
526 padding-bottom: 16px;
527 margin-bottom: 16px;
528 display: flex;
529 border-bottom: 1px solid rgba(119, 119, 119, 0.30);
530 }
531
532 .user-name {
533 color: #000;
534 font-size: 16px;
535 font-style: normal;
536 font-weight: 700;
537 line-height: 130%;
538 letter-spacing: 0.024px;
539 }
540
541 .text-comment {
542 color: #4D4D4D;
543 font-size: 16px;
544 font-style: normal;
545 font-weight: 400;
546 line-height: 130%;
547 letter-spacing: 0.08px;
548 }
549
550 .btnmorecmt {
551 width: 285px;
552 padding: 12px 50px;
553 justify-content: center;
554 align-items: center;
555 gap: 10px;
556 border-radius: 8px;
557 border: 1px solid #000;
558 color: #000;
559 font-size: 14px;
560 font-style: normal;
561 font-weight: 400;
562 line-height: 130%; /* 18.2px */
563 letter-spacing: 0.021px;
564 background: none;
565 }
566
567 .content-left-tlq {
568 padding: 0 !important;
569 }
570
571 .content-right-tlq {
572 /*padding-left: 32px !important;*/
573 padding: 10px 20px !important;
574 background: #E0E0E04D;
575 color: #212529;
576 }
577
578 .content-right-tlq:hover,
579 .content-right-tlq:hover ~ .content-left-tlq {
580 /*background-color: #0D4C92;*/
581 }
582
583 .content-right-tlq:hover .text-title-tlq-img,
584 .content-right-tlq:hover .text-des-tlq > p,
585 .content-right-tlq:hover .text-readmore-tlq {
586 /*color: #ffffff !important;*/
587 }
588
589 .content-right-tlq,
590 .content-left-tlq,
591 .content-right-tlq .text-title-tlq-img,
592 .content-right-tlq .text-des-tlq > p,
593 .content-right-tlq .text-readmore-tlq {
594 transition: all 0.9s ease;
595 }
596
597 @media only screen and (max-width: 576px) {
598 .detail__sticky {
599 display: none;
600 }
601
602 .h-img-ctbv {
603 height: 100%;
604 }
605
606 .text-title-tlq-img {
607 margin-top: 10px;
608 }
609
610 #tin-slide-img-left {
611 height: 100% !important;
612 }
613
614 .content-right-tlq {
615 padding-left: 12px !important;
616 }
617
618 #contentText p,
619 #contentText > .text-summary > p {
620 line-height: 1.6;
621 }
622
623 }
624
625 .star {
626 position: relative;
627 display: inline-block;
628 transition: color 0.2s ease;
629 color: #ebebeb;
630 }
631
632 .star:before {
633 content: '\2605';
634 width: 30px;
635 height: 30px;
636 font-size: 30px;
637 }
638
639 .star:hover,
640 .star.selected,
641 .star:hover ~ .star,
642 .star.selected ~ .star {
643 transition: color 0.8s ease;
644 color: #FDE16D;
645 }
646
647 .ratings-wrapper {
648 display: inline-block;
649 margin-bottom: 20px;
650 }
651
652 .ratings {
653 display: flex;
654 flex-direction: row-reverse;
655 }
656
657 .ratings span {
658 cursor: pointer;
659 transition: color 0.8s ease;
660 font-size: 50px;
661 }
662
663 .ratings span:hover {
664 transition: color 0.8s ease;
665 color: #FDE16D;
666 }
667
668 .ratings span:hover ~ span {
669 transition: color 0.8s ease;
670 color: #FDE16D;
671 }
672
673 .ratings span[data-clicked] {
674 color: #FDE16D;
675 }
676
677 .ratings span[data-clicked] ~ span {
678 color: #FDE16D;
679 }
680
681 .reset {
682 font-size: 18px;
683 text-decoration: none;
684 background-color: #4f5a78;
685 padding: 15px 50px;
686 display: inline-block;
687 margin-top: 20px;
688 color: #fff;
689 border: none;
690 cursor: pointer;
691 }
692
693 .reset:hover {
694 filter: brightness(1.2);
695 }
696
697 .asset-details .mr-3 a {
698 display: none !important;
699 }
700
701 .separator {
702 display: none !important;
703 }
704
705
706 .title-ccni a {
707 text-decoration: none;
708 color: #035FB5;
709 font-size: clamp(16px, 3vw, 24px);
710 font-weight: 700;
711 line-height: 33.6px;
712 }
713
714 .title-ccni-icon {
715 height: 24px;
716 }
717
718 .line-tail-chitiet {
719 width: 100%;
720 height: 2px;
721 background: #DE6F18;
722 position: absolute;
723 bottom: 0;
724 z-index: 1;
725 }
726
727 .line-blue {
728 width: 70%;
729 height: 6px;
730 background: #035FB5;
731 clip-path: polygon(0 0, calc(100% - 6px) 0, 100% 6px, 0% 100%);
732 }
733
734 .orange-line {
735 height: 6px;
736 background: #DE6F18;
737 clip-path: polygon(0 0, calc(100% - 4px) 0, 100% 100%, 0 100%);
738 }
739
740 .label-binh-luan {
741 color: #15191C;
742 font-size: 14px;
743 font-weight: 500;
744 line-height: 18px;
745 }
746
747 .form-binh-luan {
748 background: #E0E0E04D;
749 padding: 1rem;
750 }
751
752 .btn-send-cmt {
753 color: white;
754 border-radius: 10px;
755 box-shadow: -2px 2px 3px 0px #00000040;
756 background: #DE6F18;
757 }
758
759 .btn-send-cmt:hover {
760 color: white;
761 border-radius: 10px;
762 box-shadow: -2px 2px 3px 0px #00000040;
763 background: #DE6F18;
764 }
765
766 .wrap-list-comment {
767 border: 1px solid #848A8F;
768 padding: 20px;
769 border-radius: 10px;
770 }
771
772 .user-name-cmt {
773 font-size: 16px;
774 font-weight: 500;
775 line-height: 20px;
776 color: #15191C;
777 }
778
779 .time-comment {
780 color: #848A8F;
781 }
782
783 .txt-content-cmt {
784 font-size: 16px;
785 font-weight: 400;
786 line-height: 22.4px;
787 color: #2E2E2E;
788 }
789
790 .thin-line {
791 background: #EBEBEB;
792 height: 1px;
793 }
794
795 .btn-xem-them-cmt {
796 border-radius: 5px;
797 font-size: 16px;
798 padding: 10px;
799 font-weight: 500;
800 line-height: 22.4px;
801 text-align: center;
802 color: #0065B3;
803 background: #E0E0E04D;
804 border: 1px solid #035FB5;
805 }
806
807 .icon-tool {
808 width: 25px;
809 height: 25px;
810 margin-right: 10px;
811 }
812</style>
813<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService" )>
814<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
815
816<#assign currentArticle = JournalArticleLocalService.getArticle(getterUtil.getLong(groupId),.vars['reserved-article-id'].data)>
817<#assign currentArticleResourcePrimKey = currentArticle.getResourcePrimKey()>
818
819<#assign currentArticleAssetEntry = AssetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", currentArticleResourcePrimKey)/>
820
821<#assign articlePrimKey = currentArticle.resourcePrimKey>
822<#assign DDMStructureKey = currentArticle.DDMStructureKey>
823
824<#assign catLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")>
825<#assign articleCatId = catLocalService.getCategoryIds("com.liferay.journal.model.JournalArticle", getterUtil.getLong(articlePrimKey))>
826
827<#assign assetEntryQueryService = objectUtil('com.liferay.asset.kernel.service.AssetEntryLocalServiceUtil')>
828
829<#assign assetEntryQuery = objectUtil('com.liferay.asset.kernel.service.persistence.AssetEntryQuery')>
830
831
832<#assign search = assetEntryQuery.setAnyCategoryIds(articleCatId)>
833<#assign search = assetEntryQuery.setOrderByCol1("publishDate")/>
834<#assign search = assetEntryQuery.setStart(0)/>
835<#assign search = assetEntryQuery.setEnd(10)/>
836<#assign search = assetEntryQuery.setOrderByType1("DESC")/>
837
838<#assign teste = assetEntryQueryService.getEntries(assetEntryQuery)
839totalPage = 0/>
840
841<#assign
842title = .vars['reserved-article-title'].data
843portalURL = themeDisplay.getPortalURL()
844currentUrl = portalURL + themeDisplay.getURLCurrent()
845imageUrl = portalURL + .vars['reserved-article-small-image-url'].data
846<#--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"-->
847srcfb = "https://www.facebook.com/sharer/sharer.php?u=${currentUrl}"
848displayDate = .vars['reserved-article-display-date'].data
849summary = .vars['reserved-article-description'].data/>
850
851<#assign scopeId = themeDisplay.getScopeGroupId()>
852<#assign contentId = .vars['reserved-article-id'].data>
853<#assign originalLocale = .locale>
854<#setting locale = localeUtil.getDefault()>
855<#assign displayDate = displayDate?datetime("EEE, d MMM yyyy HH:mm:ss Z")>
856<#assign locale = originalLocale>
857<#--<#assign displayDate = displayDate?string("EEEE, dd/MM/yyyy, HH:mm a ")>-->
858<#assign displayDate = displayDate?string("HH:mm dd/MM/yyyy ")>
859<#assign listLayoutDHD = [5474,5512,179]>
860<#assign layo = themeDisplay.getPlid() />
861<#assign noImageUrl = "/documents/37638/39612/background-phaohoa.jfif" >
862
863<@liferay_util["html-top"]>
864 <meta name="title" property="og:title" content="${title?html}">
865 <meta name="image" property="og:image" content="${imageUrl}">
866 <meta name="imageurl" property="og:image:url" content="${imageUrl}">
867 <meta name="description" property="og:description" content="${summary?html}">
868 <meta name="url" property="og:url" content="${currentUrl}">
869</@>
870<#assign
871theme_display = themeDisplay
872images_folder = theme_display.getPathThemeImages()
873/>
874
875<script>
876 $(document).ready(function () {
877 $(".hrefShareFb").attr("href", "https://www.facebook.com/sharer/sharer.php?u=" + window.location.href);
878 $("#hrefShareEmail").attr("href", "mailto:?subject=I wanted you to see this site&body=Check out this site " + window.location.href);
879 $("#hrefShareSkype").attr("href", "https://web.skype.com/share?url=" + window.location.href);
880 $("#trigger_zalo").attr("data-href", "" + window.location.href);
881 $(".hrefShareTwitter").attr("href", "https://twitter.com/intent/tweet?text=" + window.location.href);
882 var modal = $('.modal-thongtin');
883 var btn = $('.btnsend');
884 var button_dt = $('.button-dt');
885 var button_dt_close = $('.button-dt-close');
886 var span = $('.close');
887 var baiVietId = $('#baiVietId');
888 var tieuDe = $('#tieuDe');
889 var commentContent = $('#commentContent');
890 var commentName = $('#commentName');
891 var commentAddress = $('#commentAddress');
892 var commentEmail = $('#commentEmail');
893
894 /*btn.click(function () {
895 if (commentContent.val().length == 0) {
896 alert('Vui lòng nhập nội dung ý kiến!');
897 } else {
898 modal.show();
899 btn.hide();
900 }
901 });*/
902
903
904 button_dt.click(function () {
905 const valid = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
906 if (commentName.val().length == 0) {
907 commentName.css('border-color', 'red');
908 commentName.focus();
909 } else if (commentAddress.val().length == 0) {
910 commentAddress.css('border-color', 'red');
911 commentAddress.focus();
912 } else if (commentEmail.val().length == 0) {
913 commentEmail.css('border-color', 'red');
914 commentEmail.focus();
915 } else if (!valid.test(commentEmail.val())) {
916 commentEmail.css('border-color', 'red');
917 commentEmail.focus();
918 alert('Vui lòng nhập đúng email!');
919 } else {
920 comment(baiVietId.val(), tieuDe.val(), commentContent.val(), commentName.val(), commentAddress.val(), commentEmail.val(), ${groupId});
921 commentContent.val('');
922 commentName.val('');
923 commentAddress.val('');
924 commentEmail.val('');
925 modal.hide();
926 btn.show();
927 }
928 });
929
930 button_dt_close.click(function () {
931 commentContent.val('');
932 commentName.val('');
933 commentAddress.val('');
934 commentEmail.val('');
935 commentName.css('border-color', '#ccc');
936 commentAddress.css('border-color', '#ccc');
937 commentEmail.css('border-color', '#ccc');
938 modal.hide();
939 btn.show();
940
941 });
942
943 span.click(function () {
944 commentContent.val('');
945 commentName.val('');
946 commentAddress.val('');
947 commentEmail.val('');
948 modal.hide();
949 $('.replyBox').hide();
950 btn.show();
951
952 $('.inputReplyContent').val('');
953 commentNameReply.val('');
954 commentAddressReply.val('');
955 commentEmailReply.val('');
956 modal_reply.hide();
957 $('.replyBox').hide();
958 btnreply.show();
959 });
960
961 $(window).on('click', function (e) {
962 if ($(e.target).is('.modal-thongtin')) {
963 commentContent.val('');
964 commentName.val('');
965 commentAddress.val('');
966 commentEmail.val('');
967 modal.hide();
968 btn.show();
969 }
970 if ($(e.target).is('.modal-thongtin-reply')) {
971 $('.inputReplyContent').val('');
972 commentNameReply.val('');
973 commentAddressReply.val('');
974 commentEmailReply.val('');
975 modal_reply.hide();
976 btnreply.show();
977 }
978 });
979
980
981 var modal_reply = $('.modal-thongtin-reply');
982 var btnreply = $('.btnreply');
983 var button_dt_reply = $('.button-dt-reply');
984 var button_dt_reply_close = $('.button-dt-reply-close');
985 var span = $('.close');
986 var commentNameReply = $('#commentNameReply');
987 var commentAddressReply = $('#commentAddressReply');
988 var commentEmailReply = $('#commentEmailReply');
989
990 function submitreply() {
991 var commentId = $('#commentId').val();
992 if ($('#inputReplyContent' + commentId).val().length == 0) {
993 alert('Vui lòng nhập nội dung ý kiến!');
994 } else {
995 modal_reply.show();
996 $('#commentContentReply').val($('#inputReplyContent' + commentId).val());
997 btnreply.hide();
998 }
999 }
1000
1001 button_dt_reply.click(function () {
1002 if (commentNameReply.val().length == 0) {
1003 commentNameReply.css('border-color', 'red');
1004 } else if (commentAddressReply.val().length == 0) {
1005 commentAddressReply.css('border-color', 'red');
1006 } else if (commentEmailReply.val().length == 0) {
1007 commentEmailReply.css('border-color', 'red');
1008 } else {
1009 replyComment($('#commentId').val(), baiVietId.val(), tieuDe.val(), $('#commentContentReply').val(), commentNameReply.val(), commentAddressReply.val(), commentEmailReply.val());
1010 $('.inputReplyContent').val('');
1011 commentNameReply.val('');
1012 commentAddressReply.val('');
1013 commentEmailReply.val('');
1014 modal_reply.hide();
1015 }
1016 });
1017
1018 button_dt_reply_close.click(function () {
1019 $('.inputReplyContent').val('');
1020 commentNameReply.val('');
1021 commentAddressReply.val('');
1022 commentEmailReply.val('');
1023 modal_reply.hide();
1024
1025 });
1026 });
1027
1028 $(function () {
1029 var star = '.star',
1030 selected = '.selected';
1031 $(star).on('click', function () {
1032 $(selected).each(function () {
1033 $(this).removeClass('selected');
1034 });
1035 $(this).addClass('selected');
1036 });
1037 });
1038
1039 function submitreply() {
1040 var commentId = $('#commentId').val();
1041 if ($('#inputReplyContent' + commentId).val().length == 0) {
1042 alert('Vui lòng nhập nội dung ý kiến!');
1043 } else {
1044 $('.modal-thongtin-reply').show();
1045 $('#commentContentReply').val($('#inputReplyContent' + commentId).val());
1046 $('.btnreply').hide();
1047 }
1048 }
1049
1050 function changePageSize() {
1051 var pageSize = $('#pageSize').val();
1052 var pageIndex = $('#pageIndex').val();
1053 paginate(pageIndex, pageSize);
1054 }
1055
1056 function changePageIndex() {
1057 var pageSize = $('#pageSize').val();
1058 var pageIndex = $('#pageIndex').val();
1059 $('#curPage').val(pageIndex);
1060 paginate(pageIndex, pageSize);
1061 }
1062
1063 function gotoPage(i) {
1064 $('a[name="gotoPage"]').removeClass("active");
1065 $('#gotoPage' + i).addClass("active");
1066 $('.list-unstyled').css("display", "none");
1067 $('ul[name="list-unstyled-' + i + '"]').css("display", "grid");
1068 $('#currentPage').val(i);
1069 }
1070
1071 function previousPage() {
1072 var i = $('#currentPage').val();
1073 if (i > 1) {
1074 gotoPage(Number(i) - 1);
1075 }
1076 }
1077
1078 function nextPage() {
1079 var i = $('#currentPage').val();
1080 var totalPage = $('#totalPages').val();
1081 console.log(i);
1082 console.log(totalPage);
1083 if (i < totalPage) {
1084 gotoPage(Number(i) + 1);
1085 }
1086 }
1087
1088
1089</script>
1090<div id="fb-root"></div>
1091<div class="detail__flex">
1092 <#-- <div class="detail__sticky">-->
1093 <#-- <div class="detail__scroll-action">-->
1094 <#-- <div class="detail-social">-->
1095 <#-- <a onclick="fontMinus();" href="javascript:void(0);" title="Giảm cỡ chữ" data-toggle="tooltip">-->
1096 <#-- <span class="icon">-->
1097 <#-- <svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28" fill="none">-->
1098 <#-- <circle cx="14" cy="14" r="13.5" stroke="#777777"/>-->
1099 <#-- <path d="M17.5 15.5L13.75 11.75L10 15.5" stroke="#777777" stroke-width="1.5"-->
1100 <#-- stroke-linecap="round" stroke-linejoin="round"/>-->
1101 <#-- </svg>-->
1102 <#-- </span>-->
1103 <#-- </a>-->
1104 <#-- <a onclick="fontPlus();" href="javascript:void(0);" title="Tăng cỡ chữ" data-toggle="tooltip">-->
1105 <#-- <span class="icon">-->
1106 <#-- <svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28" fill="none">-->
1107 <#-- <circle cx="14" cy="14" r="13.5" transform="rotate(-180 14 14)" stroke="#777777"/>-->
1108 <#-- <path d="M10 12L13.75 15.75L17.5 12" stroke="#777777" stroke-width="1.5" stroke-linecap="round"-->
1109 <#-- stroke-linejoin="round"/>-->
1110 <#-- </svg>-->
1111 <#-- </span>-->
1112 <#-- </a>-->
1113 <#-- <a onclick="voiceSpeak('contentText','voiceSex')" href="javascript:void(0);" data-toggle="tooltip"-->
1114 <#-- title="Đọc bài viết">-->
1115 <#-- <span class="icon">-->
1116 <#-- <svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28" fill="none">-->
1117 <#-- <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"-->
1118 <#-- fill="#777777"/>-->
1119 <#-- </svg>-->
1120 <#-- </span>-->
1121 <#-- </a>-->
1122 <#-- <a id="void-pause" onclick="voicePause()" href="javascript:void(0);" style="display:none;"-->
1123 <#-- data-toggle="tooltip"-->
1124 <#-- title="Tạm dừng đọc">-->
1125 <#-- <span class="icon">-->
1126 <#-- <i class="fa fa-pause" style="vertical-align: middle;opacity: 1;color: dimgray;"></i>-->
1127 <#-- </span>-->
1128 <#-- </a>-->
1129 <#-- <a id="void-resume" onclick="voiceResume()" href="javascript:void(0);" style="display:none;"-->
1130 <#-- data-toggle="tooltip"-->
1131 <#-- title="Tiếp tục đọc">-->
1132 <#-- <i class="icon fa fa-repeat" style="vertical-align: middle;opacity: 1;color: dimgray;"></i>-->
1133 <#-- </a>-->
1134 <#-- <a id="void-stop" onclick="voiceCancel()" href="javascript:void(0);" style="display:none;"-->
1135 <#-- data-toggle="tooltip"-->
1136 <#-- title="Dừng đọc">-->
1137 <#-- <i class="icon fa fa-stop" style="vertical-align: middle;opacity: 1;color: dimgray;"></i>-->
1138 <#-- </a>-->
1139
1140 <#-- <a onclick="giamTuongPhan();" href="javascript:void(0);"-->
1141 <#-- data-toggle="tooltip" title="Giảm tương phản">-->
1142 <#-- <span class="icon">-->
1143 <#-- <img src="/o/portal-home-multi-theme/icons/trothinh/trothinh_bright-down-btn.png"-->
1144 <#-- style="vertical-align: middle;opacity: 1;"/>-->
1145 <#-- </span>-->
1146 <#-- </a>-->
1147 <#-- <a onclick="tangTuongPhan();" href="javascript:void(0);"-->
1148 <#-- data-toggle="tooltip" title="Tăng tương phản">-->
1149 <#-- <span class="icon">-->
1150 <#-- <img src="/o/portal-home-multi-theme/icons/trothinh/trothinh_bright-up-btn.png"-->
1151 <#-- style="vertical-align: middle;opacity: 1;"/>-->
1152 <#-- </span>-->
1153 <#-- </a>-->
1154 <#-- <a target="_blank" title="Chia sẻ Facebook" class="hrefShareFb">-->
1155 <#-- <span class="icon">-->
1156 <#-- <img src="${images_folder}/icons/iconfacebookvni.png">-->
1157 <#-- </span>-->
1158 <#-- </a>-->
1159
1160 <#-- <a target="_blank" title="Chia sẻ Twitter" class="hrefShareTwitter">-->
1161 <#-- <span class="icon">-->
1162 <#-- <img src="${images_folder}/icons/twittershare.png">-->
1163 <#-- </span>-->
1164 <#-- </a>-->
1165
1166 <#-- <a class="" title="Chia sẻ Zalo" onclick="load_js_zalo();" href="javascript:void(0);">-->
1167 <#-- <span class="icon">-->
1168 <#-- <img src="${images_folder}/icons/iconzlvni.png">-->
1169 <#-- </span>-->
1170 <#-- </a>-->
1171 <#-- <span id="trigger_zalo" style="position: absolute;" href="javascript:void(0);" class="zalo-share-button"-->
1172 <#-- data-oaid="3853758560685742933" data-layout="2" data-color="blue" data-customize="true"-->
1173 <#-- title="Chia sẻ Zalo"></span>-->
1174 <#-- </div>-->
1175 <#-- </div>-->
1176 <#-- </div>-->
1177 <div class="detail__main">
1178 <#-- <span class="text-trangchu-ctbv">TRANG CHỦ / <span class="text-gioithieu-ctbv">TIN TỨC</span></span>-->
1179 <div class="main-content main_blog_post_content">
1180 <div class="panel mbp_thumb_post" id="main-body">
1181 <div class="shortcode-content hreview">
1182 <div class="article-head">
1183 <div class="article-info" style="border-top: 0px;border-bottom: 0px; height: 33px;">
1184 <div class="social-buttons left" style="float: left!important;">
1185 <ul class="blog_sp_post_meta">
1186 <li class="list-inline-item">
1187 <span class="sp-dislaydate">${displayDate}, Lượt xem: ${currentArticleAssetEntry.viewCount}</span>
1188 </li>
1189 </ul>
1190 </div>
1191 <div style="float: right">
1192 <div class="wrap-tool d-flex">
1193 <a onclick="fontMinus();" href="javascript:void(0);" title="Giảm cỡ chữ"
1194 class=""
1195 data-toggle="tooltip">
1196 <span class="icon-tool">
1197 <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25"
1198 viewBox="0 0 28 28" fill="none">
1199 <circle cx="14" cy="14" r="13.5" stroke="#777777"/>
1200 <path d="M17.5 15.5L13.75 11.75L10 15.5" stroke="#777777"
1201 stroke-width="1.5"
1202 stroke-linecap="round" stroke-linejoin="round"/>
1203 </svg>
1204 </span>
1205 </a>
1206
1207 <a onclick="fontPlus();" href="javascript:void(0);" title="Aa" class=""
1208 data-toggle="tooltip">
1209 <span class="icon-tool">
1210 <img src="/documents/37638/39612/Aa.svg" style="height: 20px"/>
1211 </span>
1212 </a>
1213
1214 <a onclick="fontPlus();" href="javascript:void(0);" title="Tăng cỡ chữ" class=""
1215 data-toggle="tooltip">
1216 <span class="icon-tool">
1217 <svg xmlns="http://www.w3.org/2000/svg" width="28" height="28"
1218 viewBox="0 0 28 28" fill="none">
1219 <circle cx="14" cy="14" r="13.5" transform="rotate(-180 14 14)"
1220 stroke="#777777"/>
1221 <path d="M10 12L13.75 15.75L17.5 12" stroke="#777777"
1222 stroke-width="1.5" stroke-linecap="round"
1223 stroke-linejoin="round"/>
1224 </svg>
1225 </span>
1226 </a>
1227
1228 <a onclick="giamTuongPhan();" href="javascript:void(0);"
1229 data-toggle="tooltip" title="Giảm tương phản">
1230 <span class="icon-tool">
1231 <img src="/o/portal-home-multi-theme/icons/trothinh/trothinh_bright-down-btn.png"
1232 style="vertical-align: middle;opacity: 1; height: 28px"/>
1233 </span>
1234 </a>
1235
1236 <a onclick="tangTuongPhan();" href="javascript:void(0);"
1237 data-toggle="tooltip" title="Tăng tương phản">
1238 <span class="icon-tool">
1239 <img src="/o/portal-home-multi-theme/icons/trothinh/trothinh_bright-up-btn.png"
1240 style="vertical-align: middle;opacity: 1; height: 28px"/>
1241 </span>
1242 </a>
1243
1244 <a onclick="voiceSpeak('contentText','voiceSex')" href="javascript:void(0);"
1245
1246 data-toggle="tooltip"
1247 title="Đọc bài viết">
1248 <span class="icon-tool">
1249 <svg xmlns="http://www.w3.org/2000/svg" width="28" height="28"
1250 viewBox="0 0 28 28" fill="none">
1251 <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"
1252 fill="#777777"/>
1253 </svg>
1254 </span>
1255 </a>
1256
1257 <a onclick="fontPlus();" href="javascript:void(0);" title="Aa" class=""
1258 style="float: left"
1259 data-toggle="tooltip">
1260 <span class="icon-tool">
1261 <img src="/documents/37638/39612/icon-mail.svg"
1262 style="height: 25px"/>
1263 </span>
1264 </a>
1265
1266 <a onclick="fontPlus();" href="javascript:void(0);" title="Aa" class=""
1267 style="float: left"
1268 data-toggle="tooltip">
1269 <span class="icon-tool">
1270 <img src="/documents/37638/39612/icon-print.svg"
1271 style="height: 25px"/>
1272 </span>
1273 </a>
1274
1275 </div>
1276 </div>
1277
1278
1279 <input type="hidden" id="voiceSex" value="Vietnamese Female"/>
1280 <input type="hidden" id="tuongphan" value="3"/>
1281 <input type="hidden" id="DDMStructureKey" name="DDMStructureKey"
1282 value="${DDMStructureKey}"/>
1283 <input type="hidden" id="baiVietId" name="baiVietId" value="${articlePrimKey}"/>
1284 <input type="hidden" id="commentId" name="commentId" value=""/>
1285 <input type="hidden" id="tieuDe" name="tieuDe" value="${title?html}"/>
1286 <input type="hidden" value="1" id="curPage"/>
1287 <input type="hidden" value="0" id="totalRelated"/>
1288 <input type="hidden" value="${currentUrl}" id="currentURL"/>
1289 </div>
1290 </div>
1291 <div style="margin:10px 0px;">
1292 <h3 class="title-divvv">${title}</h3>
1293 </div>
1294 </div>
1295 <div id="contentText" style="margin:10px 0px;">
1296 <b style="text-align: justify;" class="text-summary">${summary}</b>
1297 <#assign maSoDeTai = maSoDeTai.getData() />
1298 <#assign tomTatDeTai = tomTatDeTai.getData() />
1299 <#assign donViChuTri = donViChuTri.getData() />
1300 <#assign chuNhiemDeTai = chuNhiemDeTai.getData() />
1301
1302 <#if maSoDeTai?? && maSoDeTai != "" >
1303 <p><strong>Mã số đề tài:</strong> ${maSoDeTai}</p>
1304 </#if>
1305
1306 <#if tomTatDeTai?? && tomTatDeTai != "">
1307 <p><strong>Tóm tắt đề tài:</strong> ${tomTatDeTai}</p>
1308 </#if>
1309
1310 <#assign length = currentArticleAssetEntry.getCategories()?size />
1311
1312
1313 <#assign indexCategory = 0 />
1314 <#list currentArticleAssetEntry.getCategories() as category>
1315 <#if category.getVocabularyId() == 375104>
1316 <p>
1317 <strong>Lĩnh vực đề tài:</strong>
1318 ${ category.getName()} <#if length gt 1 && indexCategory lt (length - 1) >,</#if>
1319 </p>
1320 </#if>
1321 <#assign indexCategory = indexCategory + 1 />
1322 </#list>
1323
1324
1325 <#assign length = currentArticleAssetEntry.getCategories()?size />
1326 <#assign indexLDT = 0 />
1327 <#list currentArticleAssetEntry.getCategories() as category>
1328 <#if category.getVocabularyId() == 375118>
1329 <p>
1330 <strong>Loại đề tài:</strong>
1331 ${ category.getName()} <#if length gt 1 && indexLDT lt (length - 1) >,</#if>
1332 </p>
1333 </#if>
1334 <#assign indexLDT = indexLDT + 1 />
1335 </#list>
1336
1337
1338 <#assign length = currentArticleAssetEntry.getCategories()?size />
1339 <#assign indexCQL = 0 />
1340 <#list currentArticleAssetEntry.getCategories() as category>
1341 <#if category.getVocabularyId() == 375119>
1342 <p>
1343 <strong>Cấp quản lý:</strong>
1344 ${ category.getName()} <#if length gt 1 && indexCQL lt (length - 1) >,</#if>
1345 </p>
1346 </#if>
1347 <#assign indexCQL = indexCQL + 1 />
1348 </#list>
1349
1350 <#if donViChuTri?? && donViChuTri != "">
1351 <p><strong>Đơn vị chủ trì:</strong> ${donViChuTri}</p>
1352 </#if>
1353
1354 <#if chuNhiemDeTai?? && chuNhiemDeTai != "">
1355 <p><strong>Chủ nhiệm đề tài:</strong> ${chuNhiemDeTai}</p>
1356 </#if>
1357
1358 <#assign thoiGianBatDauDisplay = thoiGianBatDau.getData()?datetime("yyyy-MM-dd")>
1359 <#if thoiGianBatDau?? && thoiGianKetThuc?? && thoiGianBatDau.getData() != "" && thoiGianKetThuc.getData() != "">
1360 <#assign thoiGianBatDauDisplay = thoiGianBatDau.getData()?datetime("yyyy-MM-dd")>
1361 <#assign thoiGianBatDauDisplay = thoiGianBatDauDisplay?string("dd/MM/yyyy")>
1362
1363 <#assign thoiGianKetThucDisplay = thoiGianKetThuc.getData()?datetime("yyyy-MM-dd")>
1364 <#assign thoiGianKetThucDisplay = thoiGianKetThucDisplay?string("dd/MM/yyyy")>
1365 <p><strong>Thời gian:</strong> ${thoiGianBatDauDisplay} - ${thoiGianKetThucDisplay}</p>
1366 </#if>
1367
1368 <#if thoiGianNghiemThu?? && thoiGianNghiemThu.getData() != "">
1369 <#assign thoiGianNghiemThuDisplay = thoiGianNghiemThu.getData()?datetime("yyyy-MM-dd")>
1370 <#assign thoiGianNghiemThuDisplay = thoiGianNghiemThuDisplay?string("dd/MM/yyyy")>
1371 <p><strong>Thời gian nghiệm thu:</strong> ${thoiGianNghiemThuDisplay}</p>
1372 </#if>
1373
1374 <#assign trangThai = trangThai.getData() />
1375 <p><strong>Trạng thái:</strong>
1376 <#if trangThai == 'DANGTHUCHIEN'>
1377 Đang thực hiện
1378 <#elseif trangThai == 'DATHUCHIEN'>
1379 Đã thực hiện
1380 <#else>
1381 Tất cả
1382 </#if>
1383 </p>
1384
1385
1386 <#if fileDinhKem?? && fileDinhKem.getData() != "">
1387 <#assign fileDinhKem = fileDinhKem.getData() />
1388 <#assign path = fileDinhKem?split("?")[0]>
1389 <#assign parts = path?split("/")>
1390 <#assign fileName = parts[parts?size - 2]>
1391
1392 <p><strong>File đính kèm:</strong> <a href="${fileDinhKem}" target="_blank"
1393 style="color: #5e5eff">${fileName}</a></p>
1394 </#if>
1395
1396
1397
1398
1399 <#-- <#assign sanitizedContent = noiDung.getData()?replace("<script>", "<p class='d-none'>")?replace("</script>", "</p>")>-->
1400 <#-- ${sanitizedContent}-->
1401 <#-- ${sanitizedContent}-->
1402
1403 </div>
1404 <div class="article-info">
1405 <div class="row social-buttons">
1406 <div class="col-lg-10 d-flex align-items-center">
1407 <iframe class="share-fb-custom"
1408 src="https://www.facebook.com/plugins/share_button.php?href=https://${currentUrl}&layout=button_count&size=small&width=92&height=28&appId=252861586372350&locale=vi_VN"
1409 width="92" height="28"
1410 style="border:none;overflow:hidden" scrolling="no" frameborder="0"
1411 allowTransparency="true" allow="encrypted-media"></iframe>
1412 <div style="display: flex; align-items: center;">
1413 <p class="text-dgbv">Đánh giá bài viết:</p>
1414 <div class="ratings-wrapper ml-2">
1415 <div data-productid="39" class="ratings">
1416 <span class="star" data-rating="5"></span>
1417 <span class="star" data-rating="4"></span>
1418 <span class="star" data-rating="3"></span>
1419 <span class="star" data-rating="2"></span>
1420 <span class="star" data-rating="1"></span>
1421 </div>
1422 </div>
1423 </div>
1424 </div>
1425 <div class="col-lg-1 ctbv-right"></div>
1426 </div>
1427 </div>
1428 <div class="line"></div>
1429 <p class="title-content-vni">
1430 <img src="/documents/37638/39612/icon-tag.svg"/>
1431 </p>
1432 <div class="menu-tags">
1433 <#list currentArticleAssetEntry.getTags() as tag>
1434 <div class="tags"><p class="tag">${tag.name}</p></div>
1435 </#list>
1436 </div>
1437
1438 <div class="line"></div>
1439
1440 <div class="y-kien">
1441 <div class="position-relative d-flex flex-column">
1442 <div class="title-ccni" style="width: fit-content">
1443 <a class="d-flex align-items-center" style="margin-bottom: 10px">
1444 <!-- <img src="/documents/37638/39612/camera-icon.svg" alt="icon" class="mr-2 title-ccni-icon"> -->
1445 <p class="mb-0" data-lfr-editable-id="element-text" data-lfr-editable-type="text">
1446 Ý KIẾN CỦA BẠN
1447 </p>
1448 </a>
1449 <div class="spotlight-x" style="
1450 width: 20%;
1451 position: absolute;
1452 bottom: 0;
1453 left: 0;
1454 z-index: 2;
1455 display: block;
1456 ">
1457 <div class="d-flex orange-line">
1458 <div class="line-blue"></div>
1459 </div>
1460 </div>
1461 <div class="line-tail-chitiet position-absolute"></div>
1462 </div>
1463 </div>
1464
1465
1466 <div class="form-binh-luan my-2">
1467 <form>
1468 <div class="form-group">
1469 <label class="label-binh-luan" for="inputAddress">Tên <span class="text-danger">*</span></label>
1470 <input type="text" class="form-control" id="inputAddress" placeholder="Nhập tên">
1471 </div>
1472 <div class="form-row">
1473 <div class="form-group col-md-3">
1474 <label class="label-binh-luan" for="inputZip">Số điện thoại <span
1475 class="text-danger">*</span></label>
1476 <input type="text" class="form-control" placeholder="Nhập số điện thoại"
1477 id="inputZip">
1478 </div>
1479 <div class="form-group col-md-9">
1480 <label class="label-binh-luan" for="inputEmail4">Email <span
1481 class="text-danger">*</span></label>
1482 <input type="email" class="form-control" placeholder="Nhập email" id="inputEmail4">
1483 </div>
1484 </div>
1485
1486 <div class="form-group">
1487 <label class="label-binh-luan" for="inputAddress2">Bình luận, góp ý <span
1488 class="text-danger">*</span></label>
1489 <textarea class="form-control" id="exampleFormControlTextarea1"
1490 placeholder="Nhập ý kiến của bạn ..." rows="3"></textarea>
1491 </div>
1492 <div class="d-flex justify-content-end">
1493 <button type="submit" class="btn btn-send-cmt" style="">Gửi bình luận</button>
1494 </div>
1495 </form>
1496 </div>
1497 </div>
1498
1499 <div class="y-kien-ban-doc my-4">
1500 <div class="position-relative d-flex flex-column">
1501 <div class="title-ccni" style="width: fit-content">
1502 <a class="d-flex align-items-center" style="margin-bottom: 10px">
1503 <p class="mb-0" data-lfr-editable-id="element-text" data-lfr-editable-type="text">
1504 Ý KIẾN BẠN ĐỌC
1505 </p>
1506 </a>
1507 <div class="spotlight-x" style="
1508 width: 20%;
1509 position: absolute;
1510 bottom: 0;
1511 left: 0;
1512 z-index: 2;
1513 display: block;
1514 ">
1515 <div class="d-flex orange-line">
1516 <div class="line-blue"></div>
1517 </div>
1518 </div>
1519 <div class="line-tail-chitiet position-absolute"></div>
1520 </div>
1521 </div>
1522
1523 <div class="wrap-list-comment my-3">
1524 <div class="row">
1525 <div class="col-12">
1526 <#-- <div class="d-flex">-->
1527 <#-- <div class="img-user-cmt pr-3">-->
1528 <#-- <img src="/documents/37638/39612/icon-user-cmt.png">-->
1529 <#-- </div>-->
1530 <#-- <div class="content-comment">-->
1531 <#-- <div class="user-name-cmt">Trần Min <span class="time-comment">12 phút trước</span></div>-->
1532 <#-- <div class="txt-content-cmt mt-2">Lorem ipsum dolor sit amet consectetur. A eu nunc commodo facilisis metus mi eget tortor vestibulum. Viverra facilisi sit cras integer turpis eros faucibus sed nunc.</div>-->
1533 <#-- </div>-->
1534 <#-- </div>-->
1535 <#-- <div class="thin-line my-2"></div>-->
1536 <#-- <div class="d-flex">-->
1537 <#-- <div class="img-user-cmt pr-3">-->
1538 <#-- <img src="/documents/37638/39612/icon-user-cmt.png">-->
1539 <#-- </div>-->
1540 <#-- <div class="content-comment">-->
1541 <#-- <div class="user-name-cmt">Phan Duy <span class="time-comment">8 phút trước</span></div>-->
1542 <#-- <div class="txt-content-cmt mt-2">ปีครับ. ฉันเป็นคนเวียดนามค่ะ. ผมเป็นคนเวียดนามครับ. ฉันเป็นครูสอนภาษาไทยค่ะ. ผมเป็นครูสอนภาษาไทยครับ. ฉันทํางานที่บริษัท. เอ บี ซี. ค่ะ ผมทํางานที่บ้านครับ. ฉันพูดภาษา .</div>-->
1543 <#-- </div>-->
1544 <#-- </div>-->
1545 <#-- <button class="btn-xem-them-cmt w-100">Xem thêm bình luận</button>-->
1546 </div>
1547 </div>
1548 </div>
1549 </div>
1550
1551 <div id="comment-list"></div>
1552 <div class="y-kien-ban-doc my-4">
1553 <div class="position-relative d-flex flex-column mb-3">
1554 <div class="title-ccni" style="width: fit-content">
1555 <a class="d-flex align-items-center" style="margin-bottom: 10px">
1556 <p class="mb-0" data-lfr-editable-id="element-text" data-lfr-editable-type="text">
1557 CÁC TIN KHÁC
1558 </p>
1559 </a>
1560 <div class="spotlight-x" style="
1561 width:18%;
1562 position: absolute;
1563 bottom: 0;
1564 left: 0;
1565 z-index: 2;
1566 display: block;
1567 ">
1568 <div class="d-flex orange-line">
1569 <div class="line-blue"></div>
1570 </div>
1571 </div>
1572 <div class="line-tail-chitiet position-absolute"></div>
1573 </div>
1574 </div>
1575
1576
1577 <div class="col-lg-12 col-xl-12 mb-4 px-lg-0 px-3">
1578 <#if teste?has_content>
1579 <div class="row">
1580 <#assign indexLocal = 0/>
1581 <#assign
1582 isSpecialSite = getterUtil.getBoolean(themeDisplay.getThemeSetting("isSpecialSite"))
1583 />
1584 <#list teste?filter(curEntryyy -> curEntryyy.getEntryId() != currentArticleAssetEntry.getEntryId()) as curEntryyy>
1585 <#if curEntryyy?? && curEntryyy.getAssetRenderer()??>
1586 <#assign
1587 renderer = curEntryyy.getAssetRenderer()
1588 className = renderer.getClassName()!"" />
1589 <#if className == "com.liferay.journal.model.JournalArticle" && indexLocal < 6>
1590 <#assign
1591 title = curEntryyy.getTitle(locale)!""
1592 article = renderer.getArticle()!
1593 SmallImageID = article.getSmallImageId()!0
1594 SmallImage = article.getSmallImageURL()!""
1595 description = article.getDescription(locale)!""
1596 curEntryyy = curEntryyy
1597 viewURL = "${themeDisplay.getPathFriendlyURLPublic()}${themeDisplay.getSiteGroup().getFriendlyURL()}/-/${renderer.getUrlTitle()}"
1598 <#-- viewURL = (themeDisplay.getPathFriendlyURLPublic())!"" + (themeDisplay.getSiteGroup().getFriendlyURL())!"" + "/-/" + (renderer.getUrlTitle())!""-->
1599 hasMatch = false />
1600 <#if isSpecialSite?? && isSpecialSite?c == "true">
1601 <#assign currentUrl = themeDisplay.getURLCurrent()!"" />
1602 <#if currentUrl?has_content>
1603 <#assign parts_split = currentUrl?split("/")>
1604 <#assign aidx = parts_split?seq_index_of("asset_publisher")>
1605 <#if aidx != -1 && (parts_split?size > (aidx + 1))>
1606 <#assign portletKey = parts_split[aidx + 1]>
1607 <#else>
1608 <#if rvlr??>
1609 <#assign portletKey = rvlr>
1610 <#else>
1611 <#assign portletKey = "default_portlet_key">
1612 </#if>
1613 </#if>
1614
1615 <#-- <#if renderer?? && renderer.getUrlTitle()??>-->
1616 <#-- <#assign viewURL = "${themeDisplay.getPathFriendlyURLPublic()!}${themeDisplay.getSiteGroup().getFriendlyURL()!}/chi-tiet/-/asset_publisher/${portletKey}/content/${renderer.getUrlTitle()}/39403" />-->
1617 <#-- <#else>-->
1618 <#-- <#assign viewURL = "#" />-->
1619 <#-- </#if>-->
1620 </#if>
1621 </#if>
1622 <#list curEntryyy.getCategories() as categoryList>
1623 <#list currentArticleAssetEntry.getCategories() as cateId>
1624 <#if categoryList.getCategoryId() == cateId.getCategoryId()>
1625 <#assign hasMatch = true />
1626 <#break />
1627 </#if>
1628 </#list>
1629 <#if hasMatch>
1630 <#break />
1631 </#if>
1632 </#list>
1633 <#if hasMatch>
1634 <#if SmallImage ?? && SmallImage?length !=0 >
1635 <#assign smallImageUrl = SmallImage>
1636 <#elseif SmallImageID ?? && SmallImageID != 0>
1637 <#assign smallImageUrl = "/image/journal/article?img_id=${SmallImageID}">
1638 <#else>
1639 <#assign smallImageUrl = "/documents/37638/39612/background-phaohoa.jfif" >
1640 </#if>
1641 <#if indexLocal == 0>
1642 <div class="col-12 mb-4" idx="${indexLocal+1}"
1643 style="height: 100% !important;">
1644 <div class="row mx-auto">
1645 <#-- <a href="${viewURL}" class="row w-100 ">-->
1646 <div class="col-3 pl-0 content-left-tlq">
1647 <img id="tin-slide-img-left"
1648 class="tin-slide-img-left img-34-left p-0 h-img-ctbv"
1649 src="${smallImageUrl}" alt="" width="100%"
1650 onerror="this.onerror=null; this.src='${noImageUrl}';">
1651 </div>
1652 <div class="col-9 content-right-tlq">
1653 <p class="limit-title-1 text-title-tlq-img"
1654 title="${title}">${title}</p>
1655 <div class="text-left limit-description-3 text-des-tlq"
1656 title="${htmlUtil.extractText(description)}">
1657 <p>${htmlUtil.extractText(description)}</p></div>
1658 <#-- <p class="text-readmore-tlq d-mobile-none">Đọc thêm-->
1659 <#-- <i class="fa fa-angle-right"></i>-->
1660 <#-- </p>-->
1661 </div>
1662 <#-- </a>-->
1663 </div>
1664 </div>
1665 <#-- <div class="line-tlq"></div>-->
1666 <#else>
1667 <div class="col-lg-12 px-0 mb-3" idx="${indexLocal+1}"
1668 style="margin-left: 15px;">
1669 <li class="sdt-list-tlq-items d-flex ">
1670 <div style="height: 20px; width: 20px">
1671 <img src="/documents/37638/39612/icon-book.png"
1672 class="pr-2"/>
1673 </div>
1674 <a class="limit-title-1 mr-2"
1675 href="${viewURL}"
1676 title="${title}">${title}</a>
1677 </li>
1678 </div>
1679 </#if>
1680 <#assign indexLocal = indexLocal + 1 />
1681 </#if>
1682 </#if>
1683 </#if>
1684 </#list>
1685 </div>
1686 </#if>
1687 </div>
1688 </div>
1689
1690
1691 </div>
1692 </div>
1693 </div>
1694</div>
1695
1696<script>
1697 $(document).ready(function () {
1698 getFeedback(10);
1699 let stars = document.querySelectorAll(".ratings span");
1700 let products = document.querySelectorAll(".ratings");
1701 let ratings = [];
1702
1703 for (let star of stars) {
1704 star.addEventListener("click", function () {
1705 let children = star.parentElement.children;
1706 for (let child of children) {
1707 if (child.getAttribute("data-clicked")) {
1708 return false;
1709 }
1710 }
1711
1712 this.setAttribute("data-clicked", "true");
1713 let rating = this.dataset.rating;
1714 let productId = this.parentElement.dataset.productid;
1715 let data = {
1716 "rating": rating,
1717 "product-id": productId,
1718 }
1719 ratings.push(data);
1720 localStorage.setItem("rating", JSON.stringify(ratings));
1721 });
1722 }
1723
1724 if (localStorage.getItem("rating")) {
1725 ratings = JSON.parse(localStorage.getItem("rating"));
1726 for (let rating of ratings) {
1727 for (let product of products) {
1728 if (rating["product-id"] == product.dataset.productid) {
1729 let reverse = Array.from(product.children).reverse();
1730 let index = parseInt(rating["rating"]) - 1;
1731 reverse[index].setAttribute("data-clicked", "true");
1732 }
1733 }
1734 }
1735 }
1736 });
1737
1738 /*function submitUserForm() {
1739 var response = grecaptcha.getResponse();
1740 if (response.length == 0) {
1741 $("#g-recaptcha-error").html("<span style='color:red;'>This field is required.</span>");
1742 return false;
1743 }
1744 return true;
1745 };
1746*/
1747 function verifyCaptcha() {
1748 $("#g-recaptcha-error").html("");
1749 }
1750
1751 function sendFeedback() {
1752 let isValid = true;
1753 var response = grecaptcha.getResponse();
1754 if (response.length == 0) {
1755 $("#g-recaptcha-error").html("<span style='color:red;'>This field is required.</span>");
1756 return false;
1757 }
1758 $('[required]').each(function () {
1759 if ($(this).val().toString().trim().length == 0) {
1760 isValid = false;
1761 alert('Vui lòng nhập thông tin ' + $(this).attr('title'));
1762 return false;
1763 } else if ($(this).attr("regex") != undefined) {
1764 if (new RegExp($(this).attr('regex')).test($(this).val())) {
1765 isValid = true;
1766 } else {
1767 alert('Vui lòng nhập đúng định dạng ' + $(this).attr('title'))
1768 isValid = false;
1769 return false;
1770 }
1771
1772 } else {
1773 isValid = true;
1774 }
1775 });
1776 const param = JSON.stringify({
1777 baiVietId: '${currentArticle.id}',
1778 noiDung: $("#commentContent").val(),
1779 ten: $("#commentName").val(),
1780 mail: $("#email").val(),
1781 soDienThoai: $("#soDienThoai").val(),
1782 tieuDeBaiViet: '${currentArticle.title}',
1783 tenTacGia: '${currentArticle.userName}',
1784 });
1785 console.log(param)
1786 $.ajax({
1787 url: location.origin + '/api/v1/public/tuongtacbaiviet/themBinhLuan',
1788 type: 'POST',
1789 cache: false,
1790 dataType: "json",
1791 contentType: "application/json",
1792 data: param,
1793 success: function () {
1794 alert("Đã gửi thành công");
1795 $("#commentContent").val('');
1796 $("#commentName").val('');
1797 $("#email").val('');
1798 $("#soDienThoai").val('');
1799 },
1800 error: function (er) {
1801 alert("Gửi bình luận thất bại");
1802 }
1803 });
1804 }
1805
1806 function getFeedback(sizecmt) {
1807 $('#comment-list').empty();
1808 const param = JSON.stringify({
1809 baiVietId: '${currentArticle.id}'
1810 });
1811 $.ajax({
1812 url: location.origin + '/api/v1/public/tuongtacbaiviet/truyCapBaiViet',
1813 type: 'POST',
1814 cache: false,
1815 dataType: "json",
1816 contentType: "application/json",
1817 data: param,
1818 }).done(function (data) {
1819 var dsBinhLuan = data.msg.thongTinBinhLuans;
1820 var count = data.msg.thongTinBinhLuans.length;
1821 var htmlYKien = '';
1822 if (dsBinhLuan.length > 0) {
1823 htmlYKien += '<h2 class="botting-border"><span class="text-border">Bình luận, ý kiến của bạn đọc (' + count + ')</span></h2>';
1824 for (var i = 0; i < dsBinhLuan.length; i++) {
1825 var obj = dsBinhLuan[i];
1826 htmlYKien += '<div class="item box_cm">';
1827 htmlYKien += '<a href="javascript:void(0)" class="avatar">\n' +
1828 ' <img src="${images_folder}/icons/iconuser.png">\n' +
1829 ' </a>';
1830 htmlYKien += '<div class="item-content">';
1831 htmlYKien += '<span class="user-name">' + obj.ten + '</span>' + ' <span class="date-cmt">' + obj.thoiGianBinhLuan + '</span></br>';
1832 htmlYKien += '<span class="text-comment">' + obj.noiDungHienThi + '</span>';
1833 htmlYKien += '</div>';
1834 htmlYKien += '</div>';
1835 }
1836 if (count > sizecmt) {
1837 htmlYKien += '<div class="text-center">\n' +
1838 '<button type="submit" class="btnmorecmt" onclick="getFeedback(' + (sizecmt + 10) + ')" >Xem thêm bình luận, ý kiến\n' +
1839 '</button>\n' +
1840 '</div>';
1841 }
1842 $('#comment-list').append(htmlYKien);
1843 }
1844 ;
1845 });
1846 }
1847</script>
1848<script src="https://sp.zalo.me/plugins/sdk.js"></script>
1849<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
1850<script src="https://code.responsivevoice.org/responsivevoice.js?key=25hFfRt0"></script>
1851<script async defer crossorigin="anonymous" src="https://connect.facebook.net/vi_VN/sdk.js#xfbml=1&version=v17.0"
1852 nonce="vuMxJ4dq"></script>
1853<script src="https://www.google.com/recaptcha/api.js" async defer></script>
1854
1855
1856<#macro getMetadataField
1857fieldName
1858>
1859 <#if stringUtil.split(metadataFields)?seq_contains(fieldName)>
1860 <span class="metadata-entry metadata-${fieldName}">
1861 <#assign dateFormat = "dd MMM yyyy - HH:mm:ss" />
1862
1863 <#if stringUtil.equals(fieldName, "author")>
1864 <@liferay.language key="by" /> ${htmlUtil.escape(portalUtil.getUserName(assetRenderer.getUserId(), assetRenderer.getUserName()))}
1865 <#elseif stringUtil.equals(fieldName, "categories")>
1866 <@liferay_asset["asset-categories-summary"]
1867 className=curEntry.getClassName()
1868 classPK=curEntry.getClassPK()
1869 portletURL=renderResponse.createRenderURL()
1870 />
1871 <#elseif stringUtil.equals(fieldName, "create-date")>
1872 ${dateUtil.getDate(curEntry.getCreateDate(), dateFormat, locale)}
1873 <#elseif stringUtil.equals(fieldName, "expiration-date")>
1874 ${dateUtil.getDate(curEntry.getExpirationDate(), dateFormat, locale)}
1875 <#elseif stringUtil.equals(fieldName, "modified-date")>
1876 ${dateUtil.getDate(curEntry.getModifiedDate(), dateFormat, locale)}
1877 <#elseif stringUtil.equals(fieldName, "priority")>
1878 ${curEntry.getPriority()}
1879 <#elseif stringUtil.equals(fieldName, "publish-date")>
1880 ${dateUtil.getDate(curEntry.getPublishDate(), dateFormat, locale)}
1881 <#elseif stringUtil.equals(fieldName, "tags")>
1882 <@liferay_asset["asset-tags-summary"]
1883 className=curEntry.getClassName()
1884 classPK=curEntry.getClassPK()
1885 portletURL=renderResponse.createRenderURL()
1886 />
1887 <#elseif stringUtil.equals(fieldName, "view-count")>
1888 ${curEntry.getViewCount()}
1889 </#if>
1890 </span>
1891 </#if>
1892</#macro>
THÔNG TIN CẦN BIẾT
Đăng ký sử dụng dịch vụ bưu chính
Lịch phát sóng truyền hình
Điện lực
Đi đến
Cấp nước
Xe buýt
Số điện thoại cần biết
Danh mục TTHC thực hiện tiếp nhận, trả kết quả qua dịch vụ bưu chính
LIÊN KẾT WEBSITE