1 18 19 package org.apache.roller.ui.rendering.velocity.deprecated; 20 21 import java.net.MalformedURLException ; 22 import java.util.Date ; 23 import java.util.Hashtable ; 24 import java.util.Iterator ; 25 import java.util.List ; 26 import java.util.Locale ; 27 import java.util.Map ; 28 import java.util.Vector ; 29 import javax.servlet.http.HttpServletRequest ; 30 import javax.servlet.http.HttpServletResponse ; 31 import javax.servlet.jsp.PageContext ; 32 import org.apache.commons.logging.Log; 33 import org.apache.commons.logging.LogFactory; 34 import org.apache.struts.Globals; 35 import org.apache.struts.util.RequestUtils; 36 import org.apache.roller.RollerException; 37 import org.apache.roller.model.WeblogEntryPlugin; 38 import org.apache.roller.model.PluginManager; 39 import org.apache.roller.model.Roller; 40 import org.apache.roller.model.RollerFactory; 41 import org.apache.roller.pojos.FolderData; 42 import org.apache.roller.pojos.WebsiteData; 43 import org.apache.roller.pojos.wrapper.RefererDataWrapper; 44 import org.apache.roller.pojos.wrapper.WeblogEntryDataWrapper; 45 import org.apache.roller.ui.core.RequestConstants; 46 import org.apache.roller.ui.core.RollerContext; 47 import org.apache.roller.ui.core.RollerSession; 48 import org.apache.roller.ui.core.tags.calendar.CalendarModel; 49 import org.apache.roller.ui.core.tags.calendar.CalendarTag; 50 import org.apache.roller.ui.core.tags.menu.EditorNavigationBarTag; 51 import org.apache.roller.ui.core.tags.menu.MenuTag; 52 import org.apache.roller.ui.core.tags.calendar.BigWeblogCalendarModel; 53 import org.apache.roller.ui.core.tags.calendar.WeblogCalendarModel; 54 import org.apache.roller.ui.rendering.util.WeblogPageRequest; 55 56 59 public class OldPageHelper { 60 61 private static Log mLogger = LogFactory.getLog(OldPageHelper.class); 62 63 private PageContext mPageContext = null; 64 private HttpServletRequest mRequest = null; 65 private HttpServletResponse mResponse = null; 66 67 private Map mPagePlugins = null; private WebsiteData mWebsite = null; 69 private Date mDate = null; 70 private FolderData mFolder = null; 71 private String mPageName = null; 72 private WeblogPageRequest mPageRequest = null; 73 74 78 public OldPageHelper(HttpServletRequest request, 79 HttpServletResponse response, 80 Map ctx, 81 WebsiteData website, 82 Date date, 83 FolderData folder, 84 String pageName, 85 PageContext pageContext, 86 WeblogPageRequest pageRequest) throws RollerException { 87 88 mRequest = request; 90 mResponse = response; 91 mPageContext = pageContext; 92 mPageRequest = pageRequest; 93 94 mWebsite = website; 96 mDate = date; 97 mFolder = folder; 98 99 Roller roller = RollerFactory.getRoller(); 101 PluginManager ppmgr = roller.getPagePluginManager(); 102 mPagePlugins = ppmgr.getWeblogEntryPlugins(mWebsite); 103 } 104 105 106 110 public Hashtable addParam(String key, String value, Hashtable map) { 111 if (map == null) map = new Hashtable (); 112 if (key != null && value != null) 113 map.put(key, value); 114 return map; 115 } 116 117 118 126 public String evaluateString(String str) { 127 return str; 129 } 130 131 132 133 public String getEntryEditUrl(WeblogEntryDataWrapper entry) { 134 Hashtable params = new Hashtable (); 135 params.put( RequestConstants.WEBLOGENTRY_ID, entry.getId()); 136 params.put( RequestConstants.ANCHOR, entry.getAnchor()); 137 if (mWebsite != null) { 138 params.put( RequestConstants.USERNAME, mWebsite.getHandle()); 139 } 140 try { 141 return RequestUtils.computeURL( mPageContext, 142 "weblogEdit", null, null, null, params, null, false); 143 } catch (MalformedURLException mue) { 144 mLogger.warn("RollerRequest.editEntryUrl exception: ", mue); 145 } 146 return mRequest.getContextPath() + "edtior/weblog.do?method=edit"; 147 } 148 149 150 public String getToggleLinkbackDisplayHTML(RefererDataWrapper referer) { 151 String ret = ""; 152 String link = null; 153 try { 154 RollerSession rollerSession = 155 RollerSession.getRollerSession(mRequest); 156 if (mWebsite != null 157 && rollerSession.isUserAuthorizedToAdmin(mWebsite)) { 158 Hashtable params = new Hashtable (); 159 params.put( RequestConstants.REFERRER_ID, referer.getId()); 160 params.put( RequestConstants.WEBLOG, mWebsite.getHandle()); 161 link = RequestUtils.computeURL( mPageContext, 162 "toggleLinkback", null, null, null, params,null,false); 163 164 StringBuffer sb = new StringBuffer (); 165 sb.append("[<a HREF=\""); 166 sb.append(link); 167 if ( referer.getVisible().booleanValue() ) { 168 sb.append("\">Visible</a>] "); 169 } else { 170 sb.append("\">Hidden</a>] "); 171 } 172 ret = sb.toString(); 173 } 174 } catch (Exception e) { 175 mLogger.error("ERROR creating toggle-linkback URL",e); 177 } 178 179 return ret; 180 } 181 182 183 public boolean isUserAuthorizedToEdit() { 184 try { 185 RollerSession rses = 186 RollerSession.getRollerSession(mRequest); 187 if ( rses.getAuthenticatedUser() != null 188 && mWebsite != null) { 189 return rses.isUserAuthorizedToAdmin(mWebsite); 190 } 191 } catch (Exception e) { 192 mLogger.warn("PageHelper.isUserAuthorizedToEdit)", e); 193 } 194 return false; 195 } 196 197 198 public void setContentType( String type ) { 199 mResponse.setContentType(type); 200 } 201 202 203 207 public String showBigWeblogCalendar() { 208 return showWeblogCalendar(true, null); 209 } 210 211 212 217 public String showEditorNavBar(boolean vertical) { 218 EditorNavigationBarTag editorTag = new EditorNavigationBarTag(); 219 editorTag.setPageContext(mPageContext); 220 if ( vertical ) { 221 editorTag.setView("templates/navbar/navbar-vertical.vm"); 222 } else { 223 editorTag.setView("templates/navbar/navbar-horizontal.vm"); 224 } 225 editorTag.setModel("editor-menu.xml"); 226 return editorTag.emit(); 227 } 228 229 230 236 public String showMenu(String model, String template) { 237 MenuTag menuTag = new MenuTag(); 238 menuTag.setPageContext(mPageContext); 239 menuTag.setModel(model); 240 menuTag.setView(template); 241 return menuTag.emit(); 242 } 243 244 246 250 public String showWeblogCalendar() { 251 return showWeblogCalendar(false, null); 252 } 253 254 255 260 public String showWeblogCalendar( boolean big, String cat ) { 261 if (OldWeblogPageModel.VELOCITY_NULL.equals(cat)) cat = null; 262 String ret = null; 263 try { 264 CalendarModel model = null; 266 if ( big ) { 267 model = new BigWeblogCalendarModel(mPageRequest, cat); 268 } else { 269 model = new WeblogCalendarModel(mPageRequest, cat); 270 } 271 272 mPageContext.setAttribute("calendarModel", model); 274 275 CalendarTag calTag = new CalendarTag(); 277 calTag.setPageContext(mPageContext); 278 calTag.setName("calendar"); 279 calTag.setModel("calendarModel"); 280 calTag.setLocale(mPageRequest.getLocaleInstance()); 281 if ( big ) { 282 calTag.setClassSuffix("Big"); 283 } 284 ret = calTag.emit(); 285 } catch (Exception e) { 286 mLogger.error("Unexpected exception",e); 287 } 288 return ret; 289 } 290 291 292 301 public String strutsUrlHelper( boolean useIds, boolean isAction, 302 String path, String val1, String val2) { 303 Hashtable params = new Hashtable (); 304 return strutsUrlHelper1( useIds, isAction, path, val1, val2, params); 305 } 306 307 308 318 public String strutsUrlHelper1( boolean useIds, boolean isAction, 319 String path, String val1, String val2, Hashtable params) { 320 if (useIds) { 321 if (mFolder != null) { 322 params.put(RequestConstants.FOLDER_ID, 323 mFolder.getId()); 324 } 325 if (mWebsite != null) { 326 params.put(RequestConstants.WEBLOG, mWebsite.getHandle()); 327 } 328 } 329 330 if (OldStringUtils.isNotEmpty(val1) && !val1.equals("null")) { 331 params.clear(); 332 params.put("weblog", val1); 333 } 334 335 String returnUrl = ""; 336 try { 337 if (isAction) { 338 returnUrl = RequestUtils.computeURL( mPageContext, 339 path, null, null, null, params, null, false); 340 } else { 341 returnUrl = RequestUtils.computeURL( mPageContext, 342 null, path, null, null, params, null, false); 343 } 344 } catch (MalformedURLException mue) { 345 mLogger.warn("RollerRequest.strutsUrlHelper exception: ", mue); 346 returnUrl = "<span class=\"error\">ERROR generating link</span>"; 347 } 348 return returnUrl; 349 } 350 351 352 360 public String renderPlugins(WeblogEntryDataWrapper entry, String str) { 361 String ret = str; 362 mLogger.debug("Applying page plugins to string"); 363 364 if (mPagePlugins != null) { 365 List entryPlugins = entry.getPluginsList(); 366 if (entryPlugins != null && !entryPlugins.isEmpty()) { 368 369 Iterator iter = mPagePlugins.keySet().iterator(); 373 while (iter.hasNext()) { 374 String key = (String )iter.next(); 375 if (entryPlugins.contains(key)) { 376 WeblogEntryPlugin pagePlugin = (WeblogEntryPlugin)mPagePlugins.get(key); 377 try { 378 ret = pagePlugin.render(entry.getPojo(), ret); 379 } catch (Throwable t) { 380 mLogger.error("ERROR from plugin: " + pagePlugin.getName(), t); 381 } 382 } 383 } 384 } 385 } 386 387 return ret; 388 } 389 390 391 399 public Locale [] getSupportedLanguages() { 400 return null; 401 } 402 403 404 407 public String getPathInfo() { 408 String pathInfo = mRequest.getPathInfo(); 409 if(pathInfo == null) { 410 pathInfo = ""; 411 } 412 413 return pathInfo; 414 } 415 416 417 public String getCommentAuthenticatorHtml() { 418 return ""; 420 } 421 422 } 423 | Popular Tags |