View Javadoc

1   package net.sourceforge.blogentis.turbine;
2   
3   //-----------------------------------------------------------------------
4   //Blogentis - a blog publishing platform.
5   //Copyright (C) 2004 Tassos Bassoukos <abassouk@gmail.com>
6   //
7   //This library is free software; you can redistribute it and/or
8   //modify it under the terms of the GNU Lesser General Public
9   //License as published by the Free Software Foundation; either
10  //version 2.1 of the License, or (at your option) any later version.
11  //
12  //This library is distributed in the hope that it will be useful,
13  //but WITHOUT ANY WARRANTY; without even the implied warranty of
14  //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  //Lesser General Public License for more details.
16  //
17  //You should have received a copy of the GNU Lesser General Public
18  //License along with this library; if not, write to the Free Software
19  //Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20  //-----------------------------------------------------------------------
21  //
22  //$Id: BaseBlogScreen.java,v 1.1 2004/10/22 17:34:14 tassos Exp $
23  //
24  
25  import net.sourceforge.blogentis.om.Blog;
26  
27  import org.apache.turbine.modules.screens.VelocityScreen;
28  import org.apache.turbine.util.RunData;
29  import org.apache.velocity.context.Context;
30  
31  public abstract class BaseBlogScreen extends VelocityScreen {
32      private String fixTemplateName(Blog blog, String templateName) {
33          templateName = templateName.replaceFirst("^/+", "").replaceAll("//+",
34                  "/");
35          return templateName;
36      }
37  
38      protected void setTemplate(RunData data, Blog blog, String template) {
39          data.getParameters().setString("template",
40                  fixTemplateName(blog, template));
41      }
42  
43      protected String getLayoutTemplate(RunData data) {
44          return "Layout.vm";
45      }
46  
47      protected void doBuildTemplate(RunData data, Context context)
48              throws Exception {
49          if (!isAuthorized(data, context)) {
50              this.doRedirect(data, "Default.vm");
51              super.doBuildTemplate(data, context);
52              data
53                  .setMessage("You have insufficient access rights for this operation.");
54              return;
55          }
56          super.doBuildTemplate(data, context);
57          BlogParameterParser pp = (BlogParameterParser)data.getParameters();
58          Blog blog = pp.getBlog();
59          context.put("blog", blog);
60          context.put("section", pp.getSection());
61          context.put("post", pp.getPost());
62          context.put("date", pp.getDate());
63          if (blog != null) {
64              String templateName = data.getTemplateInfo().getScreenTemplate();
65              setTemplate(data, blog, templateName);
66              data.getTemplateInfo().setLayoutTemplate(
67                      "/" + fixTemplateName(blog, "/" + getLayoutTemplate(data)));
68          } else {
69              data.getTemplateInfo().setLayoutTemplate(
70                      "/" + getLayoutTemplate(data));
71          }
72      }
73  
74      protected boolean isAuthorized(RunData data, Context context) {
75          return true;
76      }
77  }