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;
35
36 import fr.paris.lutece.plugins.blog.business.Blog;
37 import fr.paris.lutece.plugins.blog.business.TagHome;
38 import fr.paris.lutece.plugins.blog.business.portlet.BlogPublication;
39 import fr.paris.lutece.plugins.blog.business.portlet.BlogPublicationHome;
40 import fr.paris.lutece.plugins.blog.service.BlogService;
41 import fr.paris.lutece.portal.util.mvc.commons.annotations.View;
42 import fr.paris.lutece.portal.util.mvc.xpage.MVCApplication;
43 import fr.paris.lutece.portal.util.mvc.xpage.annotations.Controller;
44 import fr.paris.lutece.portal.web.xpages.XPage;
45
46 import java.util.ArrayList;
47 import java.util.List;
48 import java.util.Map;
49
50 import javax.servlet.http.HttpServletRequest;
51
52
53
54
55
56 @Controller( xpageName = BlogApp.XPAGE_NAME, pageTitleI18nKey = BlogApp.MESSAGE_PAGE_TITLE, pagePathI18nKey = BlogApp.MESSAGE_PATH )
57 public class BlogApp extends MVCApplication
58 {
59
60
61
62
63 private static final long serialVersionUID = 1L;
64
65 protected static final String XPAGE_NAME = "blog";
66
67
68 protected static final String MESSAGE_PAGE_TITLE = "blog.xpage.blog.view.pageTitle";
69 protected static final String MESSAGE_PATH = "blog.xpage.blog.view.pagePathLabel";
70
71
72 private static final String TEMPLATE_VIEW_BLOG = "skin/plugins/blog/view_blog.html";
73
74
75 protected static final String PARAMETER_ID_BLOG = "id";
76 protected static final String PARAMETER_VERSION_BLOG = "version";
77 protected static final String PARAMETER_ID_PORTLET = "portlet_id";
78
79 protected static final String PARAMETER_VIEW = "view";
80
81
82
83
84 protected static final String MARK_BLOG = "blog";
85 protected static final String MARK_LIST_DOC = "blog_list";
86
87
88 private static final String VIEW_DETAILS = "documentDetails";
89 protected static final String MARK_LIST_TAG = "list_tag";
90
91
92
93
94
95
96
97
98 @View( value = VIEW_DETAILS, defaultView = true )
99 public XPage getBlogDetails( HttpServletRequest request )
100 {
101 int nVersion = -1;
102 List<BlogPublication> listBlogPub = new ArrayList<>( );
103
104 int nId = Integer.parseInt( request.getParameter( PARAMETER_ID_BLOG ) );
105
106 String strVersion = request.getParameter( PARAMETER_VERSION_BLOG );
107 if ( strVersion != null )
108 {
109 nVersion = Integer.parseInt( strVersion );
110 }
111
112
113 String idPortlet = request.getParameter( PARAMETER_ID_PORTLET );
114 if ( idPortlet != null && !idPortlet.isEmpty( ) )
115 {
116
117 listBlogPub = BlogPublicationHome.getDocPublicationByPortlet( Integer.parseInt( idPortlet ) );
118 }
119 List<Blog> listBlogs = new ArrayList<>( );
120
121 for ( Blog doc : BlogService.getInstance( ).getListBlogWithoutBinaries( ) )
122 {
123 for ( BlogPublication pub : listBlogPub )
124 {
125 if ( doc.getId( ) == pub.getIdBlog( ) )
126 {
127 doc.setAttachedPortletId( Integer.parseInt( idPortlet ) );
128 listBlogs.add( doc );
129
130 }
131 }
132
133 }
134
135 Blog blog;
136 if( nVersion > -1 )
137 {
138 blog = BlogService.getInstance( ).loadBlogByVersion( nId, nVersion );
139 }
140 else
141 {
142 blog = BlogService.getInstance( ).loadBlog( nId );
143 }
144 Map<String, Object> model = getModel( );
145 model.put( MARK_BLOG, blog );
146 model.put( MARK_LIST_DOC, listBlogs );
147 model.put( MARK_LIST_TAG, TagHome.getTagsReferenceList( ) );
148
149 return getXPage( TEMPLATE_VIEW_BLOG, getLocale( request ), model );
150 }
151
152 }