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.web.portlet;
35
36 import fr.paris.lutece.plugins.blog.business.Blog;
37 import fr.paris.lutece.plugins.blog.business.BlogHome;
38 import fr.paris.lutece.plugins.blog.business.portlet.BlogListPortletHome;
39 import fr.paris.lutece.plugins.blog.business.portlet.BlogPortlet;
40 import fr.paris.lutece.plugins.blog.business.portlet.BlogPortletHome;
41 import fr.paris.lutece.plugins.blog.business.portlet.BlogPublicationHome;
42 import fr.paris.lutece.plugins.blog.service.BlogService;
43 import fr.paris.lutece.portal.business.portlet.PortletHome;
44 import fr.paris.lutece.portal.web.portlet.PortletJspBean;
45 import fr.paris.lutece.util.html.HtmlTemplate;
46 import fr.paris.lutece.portal.service.util.AppPathService;
47 import fr.paris.lutece.portal.service.admin.AdminUserService;
48 import fr.paris.lutece.portal.business.user.AdminUser;
49
50 import javax.servlet.http.HttpServletRequest;
51
52 import org.apache.commons.lang3.StringUtils;
53
54 import java.util.Date;
55 import java.util.HashMap;
56 import java.util.List;
57
58
59
60
61 public class BlogPortletJspBean extends PortletJspBean
62 {
63
64 private static final long serialVersionUID = 5744334133144418317L;
65 public static final String MARK_HTML_CONTENT = "htmlcontent";
66 public static final String MARK_EDIT_COMMENT = "editcomment";
67 public static final String MARK_WEBAPP_URL = "webapp_url";
68 public static final String MARK_LIST_HTMLDOC = "blog_list";
69 public static final String MARK_LIST_PAGES = "pages_list";
70 public static final String MARK_BLOG_ID = "blog_id";
71
72 public static final String PARAMETER_CONTENT_ID = "content_id";
73 public static final String PARAMETER_HTML_CONTENT = "html_content";
74 public static final String PARAMETER_EDIT_COMMENT = "edit_comment";
75 public static final String PARAMETER_PORTLET_NAME = "portlet_name";
76 public static final String PARAMETER_HTMLDOC_SELECTED = "blog_selected";
77 private static final String PARAMETER_PAGE_TEMPLATE_CODE = "page_template_code";
78
79 public static final String TEMPLATE_MODIFY_PORTLET = "admin/portlet/modify_portlet.html";
80
81
82
83
84
85
86
87
88 @Override
89 public String getCreate( HttpServletRequest request )
90 {
91 String strPageId = request.getParameter( PARAMETER_PAGE_ID );
92 String strPortletTypeId = request.getParameter( PARAMETER_PORTLET_TYPE_ID );
93 List<Blog> listBlog = BlogHome.getBlogsList( );
94 HashMap<String, Object> model = new HashMap<>( );
95
96 model.put( MARK_WEBAPP_URL, AppPathService.getBaseUrl( request ) );
97 model.put( MARK_LIST_HTMLDOC, listBlog );
98 model.put( MARK_LIST_PAGES, BlogListPortletHome.loadPages( BlogPortlet.RESOURCE_ID ) );
99
100 HtmlTemplate template = getCreateTemplate( strPageId, strPortletTypeId, model );
101
102 return template.getHtml( );
103 }
104
105
106
107
108
109
110
111
112 @Override
113 public String getModify( HttpServletRequest request )
114 {
115 String strPortletId = request.getParameter( PARAMETER_PORTLET_ID );
116 int nPortletId = Integer.parseInt( strPortletId );
117 BlogPortlet../../../../../fr/paris/lutece/plugins/blog/business/portlet/BlogPortlet.html#BlogPortlet">BlogPortlet portlet = (BlogPortlet) PortletHome.findByPrimaryKey( nPortletId );
118 Blog blog = BlogHome.findByPrimaryKey( portlet.getContentId( ) );
119 HashMap<String, Object> model = new HashMap<>( );
120
121 model.put( MARK_HTML_CONTENT, blog.getHtmlContent( ) );
122 model.put( MARK_EDIT_COMMENT, blog.getEditComment( ) );
123 model.put( MARK_LIST_PAGES, BlogListPortletHome.loadPages( BlogPortlet.RESOURCE_ID ) );
124 model.put( MARK_WEBAPP_URL, AppPathService.getBaseUrl( request ) );
125 model.put( MARK_BLOG_ID, blog.getId( ) );
126
127 HtmlTemplate template = getModifyTemplate( portlet, model );
128
129 return template.getHtml( );
130 }
131
132
133
134
135
136
137
138
139 @Override
140 public String doCreate( HttpServletRequest request )
141 {
142 BlogPortletlog/business/portlet/BlogPortlet.html#BlogPortlet">BlogPortlet portlet = new BlogPortlet( );
143 AdminUser user = AdminUserService.getAdminUser( request );
144 String strSelectedBlog = request.getParameter( PARAMETER_HTMLDOC_SELECTED );
145 String strTemplateCode = request.getParameter( PARAMETER_PAGE_TEMPLATE_CODE );
146
147
148 String strPageId = request.getParameter( PARAMETER_PAGE_ID );
149 int nPageId = Integer.parseInt( strPageId );
150 Blog/plugins/blog/business/Blog.html#Blog">Blog blog = new Blog( );
151 if ( strSelectedBlog == null || StringUtils.isEmpty( strSelectedBlog ) || !StringUtils.isNumeric( strSelectedBlog ) )
152 {
153 blog.setContentLabel( request.getParameter( PARAMETER_PORTLET_NAME ) );
154 blog.setVersion( 1 );
155 blog.setCreationDate( getSqlDate( ) );
156 blog.setUpdateDate( getSqlDate( ) );
157 blog.setHtmlContent( request.getParameter( PARAMETER_HTML_CONTENT ) );
158
159 blog.setEditComment( request.getParameter( PARAMETER_EDIT_COMMENT ) );
160 blog.setUser( user.getAccessCode( ) );
161 blog.setUserCreator( user.getAccessCode( ) );
162 BlogHome.addInitialVersion( blog );
163 }
164 else
165 {
166 blog = BlogHome.findByPrimaryKey( Integer.parseInt( strSelectedBlog ) );
167 }
168 int nContentId = blog.getId( );
169
170
171 String strErrorUrl = setPortletCommonData( request, portlet );
172
173 if ( strErrorUrl != null )
174 {
175 return strErrorUrl;
176 }
177
178 portlet.setPageTemplateDocument( Integer.parseInt( strTemplateCode ) );
179 portlet.setPageId( nPageId );
180 portlet.setContentId( nContentId );
181 portlet.setPortletName( request.getParameter( PARAMETER_PORTLET_NAME ) );
182
183
184 BlogPortletHome.getInstance( ).create( portlet );
185 blog.setAttachedPortletId( portlet.getId( ) );
186 BlogHome.update( blog );
187 int nbPublication = BlogPublicationHome.countPublicationByIdBlogAndDate( blog.getId( ), new Date( ) );
188
189 if ( nbPublication == 1 )
190 {
191 BlogService.getInstance( ).fireCreateBlogEvent( blog.getId( ) );
192 }
193
194
195 return getPageUrl( nPageId );
196 }
197
198
199
200
201
202
203
204
205 @Override
206 public String doModify( HttpServletRequest request )
207 {
208
209 String strPortletId = request.getParameter( PARAMETER_PORTLET_ID );
210
211 String strDocumentTypeCode = request.getParameter( PARAMETER_PAGE_TEMPLATE_CODE );
212 int nPortletId = Integer.parseInt( strPortletId );
213 BlogPortlet../../../../../fr/paris/lutece/plugins/blog/business/portlet/BlogPortlet.html#BlogPortlet">BlogPortlet portlet = (BlogPortlet) PortletHome.findByPrimaryKey( nPortletId );
214 Blog blog = BlogHome.findByPrimaryKey( portlet.getContentId( ) );
215
216 String strErrorUrl = setPortletCommonData( request, portlet );
217
218 if ( strErrorUrl != null )
219 {
220 return strErrorUrl;
221 }
222 portlet.setPageTemplateDocument( Integer.parseInt( strDocumentTypeCode ) );
223
224 blog.setHtmlContent( request.getParameter( PARAMETER_HTML_CONTENT ) );
225 blog.setEditComment( request.getParameter( PARAMETER_EDIT_COMMENT ) );
226 blog.setUpdateDate( getSqlDate( ) );
227 blog.setVersion( blog.getVersion( ) + 1 );
228 BlogHome.addNewVersion( blog );
229
230 portlet.setBlogPublication( BlogPublicationHome.findDocPublicationByPimaryKey( nPortletId, portlet.getContentId( ) ) );
231
232 portlet.update( );
233
234
235 BlogService.getInstance( ).fireUpdateBlogEvent( blog.getId( ) );
236
237 return getPageUrl( portlet.getPageId( ) );
238 }
239
240
241
242
243
244
245 protected java.sql.Timestamp getSqlDate( )
246 {
247 java.util.Date utilDate = new java.util.Date( );
248 java.sql.Timestamp sqlDate = new java.sql.Timestamp( utilDate.getTime( ) );
249
250 return ( sqlDate );
251 }
252 }