1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package fr.paris.lutece.plugins.blog.business.portlet;
35
36 import java.sql.Date;
37 import java.util.ArrayList;
38 import java.util.GregorianCalendar;
39 import java.util.HashMap;
40 import java.util.HashSet;
41 import java.util.List;
42 import java.util.Locale;
43 import java.util.Set;
44
45 import fr.paris.lutece.plugins.blog.business.BlogPageTemplate;
46 import fr.paris.lutece.plugins.blog.business.BlogPageTemplateHome;
47 import fr.paris.lutece.plugins.blog.business.Blog;
48 import fr.paris.lutece.plugins.blog.business.BlogFilter;
49 import fr.paris.lutece.plugins.blog.business.BlogHome;
50 import fr.paris.lutece.plugins.blog.service.PublishingService;
51 import fr.paris.lutece.plugins.blog.utils.BlogUtils;
52 import fr.paris.lutece.portal.business.portlet.PortletHtmlContent;
53 import fr.paris.lutece.portal.service.template.AppTemplateService;
54 import fr.paris.lutece.util.html.HtmlTemplate;
55
56 import javax.servlet.http.HttpServletRequest;
57
58
59
60
61 public class BlogListPortlet extends PortletHtmlContent
62 {
63 public static final String RESOURCE_ID = "BLOG_LIST_PORTLET";
64
65
66 public static final String MARK_LIST_BLOG_PUBLISHED = "blog_list_published";
67 public static final String MARK_PAGE_TEMPLATE = "page_template";
68 public static final String MARK_PORTLET_ID = "portlet_id";
69 public static final String MARK_PORTLET_NAME = "portlet_name";
70
71
72
73 private int _nPageTemplateDocument;
74 private int _nPortletId;
75 private List<BlogPublication> _arrayBlogs = new ArrayList<>( );
76 private Set<Integer> _removedBlogsId = new HashSet<>( );
77
78
79
80
81 public BlogListPortlet( )
82 {
83 setPortletTypeId( BlogListPortletHome.getInstance( ).getPortletTypeId( ) );
84 }
85
86 @Override
87 public String getHtmlContent( HttpServletRequest request )
88 {
89 GregorianCalendar calendar = new java.util.GregorianCalendar( );
90 Date date = new Date( calendar.getTimeInMillis( ) );
91 BlogFiltersiness/BlogFilter.html#BlogFilter">BlogFilter documentFilter = new BlogFilter( );
92 List<Integer> listIdDoc = PublishingService.getPublishedBlogsIdsListByPortletIds( new int [ ] {
93 this.getId( )
94 }, date, date, BlogUtils.getPlugin( ) );
95 Integer [ ] docId = listIdDoc.toArray( new Integer [ listIdDoc.size( )] );
96
97 if ( docId == null || docId.length == 0 )
98 {
99
100 docId = new Integer [ 1];
101 docId [0] = 0;
102 }
103 documentFilter.setIds( docId );
104 documentFilter.setLoadBinaries( true );
105 documentFilter.setOrderInPortlet( true );
106 documentFilter.setPortletId( this.getId( ) );
107
108 List<Blog> listBlogsPublished = BlogHome.findByFilter( documentFilter );
109 BlogPageTemplate pageTemplate = BlogPageTemplateHome.findByPrimaryKey( this.getPageTemplateDocument( ) );
110
111 HashMap<String, Object> model = new HashMap<>( );
112 model.put( MARK_LIST_BLOG_PUBLISHED, listBlogsPublished );
113 model.put( MARK_PAGE_TEMPLATE, pageTemplate );
114 model.put( MARK_PORTLET_ID, this.getId( ) );
115 if ( this.getDisplayPortletTitle( ) == 0 )
116 {
117
118 model.put( MARK_PORTLET_NAME, this.getName( ) );
119
120 }
121 Locale locale = null;
122 if ( request != null )
123 {
124 locale = request.getLocale( );
125 }
126
127 HtmlTemplate template = AppTemplateService.getTemplate( pageTemplate.getFile( ), locale, model );
128
129 return template.getHtml( );
130 }
131
132
133
134
135 public void update( )
136 {
137 BlogListPortletHome.getInstance( ).update( this );
138 }
139
140
141
142
143 @Override
144 public void remove( )
145 {
146 BlogListPortletHome.getInstance( ).remove( this );
147 }
148
149
150
151
152
153
154 public int getPortletId( )
155 {
156 return _nPortletId;
157 }
158
159
160
161
162
163
164
165 public void setPortletId( int nPortletId )
166 {
167 _nPortletId = nPortletId;
168 }
169
170
171
172
173
174
175
176 public void setPageTemplateDocument( int nPageTemplateDocument )
177 {
178 _nPageTemplateDocument = nPageTemplateDocument;
179 }
180
181
182
183
184
185
186 public int getPageTemplateDocument( )
187 {
188 return _nPageTemplateDocument;
189 }
190
191
192
193
194 public List<BlogPublication> getArrayBlogs( )
195 {
196 return _arrayBlogs;
197 }
198
199
200
201
202
203 public void setArrayBlogs( List<BlogPublication> arrayBlogs )
204 {
205 _arrayBlogs = arrayBlogs;
206 }
207
208
209
210
211
212
213
214 public void addIdBlogs( BlogPublication doc )
215 {
216
217 boolean bool = false;
218 for ( BlogPublication dc : _arrayBlogs )
219 {
220
221 if ( doc.getIdBlog( ) == dc.getIdBlog( ) )
222 {
223 bool = true;
224 break;
225 }
226
227 }
228 if ( !bool )
229 {
230 _arrayBlogs.add( doc );
231 }
232 _removedBlogsId.remove( doc.getIdBlog( ) );
233 }
234
235
236
237
238
239
240
241
242
243 public void addIdBlogs( int order, BlogPublication doc )
244 {
245
246 boolean bool = false;
247 BlogPublication blog = null;
248 for ( BlogPublication dc : _arrayBlogs )
249 {
250
251 if ( doc.getIdBlog( ) == dc.getIdBlog( ) )
252 {
253 bool = true;
254 blog = dc;
255 break;
256 }
257
258 }
259 if ( bool )
260 {
261
262 _arrayBlogs.remove( blog );
263
264 }
265 _arrayBlogs.add( order, doc );
266 _removedBlogsId.remove( doc.getIdBlog( ) );
267 }
268
269
270
271
272
273
274
275 public void removeBlogs( BlogPublication doc )
276 {
277
278 for ( BlogPublication dc : _arrayBlogs )
279 {
280
281 if ( doc.getIdBlog( ) == dc.getIdBlog( ) )
282 {
283 _arrayBlogs.remove( dc );
284 break;
285 }
286
287 }
288 _removedBlogsId.add( doc.getIdBlog( ) );
289 }
290
291 public Set<Integer> getRemovedBlogsId( )
292 {
293 return new HashSet<>( _removedBlogsId );
294 }
295 }