Quyết định số 970/QĐ-TTg ngày 19/5/2025 của Thủ tướng Chính phủ quy định trách nhiệm người đứng đầu các cơ quan nhà nước trong công tác lãnh đạo, chỉ đạo triển khai thực hiện nhiệm vụ về phát triển khoa học, công nghệ, đổi mới sáng tạo và chuyển đổi số của cơ quan, tổ chức
Có lỗi xảy ra trong quá trình xử lý biểu mẫu.
Java method "com.sun.proxy.$Proxy2616.getArticle(long, String)" threw an exception when invoked on com.sun.proxy.$Proxy2616 object "com.liferay.journal.change.tracking.internal.service.CTJournalArticleLocalServiceWrapper@c574a87"; see cause exception in the Java stack trace. ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign articlePrimKey = JournalArtic... [in template "34201#34227#43055" at line 531, column 9] ----
1<style>
2 .other-news {
3 color: #cb373b;
4 font-weight: bold;
5 margin-top: 5px;
6 margin-bottom: 3px;
7 overflow: hidden;
8 }
9 .other-news:after {
10 content:"";
11 display: inline-block;
12 height: 0.5em;
13 vertical-align: bottom;
14 width: 100%;
15 margin-right: -100%;
16 margin-left: 10px;
17 border-top: 1px solid #cb373b;
18 }
19 .date-span {
20 color: #888888;
21 font-size: 14px;
22 font-weight: normal;
23 }
24 .limit-tit {
25 display: block;
26 text-overflow: ellipsis;
27 word-wrap: break-word;
28 overflow: hidden;
29 max-height: 6em;
30 display: -webkit-box;
31 -webkit-line-clamp: 2;
32 -webkit-box-orient: vertical;
33 margin: 0;
34 }
35 @media only screen and (min-width: 768px) {
36 .other-imgs {
37 height: 60px;
38 }
39 }
40 @media only screen and (max-width: 500px) {
41 .curPage-title {
42 display: none;
43 }
44 .title-divvv {
45 text-align: justify;
46 margin-top: 50px;
47 }
48 }
49 .pagination2 {
50 display: inline-block;
51 }
52
53 .pagination2 a {
54 cursor: pointer;
55 color: black;
56 float: left;
57 padding: 8px 16px;
58 text-decoration: none;
59 transition: background-color .3s;
60 border: 1px solid #ddd;
61 margin: 0 4px;
62 }
63
64 .pagination2 a.active {
65 background-color: #4CAF50;
66 color: white;
67 border: 1px solid #4CAF50;
68 }
69
70 .pagination2 a:hover:not(.active) {
71 background-color: #ddd;
72 }
73 .tieuDe-asset::after {
74 position: absolute;
75 content: "";
76 left: 100%;
77 top: 0;
78 border-top: 14px solid transparent;
79 border-bottom: 15px solid transparent;
80 border-left: 13px solid darkgray;
81 }
82 .asset-full-content.clearfix.mb-5.show-asset-title {
83 margin-bottom: 0 !important;
84 }
85 .article-head {
86 margin-bottom: 0;
87 }
88 @media only screen and (max-width: 768px) {
89 #contentText iframe {
90 width: 100% !important;
91 }
92 .article-head .article-info {
93 margin-bottom: 0;
94 padding: 15px 0 8px 0;
95 }
96 }
97 @media only screen and (max-width: 500px) {
98 .curPage-title {
99 display: unset !important;
100 }
101 }
102 .paginate-pagination ul {
103
104 margin: 20px 0;
105 padding: 0;
106 list-style: none;
107
108}
109
110.paginate-pagination ul:after {
111
112 content: ' ';
113 display: table;
114 clear: both;
115
116}
117
118.paginate-pagination ul > li {
119
120 float: left;
121 margin-right: 3px;
122
123}
124
125.paginate-pagination ul > li > a.page {
126
127 display: block;
128 height: 30px;
129 width: 30px;
130 text-align: center;
131 line-height: 30px;
132 border: 1px solid #ddd;
133 background: white;
134 text-decoration: none;
135 cursor: pointer;
136
137}
138
139.paginate-pagination ul > li > a.page:hover { opacity: 0.7; }
140.paginate-pagination ul > li > a.page.active { opacity: 0.7; cursor: default; }
141
142.paginate-pagination ul > li > a.page-next.deactive,
143.paginate-pagination ul > li > a.page-prev.deactive { opacity: 0.7; cursor: default; }
144</style>
145<style>
146
147.page_navigation , .alt_page_navigation{
148 padding-bottom: 10px;
149
150}
151
152.page_navigation a, .alt_page_navigation a{
153float: left;
154 width: 32px;
155 text-align: center;
156 padding: 6px 0;
157 border: 1px solid #cdcdcd;
158 border-right: none;
159 background: #fff;
160 color: #45afe4;
161}
162.page_navigation a:hover{
163 cursor: pointer;
164 background: rgb(216, 241, 255);
165}
166.ellipse{
167 float: left;
168 border-right:1px solid #cdcdcd;
169}
170.active_page{
171 background-color:#45afe4 !important;
172 color:#fff !important;
173}
174.component-title{
175display:none;
176}
177.metadata-author{
178display:none;
179}
180.portlet-header{
181display:none;
182}
183</style>
184<script type="text/javascript">
185;
186(function($) { /*******************************************************************************************/
187
188 $.fn.pajinate = function(options) {
189 // Set some state information
190 var current_page = 'current_page';
191 var items_per_page = 'items_per_page';
192
193 var meta;
194
195 // Setup default option values
196 var defaults = {
197 item_container_id: '.content',
198 items_per_page: 5,
199 nav_panel_id: '.page_navigation',
200 nav_info_id: '.info_text',
201 num_page_links_to_display: 5,
202 start_page: 0,
203 wrap_around: false,
204 nav_label_first: 'First',
205 nav_label_prev: 'Prev',
206 nav_label_next: 'Next',
207 nav_label_last: 'Last',
208 nav_order: ["first", "prev", "num", "next", "last"],
209 nav_label_info: 'Showing {0}-{1} of {2} results',
210 show_first_last: true,
211 abort_on_small_lists: false,
212 jquery_ui: false,
213 jquery_ui_active: "ui-state-highlight",
214 jquery_ui_default: "ui-state-default",
215 jquery_ui_disabled: "ui-state-disabled"
216 };
217
218 var options = $.extend(defaults, options);
219 var $item_container;
220 var $page_container;
221 var $items;
222 var $nav_panels;
223 var total_page_no_links;
224 var jquery_ui_default_class = options.jquery_ui ? options.jquery_ui_default : '';
225 var jquery_ui_active_class = options.jquery_ui ? options.jquery_ui_active : '';
226 var jquery_ui_disabled_class = options.jquery_ui ? options.jquery_ui_disabled : '';
227
228 return this.each(function() {
229 $page_container = $(this);
230 $item_container = $(this).find(options.item_container_id);
231 $items = $page_container.find(options.item_container_id).children();
232
233 if (options.abort_on_small_lists && options.items_per_page >= $items.size()) return $page_container;
234
235 meta = $page_container;
236
237 // Initialize meta data
238 meta.data(current_page, 0);
239 meta.data(items_per_page, options.items_per_page);
240
241 // Get the total number of items
242 var total_items = $item_container.children().size();
243
244 // Calculate the number of pages needed
245 var number_of_pages = Math.ceil(total_items / options.items_per_page);
246
247 // Construct the nav bar
248 var more = '<a class="ellipse more">...</a>';
249 var less = '<a class="ellipse less">...</a>';
250 var first = !options.show_first_last ? '' : '<a class="first_link ' + jquery_ui_default_class + '" href="">' + options.nav_label_first + '</a>';
251 var last = !options.show_first_last ? '' : '<a style="border:1px solid #cdcdcd;" class="last_link ' + jquery_ui_default_class + '" href="">' + options.nav_label_last + '</a>';
252
253 var navigation_html = "";
254
255 for (var i = 0; i < options.nav_order.length; i++) {
256 switch (options.nav_order[i]) {
257 case "first":
258 navigation_html += first;
259 break;
260 case "last":
261 navigation_html += last;
262 break;
263 case "next":
264 navigation_html += '<a class="next_link ' + jquery_ui_default_class + '" href="">' + options.nav_label_next + '</a>';
265 break;
266 case "prev":
267 navigation_html += '<a class="previous_link ' + jquery_ui_default_class + '" href="">' + options.nav_label_prev + '</a>';
268 break;
269 case "num":
270 navigation_html += less;
271 var current_link = 0;
272 while (number_of_pages > current_link) {
273 navigation_html += '<a class="page_link ' + jquery_ui_default_class + '" href="" longdesc="' + current_link + '">' + (current_link + 1) + '</a>';
274 current_link++;
275 }
276 navigation_html += more;
277 break;
278 default:
279 break;
280 }
281
282 }
283
284 // And add it to the appropriate area of the DOM
285 $nav_panels = $page_container.find(options.nav_panel_id);
286 $nav_panels.html(navigation_html).each(function() {
287
288 $(this).find('.page_link:first').addClass('first');
289 $(this).find('.page_link:last').addClass('last');
290
291 });
292
293 // Hide the more/less indicators
294 $nav_panels.children('.ellipse').hide();
295
296 // Set the active page link styling
297 $nav_panels.find('.previous_link').next().next().addClass('active_page ' + jquery_ui_active_class);
298
299 /* Setup Page Display */
300 // And hide all pages
301 $items.hide();
302 // Show the first page
303 $items.slice(0, meta.data(items_per_page)).show();
304
305 /* Setup Nav Menu Display */
306 // Page number slices
307 total_page_no_links = $page_container.find(options.nav_panel_id + ':first').children('.page_link').size();
308 options.num_page_links_to_display = Math.min(options.num_page_links_to_display, total_page_no_links);
309
310 $nav_panels.children('.page_link').hide(); // Hide all the page links
311 // And only show the number we should be seeing
312 $nav_panels.each(function() {
313 $(this).children('.page_link').slice(0, options.num_page_links_to_display).show();
314 });
315
316 /* Bind the actions to their respective links */
317
318 // Event handler for 'First' link
319 $page_container.find('.first_link').click(function(e) {
320 e.preventDefault();
321
322 movePageNumbersRight($(this), 0);
323 gotopage(0);
324 });
325
326 // Event handler for 'Last' link
327 $page_container.find('.last_link').click(function(e) {
328 e.preventDefault();
329 var lastPage = total_page_no_links - 1;
330 movePageNumbersLeft($(this), lastPage);
331 gotopage(lastPage);
332 });
333
334 // Event handler for 'Prev' link
335 $page_container.find('.previous_link').click(function(e) {
336 e.preventDefault();
337 showPrevPage($(this));
338 });
339
340
341 // Event handler for 'Next' link
342 $page_container.find('.next_link').click(function(e) {
343 e.preventDefault();
344 showNextPage($(this));
345 });
346
347 // Event handler for each 'Page' link
348 $page_container.find('.page_link').click(function(e) {
349 e.preventDefault();
350 gotopage($(this).attr('longdesc'));
351 });
352
353 // Goto the required page
354 gotopage(parseInt(options.start_page));
355 toggleMoreLess();
356 if (!options.wrap_around) tagNextPrev();
357 });
358
359 function showPrevPage(e) {
360 new_page = parseInt(meta.data(current_page)) - 1;
361
362 // Check that we aren't on a boundary link
363 if ($(e).siblings('.active_page').prev('.page_link').length == true) {
364 movePageNumbersRight(e, new_page);
365 gotopage(new_page);
366 }
367 else if (options.wrap_around) {
368 gotopage(total_page_no_links - 1);
369 }
370
371 };
372
373 function showNextPage(e) {
374 new_page = parseInt(meta.data(current_page)) + 1;
375
376 // Check that we aren't on a boundary link
377 if ($(e).siblings('.active_page').next('.page_link').length == true) {
378 movePageNumbersLeft(e, new_page);
379 gotopage(new_page);
380 }
381 else if (options.wrap_around) {
382 gotopage(0);
383 }
384
385 };
386
387 function gotopage(page_num) {
388
389 page_num = parseInt(page_num, 10)
390
391 var ipp = parseInt(meta.data(items_per_page));
392
393 // Find the start of the next slice
394 start_from = page_num * ipp;
395
396 // Find the end of the next slice
397 end_on = start_from + ipp;
398 // Hide the current page
399 var items = $items.hide().slice(start_from, end_on);
400
401 items.show();
402
403 // Reassign the active class
404 $page_container.find(options.nav_panel_id).children('.page_link[longdesc=' + page_num + ']').addClass('active_page ' + jquery_ui_active_class).siblings('.active_page').removeClass('active_page ' + jquery_ui_active_class);
405
406 // Set the current page meta data
407 meta.data(current_page, page_num);
408 /*########## Ajout de l'option page courante + nombre de pages*/
409 var $current_page = parseInt(meta.data(current_page)+1);
410 // Get the total number of items
411 var total_items = $item_container.children().size();
412 // Calculate the number of pages needed
413 var $number_of_pages = Math.ceil(total_items / options.items_per_page);
414 /*##################################################################*/
415 $page_container.find(options.nav_info_id).html(options.nav_label_info.replace("{0}", start_from + 1).
416 replace("{1}", start_from + items.length).replace("{2}", $items.length).replace("{3}", $current_page).replace("{4}", $number_of_pages));
417
418 // Hide the more and/or less indicators
419 toggleMoreLess();
420
421 // Add a class to the next or prev links if there are no more pages next or previous to the active page
422 tagNextPrev();
423
424 // check if the onPage callback is available and call it
425 if (typeof(options.onPageDisplayed) !== "undefined" ) {
426 options.onPageDisplayed.call(this, page_num + 1)
427 }
428
429 }
430
431 // Methods to shift the diplayed index of page numbers to the left or right
432
433
434 function movePageNumbersLeft(e, new_p) {
435 var new_page = new_p;
436
437 var $current_active_link = $(e).siblings('.active_page');
438
439 if ($current_active_link.siblings('.page_link[longdesc=' + new_page + ']').css('display') == 'none') {
440
441 $nav_panels.each(function() {
442 $(this).children('.page_link').hide() // Hide all the page links
443 .slice(parseInt(new_page - options.num_page_links_to_display + 1), new_page + 1).show();
444 });
445 }
446
447 }
448
449 function movePageNumbersRight(e, new_p) {
450 var new_page = new_p;
451
452 var $current_active_link = $(e).siblings('.active_page');
453
454 if ($current_active_link.siblings('.page_link[longdesc=' + new_page + ']').css('display') == 'none') {
455
456 $nav_panels.each(function() {
457 $(this).children('.page_link').hide() // Hide all the page links
458 .slice(new_page, new_page + parseInt(options.num_page_links_to_display)).show();
459 });
460 }
461 }
462
463 // Show or remove the ellipses that indicate that more page numbers exist in the page index than are currently shown
464
465
466 function toggleMoreLess() {
467
468 if (!$nav_panels.children('.page_link:visible').hasClass('last')) {
469 $nav_panels.children('.more').show();
470 }
471 else {
472 $nav_panels.children('.more').hide();
473 }
474
475 if (!$nav_panels.children('.page_link:visible').hasClass('first')) {
476 $nav_panels.children('.less').show();
477 }
478 else {
479 $nav_panels.children('.less').hide();
480 }
481 }
482
483 /* Add the style class ".no_more" to the first/prev and last/next links to allow custom styling */
484
485 function tagNextPrev() {
486 if ($nav_panels.children('.last').hasClass('active_page')) {
487 $nav_panels.children('.next_link').add('.last_link').addClass('no_more ' + jquery_ui_disabled_class);
488 }
489 else {
490 $nav_panels.children('.next_link').add('.last_link').removeClass('no_more ' + jquery_ui_disabled_class);
491 }
492
493 if ($nav_panels.children('.first').hasClass('active_page')) {
494 $nav_panels.children('.previous_link').add('.first_link').addClass('no_more ' + jquery_ui_disabled_class);
495 }
496 else {
497 $nav_panels.children('.previous_link').add('.first_link').removeClass('no_more ' + jquery_ui_disabled_class);
498 }
499 }
500
501 };
502
503})(jQuery);
504</script>
505<script type="text/javascript">
506 $(document).ready(function(){
507 $('#paging_container5').pajinate({
508 nav_label_first : '<<',
509 nav_label_last : '>>',
510 nav_label_prev : '<',
511 nav_label_next : '>'
512 });
513 });
514
515 </script>
516<#assign
517 title = .vars['reserved-article-title'].data
518 portalURL = themeDisplay.getPortalURL()
519 currentUrl = portalURL + themeDisplay.getURLCurrent()
520 imageUrl = portalURL + .vars['reserved-article-small-image-url'].data
521 srcfb = "https://www.facebook.com/plugins/like.php?href=${currentUrl}&width=172&layout=button_count&action=like&size=small&share=true&height=46&appId"
522 displayDate = .vars['reserved-article-display-date'].data
523 summary = .vars['reserved-article-description'].data/>
524
525 <#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
526
527 <#assign scopeId = themeDisplay.getScopeGroupId()>
528
529 <#assign contentId = .vars['reserved-article-id'].data>
530
531 <#assign articlePrimKey = JournalArticleLocalService.getArticle(getterUtil.getLong(scopeId), contentId).resourcePrimKey>
532
533 <#assign catLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")>
534 <#assign articleCatId = catLocalService.getCategoryIds("com.liferay.journal.model.JournalArticle", getterUtil.getLong(articlePrimKey))>
535
536 <#assign categoryList = catLocalService.getAssetEntryAssetCategories(getterUtil.getLong(articlePrimKey))>
537
538 <#assign assetEntryQueryService = objectUtil('com.liferay.asset.kernel.service.AssetEntryLocalServiceUtil')>
539
540 <#assign assetEntryQuery = objectUtil('com.liferay.asset.kernel.service.persistence.AssetEntryQuery')>
541
542
543 <#assign search = assetEntryQuery.setAllCategoryIds(articleCatId)>
544 <#assign search = assetEntryQuery.setOrderByCol1("publishDate")/>
545 <#assign search = assetEntryQuery.setOrderByType1("DESC")/>
546
547 <#assign teste = assetEntryQueryService.getEntries(assetEntryQuery)
548 totalPage = 0/>
549
550<#assign layoutService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") />
551<#if (request.getParameter("plidlayout")?has_content)>
552 <#assign plidlayout = request.getParameter("plidlayout") />
553 <#else>
554 <#assign plidlayout = 2 />
555</#if>
556<#assign layout = layoutService.fetchLayout(plidlayout?number) />
557<#assign curLayout = layoutService.fetchLayout(plid?number) />
558<#assign pageTitle = layout.getName(locale) />
559<#assign pageUrl = layout.getFriendlyURL(locale) />
560<#assign curPageTitle = curLayout.getName(locale) />
561<#assign originalLocale = .locale>
562<#setting locale = localeUtil.getDefault()>
563<#assign displayDate = displayDate?datetime("EEE, d MMM yyyy HH:mm:ss Z")>
564<#assign locale = originalLocale>
565<#assign displayDate = displayDate?string("HH:mm dd/MM/yyyy")>
566
567<#assign listLayoutDHD = [5474,5512,179]>
568<#assign layo = themeDisplay.getPlid() />
569
570<script src="https://sp.zalo.me/plugins/sdk.js"></script>
571<liferay-util:html-top outputKey="htmltop">
572 <meta name="url" property="og:url" content="${currentUrl}" />
573 <meta name="type" property="og:type" content="article" />
574 <meta name="title" property="og:title" content="${.vars['reserved-article-title'].data}" />
575 <meta name="image" property="og:image" content="${imageUrl}" >
576</liferay-util:html-top>
577
578
579
580<div class="row">
581 <div class="col-8">
582
583
584 <#if listLayoutDHD?seq_index_of(layo) > -1 >
585 <div class="brumnoidung">
586 <ul class="breadcrumb">
587 <li class="breadcrumb-item crum1"><a href="/home">Trang chủ</a></li>
588 <li class="breadcrumb-item active">Tin tức</li>
589 </ul>
590 </div>
591 <#else>
592 <span style="position: relative;font-weight: bold;font-size: 17px;border-left: 3px solid #ed0678;padding: 5px;background-color: darkgrey;" class="tieuDe-asset">
593 <a href="${pageUrl}">${pageTitle}</a>
594 </span>
595 <#assign journalArticleId = .vars['reserved-article-id'].data>
596 <#assign journalArticleResourceLocalServiceUtil = staticUtil["com.liferay.journal.service.JournalArticleResourceLocalServiceUtil"]>
597 <#assign assetCategoryLocalServiceUtil = staticUtil["com.liferay.asset.kernel.service.AssetCategoryLocalServiceUtil"]>
598
599 <#assign articleResourcePK = journalArticleResourceLocalServiceUtil.getArticleResourcePrimKey(groupId, journalArticleId)/>
600 <#assign categoryList=assetCategoryLocalServiceUtil.getCategories("com.liferay.journal.model.JournalArticle",articleResourcePK) >
601
602 <#list categoryList as thisCategory>
603 <#if (thisCategory_index==0)>
604 <span class="curPage-title" style="font-size: 17px;padding-left: 17px;font-weight: bold;">${thisCategory.getName()}</span>
605 </#if>
606 </#list>
607 </#if>
608
609 <div class="article-head">
610 <div class="article-info" style="border-top: 0px;border-bottom: 0px;margin-left: 11px;">
611 <div class="social-buttons left">
612 ${displayDate}
613 </div>
614 <div class="social-buttons right">
615 <a class="social-thing" onclick="voiceSpeak('contentText','voiceSex')"; style="margin-right: 5px;"
616 data-toggle="tooltip" title="Đọc bài viết">
617 <img class="volume-up" src="/o/portal-dt-home-theme/images/icons/trothinh_volume-btn.png" style="vertical-align: middle;opacity: 1;width: 16px;"/>
618 </a>
619 <a id="void-pause" class="social-thing" onclick="voicePause()"; style="margin-right: 1px;display:none;"
620 data-toggle="tooltip" title="Tạm dừng đọc">
621 <span class="fa fa-pause" style="vertical-align: middle;opacity: 1;width: 13px;color: dimgray;"/>
622 </a>
623 <a id="void-resume" class="social-thing" onclick="voiceResume()"; style="margin-right: 1px;display:none;"
624 data-toggle="tooltip" title="Tiếp tục đọc">
625 <span class="fa fa-repeat" style="vertical-align: middle;opacity: 1;width: 13px;color: dimgray;"></span>
626 </a>
627 <a id="void-stop" class="social-thing" onclick="voiceCancel()"; style="margin-right: 1px;display:none;"
628 data-toggle="tooltip" title="Dừng đọc">
629 <span class="fa fa-stop"style="vertical-align: middle;opacity: 1;width: 13px;color: dimgray;"/>
630 </a>
631 <a class="social-thing" style="margin-right: 5px;">
632 <img src="/o/portal-dt-home-theme/images/icons/trothinh_wall-ico.png" style="vertical-align: middle;opacity: 1;width: 1px;height: 13px"/>
633 </a>
634 <a class="social-thing" onclick="giamTuongPhan();" style="margin-right: 5px;"
635 data-toggle="tooltip" title="Giảm tương phản">
636 <img src="/o/portal-dt-home-theme/images/icons/trothinh_bright-down-btn.png" style="vertical-align: middle;opacity: 1;width: 16px;"/>
637 </a>
638 <a class="social-thing" onclick="tangTuongPhan();" style="margin-right: 5px;"
639 data-toggle="tooltip" title="Tăng tương phản">
640 <img src="/o/portal-dt-home-theme/images/icons/trothinh_bright-up-btn.png" style="vertical-align: middle;opacity: 1;width: 16px;"/>
641 </a>
642 <a class="social-thing" style="margin-right: 5px;">
643 <img src="/o/portal-dt-home-theme/images/icons/trothinh_wall-ico.png" style="vertical-align: middle;opacity: 1;width: 1px;height: 13px"/>
644 </a>
645 <a class="social-thing" onclick="fontMinus();" style="margin-right: 5px;"
646 data-toggle="tooltip" title="Giảm cỡ chữ">
647 <img src="/o/portal-dt-home-theme/images/icons/trothinh_zoom-down-btn.png" style="vertical-align: middle;opacity: 1;width: 16px;"/>
648 </a>
649 <a class="social-thing" onclick="fontDefault();" style="margin-right: 5px;"
650 data-toggle="tooltip" title="Cỡ chữ mặc định">
651 <img src="/o/portal-dt-home-theme/images/icons/trothinh_zoom-btn.png" style="vertical-align: middle;opacity: 1;width: 16px;"/>
652 </a>
653 <a class="social-thing" onclick="fontPlus();" style="margin-right: 5px;"
654 data-toggle="tooltip" title="Tăng cỡ chữ">
655 <img src="/o/portal-dt-home-theme/images/icons/trothinh_zoom-up-btn.png" style="vertical-align: middle;opacity: 1;width: 16px;"/>
656 </a>
657 <a class="social-thing" style="margin-right: 5px;">
658 <img src="/o/portal-dt-home-theme/images/icons/trothinh_wall-ico.png" style="vertical-align: middle;opacity: 1;width: 1px;height: 13px"/>
659 </a>
660 <a class="social-thing" onclick="printPage('contentText');" style="margin-right: 5px;"
661 data-toggle="tooltip" title="In bài viết">
662 <img src="/o/portal-dt-home-theme/images/icons/trothinh_print-btn.png" style="vertical-align: middle;opacity: 1;width: 16px;"/>
663 </a>
664 <a class="social-thing" href="https://mail.google.com/mail/?view=cm&fs=1&su=${title}&body=${currentUrl}" style="margin-right: 5px;"
665 data-toggle="tooltip" title="Gửi mail" target="_blank">
666 <img src="/o/portal-dt-home-theme/images/icons/trothinh_mail-btn.png" style="vertical-align: middle;opacity: 1;width: 16px;height:13px"/>
667 </a>
668 </div>
669 <input type="hidden" id="voiceSex" value="Vietnamese Female"></input>
670 <input type="hidden" id="tuongphan" value="3"></input>
671 </div>
672 </div>
673
674 <div style="margin:10px">
675 <h2 class="title-divvv" style="color: #ed0678;font-weight: bold;">${title}</h2>
676 </div>
677 <div id="contentText" style="margin:10px">
678 <b>${summary}</b>
679 ${noiDung.getData()}
680 </div>
681 <div class="article-info">
682 <div class="social-buttons">
683 <a href="#"><img src="https://dongthap.gov.vn/documents/34223/36207/quantam-btn.jpg/03716e20-b334-f2ab-e186-370511edfc77?t=1594708727042" style="width: 80px; height: 20px; margin-right: 2px"></a>
684 <div class="zalo-follow-only-button" data-oaid="3540423014405379625" style="width: 88px;"></div>
685 <div class="zalo-share-button" data-href="" data-oaid="4499765515963062717" data-layout="1" data-color="blue" data-customize=false></div>
686 <iframe src="${srcfb}" width="140" height="35" style="border:none;overflow:hidden" scrolling="no" frameborder="0" allowTransparency="true" allow="encrypted-media"></iframe>
687 </div>
688 <#if listLayoutDHD?seq_index_of(layo) > -1 >
689 <#if teste?has_content>
690 <div class="tinkhac">
691 <div class="bg-tinkhac"></div>
692 <ul class="list-unstyled">
693 <#list teste as curEntryyy>
694 <#assign
695 renderer = curEntryyy.getAssetRenderer()
696 className = renderer.getClassName() />
697 <#if className == "com.liferay.journal.model.JournalArticle">
698 <#assign
699 title = curEntryyy.getTitle(locale)
700 article = renderer.getArticle()
701 description = article.getDescription(locale)
702 curEntryyy = curEntryyy
703 viewURL = "/chi-tiet-chuyen-trang-dh-dang/-/asset_publisher/hPvLbtAWEWEb/content/id/${curEntryyy.getEntryId()}?plidlayout=${themeDisplay.getLayout().getPlid()}" />
704 <#if description?has_content && description?length > 300>
705 <#assign description = description?substring(0,300) + " ..."/>
706 </#if>
707
708 <#if curEntryyy.getAssetRenderer().getThumbnailPath(renderRequest)??>
709 <#assign smallImageUrl = curEntryyy.getAssetRenderer().getThumbnailPath(renderRequest) >
710 <#else>
711 <#assign smallImageUrl = "" >
712 </#if>
713 <li><a href="${viewURL}">${title}</a></li>
714
715 </#if>
716 </#list>
717 </ul>
718 </div>
719 </#if>
720 <#else>
721
722
723 </div>
724 </div>
725 <div class="col-4" style="padding-left:20px">
726
727
728 <div class="social-buttons right">
729 <div>
730 <p class="other-news">Xem thêm các tin khác </p>
731 </div>
732 <div class="row ml-0 mr-0 relatedentry" id="0">
733 <div id="paging_container5">
734 <ul class="content" style="padding-bottom: 15px;">
735 <#list teste as curEntryyy>
736 <#assign
737 renderer = curEntryyy.getAssetRenderer()
738 className = renderer.getClassName() />
739 <#if className == "com.liferay.journal.model.JournalArticle">
740 <#assign
741 title2 = curEntryyy.getTitle(locale)
742 article2 = renderer.getArticle()
743 publishdate2 = curEntryyy.getPublishDate()
744 viewcount2 = curEntryyy.getViewCount()
745 description2 = article2.getDescription(locale)
746 curEntryyy = curEntryyy
747 viewURL2 = themeDisplay.getPathFriendlyURLPublic() + themeDisplay.getSiteGroup().getFriendlyURL() + "/chi-tiet-bai-viet/-/asset_publisher/1mOzUrGkrdAE/content/id/${curEntryyy.getEntryId()}?plidlayout=${themeDisplay.getLayout().getPlid()}"/>
748
749 <#if curEntryyy.getAssetRenderer().getThumbnailPath(renderRequest)??>
750 <#assign smallImageUrl = curEntryyy.getAssetRenderer().getThumbnailPath(renderRequest) >
751 <#else>
752 <#assign smallImageUrl = "" >
753 </#if>
754
755 <li style="margin-top:10px">
756 <div class="col-md-12">
757 <div class="row ml-0 mr-0">
758 <div class="col-sm-3">
759 <a href="${viewURL2}"><img src="${smallImageUrl}" alt="img" class="img-fluid w-100 other-imgs"></a>
760 </div>
761 <div class="col-sm-9 pl-sm-2">
762 <a href="${viewURL2}"><p style="margin-bottom: 5px;" class="limit-tit">${title2}</p></a>
763 <span class="date-span">${publishdate2}</span>
764 </div>
765 </div>
766 </div>
767 </li>
768
769 </#if>
770 </#list>
771 </ul>
772 <div class="page_navigation"></div>
773 </div>
774
775 </div>
776 </div>
777 </#if>
778 <#if teste?has_content && teste?length > 0>
779 <div style="text-align: center">
780
781 </div>
782 </#if>
783 </div>
784
785 </div>