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