Xuất bản thông tin

null 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) &gt; -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) &gt; -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 &gt; 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 &gt; 0> 
779			<div style="text-align: center"> 
780				 
781			</div> 
782			</#if> 
783		</div> 
784   
785  </div> 

Follow

Tin xem nhiều

Danh mục chính Menu

Danh mục chính Menu

Banner Bản tin chỉ đạo điều hành

Banner Video

Banner Megastory

Banner Tin đồ họa

Tin nổi bật