KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > portlets > templates > action > PublishTemplatesAction


1 package com.dotmarketing.portlets.templates.action;
2
3 import java.net.URLDecoder JavaDoc;
4 import java.util.HashSet JavaDoc;
5 import java.util.Iterator JavaDoc;
6 import java.util.List JavaDoc;
7 import java.util.Set JavaDoc;
8
9 import javax.portlet.ActionRequest;
10 import javax.portlet.ActionResponse;
11 import javax.portlet.PortletConfig;
12
13 import org.apache.struts.action.ActionForm;
14 import org.apache.struts.action.ActionMapping;
15
16 import com.dotmarketing.factories.InodeFactory;
17 import com.dotmarketing.factories.PublishFactory;
18 import com.dotmarketing.portal.struts.DotPortletAction;
19 import com.dotmarketing.portlets.htmlpages.model.HTMLPage;
20 import com.dotmarketing.portlets.templates.model.Template;
21 import com.dotmarketing.services.PageServices;
22 import com.dotmarketing.util.Config;
23 import com.dotmarketing.util.Logger;
24 import com.liferay.portal.model.User;
25 import com.liferay.portlet.ActionRequestImpl;
26 import com.liferay.util.servlet.SessionMessages;
27
28 /**
29  * <a HREF="ViewQuestionsAction.java.htm"><b><i>View Source</i></b></a>
30  *
31  * @author Maria Ahues
32  * @version $Revision: 1.3 $
33  *
34  */

35 public class PublishTemplatesAction extends DotPortletAction {
36
37     public void processAction(
38              ActionMapping mapping, ActionForm form, PortletConfig config,
39              ActionRequest req, ActionResponse res)
40          throws Exception JavaDoc {
41
42         Logger.debug(this, "Running PublishTemplatesAction!!!!");
43
44         String JavaDoc referer = req.getParameter("referer");
45         if ((referer!=null) && (referer.length()!=0)) {
46             referer = URLDecoder.decode(referer,"UTF-8");
47         }
48         
49         try {
50             //get the user
51
User user = com.liferay.portal.util.PortalUtil.getUser(req);
52
53             _publishTemplates(req, user);
54             
55             if ((referer!=null) && (referer.length()!=0)) {
56                 _sendToReferral(req, res, referer);
57             }
58             
59             setForward(req, "portlet.ext.templates.publish_templates");
60
61         }
62         catch (Exception JavaDoc e) {
63             _handleException(e, req);
64         }
65     }
66
67     @SuppressWarnings JavaDoc("unchecked")
68     private void _publishTemplates(ActionRequest req, User user) throws Exception JavaDoc {
69         
70         String JavaDoc[] publishInode = req.getParameterValues("publishInode");
71
72         if (publishInode == null) return;
73         
74         ActionRequestImpl reqImpl = (ActionRequestImpl)req;
75
76         //creates a set of related pages for this template
77
Set JavaDoc relatedPages = new HashSet JavaDoc();
78
79         for (int i=0;i<publishInode.length;i++) {
80
81             Template template = (Template) InodeFactory.getInode(publishInode[i],Template.class);
82             
83             if (template.getInode()>0) {
84                 
85                 //calls the asset factory edit
86
PublishFactory.publishAsset(template,reqImpl.getHttpServletRequest());
87                 //gets all live pages children for this template
88
String JavaDoc condition = "live=" + com.dotmarketing.db.DbConnectionFactory.getDBTrue() + " and deleted=" + com.dotmarketing.db.DbConnectionFactory.getDBFalse();
89                 List JavaDoc pagesForThisTemplate = InodeFactory.getChildrenClassByCondition(template, HTMLPage.class, condition);
90                 relatedPages.addAll(pagesForThisTemplate);
91             }
92         }
93         
94         Iterator JavaDoc iterPages = relatedPages.iterator();
95         //iterates through the children pages
96
while (iterPages.hasNext()) {
97             //writes the page to a file
98
PageServices.publishPageToFile((HTMLPage) iterPages.next());
99         }
100         
101         SessionMessages.add(req, "message", "message.template_list.published");
102         
103     }
104
105 }
Popular Tags