
---, --/--/--, --:--:--
Chào mừng bạn đến với Trang thông tin điện tử Viện kiểm sát nhân dân tỉnh Đồng Tháp
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: "Jun 10, 2025, 8:28:23 AM". The expected format was: "MMM d, yyyy hh:mm:ss a".
The nested reason given follows:
Unparseable date: "Jun 10, 2025, 8:28:23 AM"
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign publicDate = publicDateStr?da... [in template "20097#20123#3554198" at line 96, column 41]
----
1<#assign portletDisplayId = themeDisplay.getPortletDisplay().getId() />
2<#assign namespace = themeDisplay.getPortletDisplay().getNamespace() />
3<#assign baseUrl = "${themeDisplay.getPathFriendlyURLPublic()}${themeDisplay.getSiteGroup().getFriendlyURL()}" />
4<#assign fullUrl = themeDisplay.getURLCurrent()>
5<#assign currentURLPage = fullUrl?split("?")[0]>
6<style>
7 .${portletDisplayId} {
8 border: 1px solid #398ee6;
9 }
10
11 .${portletDisplayId} .category-title {
12 background: linear-gradient(to right, #53a0e8 0%, #207ce5 100%);
13 color: white;
14 padding: 10px;
15 font-weight: bold;
16 }
17
18 .${portletDisplayId} .category-content {
19 padding: 10px;
20 }
21
22 .${portletDisplayId} .article-list .article-item {
23 margin-bottom: 10px;
24 border-bottom: 1px dotted #b3b3b3;
25 padding-bottom: 5px;
26 }
27
28 .${portletDisplayId} .article-list .article-item a.article-img {
29 display: block;
30 }
31
32 .${portletDisplayId} .article-list .article-item a.article-img img {
33 height: 250px;
34 }
35
36 .${portletDisplayId} .article-list .article-item a.article-name {
37 text-decoration: none;
38 color: black;
39 font-size: 1rem;
40 font-weight: bold;
41 display: block;
42 margin-top: 5px;
43 text-align: justify;
44 }
45
46 /* ----------- PAGINATION -----------------*/
47 .${portletDisplayId} .pagination-nav {
48 display: flex;
49 flex-direction: column;
50 align-items: flex-end;
51 gap: 10px;
52 }
53
54 .${portletDisplayId} .pagination-nav a.page-link.activePage {
55 color: #ffffff !important;
56 text-decoration: none;
57 font-weight: bold;
58 background-color: #17c4ee;
59 }
60
61 @media(min-width: 768px){
62 .${portletDisplayId} .article-list .article-item {
63 display: flex;
64 }
65
66 .${portletDisplayId} .article-list .article-item a.article-img {
67 margin-right: 10px;
68 width: 100px;
69 height: 70px;
70 }
71
72 .${portletDisplayId} .article-list .article-item a.article-img img {
73 height: 100%;
74 width: 100%;
75 }
76
77 .${portletDisplayId} .article-list .article-item a.article-name {
78 display: block;
79 width: 100%;
80 font-size: 1rem;
81 }
82 }
83</style>
84
85<div class="${portletDisplayId}">
86 <div class="category-title">
87 <#if category?has_content>
88 ${category}
89 </#if>
90 </div>
91 <div class="category-content">
92 <#if entries?has_content>
93 <div class="article-list">
94 <#list entries as articleItem>
95 <#assign publicDateStr = "${articleItem.getPublicationDate()}" />
96 <#assign publicDate = publicDateStr?datetime("MMM d, yyyy hh:mm:ss a") />
97 <div class="article-item">
98 <a class="article-img" href="${baseUrl}/tin-tuc/chi-tiet?id=${articleItem.getId()}">
99 <img
100 src="${articleItem.getAvarta()}"
101 alt="ảnh ${articleItem_index + 1}"
102 onerror="this.onerror=null;this.src='/documents/1598162/0/placeholder.jpg/092b2c13-2c5a-ee9b-448d-b250661a076c?t=1752118622271';"
103 />
104 </a>
105 <a class="article-name" href="${baseUrl}/tin-tuc/chi-tiet?id=${articleItem.getId()}">
106 ${articleItem.getName()} <span style="font-size: 14px;" class="text-primary font-italic">- ${publicDate?string("dd/MM/yyyy")} (số lượt xem: ${articleItem.getViews()})</span>
107 </a>
108 </div>
109 </#list>
110 </div>
111
112 <!-- PAGINATION -->
113 <#if (limit > 0) && (totalItems > 0)>
114 <#assign maxPage = 5 />
115 <#assign totalPage = (totalItems / limit)?ceiling />
116 <#assign currentPage = currentPage?number!1 />
117
118 <nav class="pagination-nav">
119 <ul class="pagination justify-content-end">
120 <!-- Trang đầu -->
121 <#if (currentPage > 1)>
122 <li class="page-item">
123 <a disabled class="page-link page-link-previous" href="${currentURLPage}?${namespace}p=1" aria-label="Trang đầu" title="Đi đến trang đầu tiên">
124 <span aria-hidden="true">«</span>
125 </a>
126 </li>
127 </#if>
128
129 <!-- Xử lý phân trang -->
130 <#assign startPage = 1, endPage = totalPage />
131 <#if (totalPage > maxPage)>
132 <#assign startPage = currentPage - 2, endPage = currentPage + 2 />
133 <#if (startPage < 1)>
134 <#assign startPage = 1, endPage = maxPage />
135 </#if>
136 <#if (endPage > totalPage)>
137 <#assign endPage = totalPage, startPage = totalPage - maxPage + 1 />
138 </#if>
139 </#if>
140
141 <!-- Danh sách trang -->
142 <#list startPage..endPage as i>
143 <li class="page-item">
144 <a class="page-link <#if i = currentPage>activePage</#if>" href="${currentURLPage}?${namespace}p=${i}">
145 ${i}
146 </a>
147 </li>
148 </#list>
149
150 <!-- Trang cuối -->
151 <#if (currentPage < totalPage)>
152 <li class="page-item">
153 <a class="page-link page-link-next" href="${currentURLPage}?${namespace}p=${totalPage}" aria-label="Trang cuối" title="Đi đến trang cuối cùng">
154 <span aria-hidden="true">»</span>
155 </a>
156 </li>
157 </#if>
158 </ul>
159
160 <!-- Thông tin hiển thị -->
161 <#assign startItem = ((currentPage - 1) * limit) + 1 />
162 <#assign endItem = (currentPage * limit) />
163 <#if (endItem > totalItems)>
164 <#assign endItem = totalItems />
165 </#if>
166 <div>
167 Hiển thị từ ${startItem} - ${endItem} trong ${totalItems} kết quả.
168 </div>
169 </nav>
170 </#if>
171 </#if>
172 </div>
173</div>
Văn bản chỉ đạo - điều hành
Liên kết


