You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by sn...@apache.org on 2006/07/18 19:11:57 UTC
svn commit: r423138 - in /incubator/roller/branches/roller_3.0:
src/org/apache/roller/pojos/ src/org/apache/roller/ui/rendering/model/
src/org/apache/roller/ui/rendering/velocity/ web/WEB-INF/jsps/tiles/
web/WEB-INF/velocity/ web/WEB-INF/velocity/templ...
Author: snoopdave
Date: Tue Jul 18 10:11:56 2006
New Revision: 423138
URL: http://svn.apache.org/viewvc?rev=423138&view=rev
Log:
- These Roller 3.0 macros are now complete:
#showWeblogEntryComments($entry)
#showWeblogEntryCommentForm($entry)
#showWeblogEntryLinksList($weblog $category $max)
#showBookmarkLinksList($weblog $folder $expanding $subfolders)
#showWeblogCategoryLinksList($weblog $category $expanding $subcats)
#showPageLinksList($weblog)
#showTrackbackAutodiscoveryRDF($entry)
#showAutodiscoveryLinks($weblog)
#showWeblogEntryCalendar($weblog $category)
#showAuthorMenu($vertical)
#includeTemplate($weblog $pageName)
These still need some work and debugging:
#showWeblogEntriesPager($pager)
#showNextPrevControl($pager)
And these remain to be done:
#showSearchForm()
#showSearchAgainForm()
#showSearchSummary()
#showSearchPager()
- Added error handling to VelocityRender and factory so that template authors
can clearly see the parsing error that prevented their page from running.
Modified:
incubator/roller/branches/roller_3.0/src/org/apache/roller/pojos/WeblogCategoryData.java
incubator/roller/branches/roller_3.0/src/org/apache/roller/pojos/WebsiteData.java
incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/CalendarModel.java
incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/ConfigModel.java
incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/MenuModel.java
incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/UtilitiesModel.java
incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/WeblogEntriesPagerImpl.java
incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/velocity/VelocityRenderer.java
incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/velocity/VelocityRendererFactory.java
incubator/roller/branches/roller_3.0/web/WEB-INF/jsps/tiles/bannerStatus.jsp
incubator/roller/branches/roller_3.0/web/WEB-INF/velocity/templates/error-page.vm
incubator/roller/branches/roller_3.0/web/WEB-INF/velocity/weblog.vm
incubator/roller/branches/roller_3.0/web/themes/andreas08/Weblog.vm
Modified: incubator/roller/branches/roller_3.0/src/org/apache/roller/pojos/WeblogCategoryData.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/src/org/apache/roller/pojos/WeblogCategoryData.java?rev=423138&r1=423137&r2=423138&view=diff
==============================================================================
--- incubator/roller/branches/roller_3.0/src/org/apache/roller/pojos/WeblogCategoryData.java (original)
+++ incubator/roller/branches/roller_3.0/src/org/apache/roller/pojos/WeblogCategoryData.java Tue Jul 18 10:11:56 2006
@@ -1,20 +1,20 @@
/*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements. The ASF licenses this file to You
-* under the Apache License, Version 2.0 (the "License"); you may not
-* use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License. For additional information regarding
-* copyright in this work, please see the NOTICE file in the top level
-* directory of this distribution.
-*/
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. The ASF licenses this file to You
+ * under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License. For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ */
package org.apache.roller.pojos;
import java.util.Iterator;
@@ -36,33 +36,30 @@
* @hibernate.class lazy="false" table="weblogcategory"
* @hibernate.cache usage="read-write"
*/
-public class WeblogCategoryData extends HierarchicalPersistentObject
-{
+public class WeblogCategoryData extends HierarchicalPersistentObject {
public static final long serialVersionUID = 1435782148712018954L;
-
+
private String id = null;
private String name = null;
private String description = null;
private String image = null;
private String cachedPath = null;
-
+
private WebsiteData website = null;
private List weblogCategories = null;
-
- public WeblogCategoryData()
- {
+
+ public WeblogCategoryData() {
}
-
+
public WeblogCategoryData(
- java.lang.String id,
- WebsiteData website,
- WeblogCategoryData parent,
- java.lang.String name,
- java.lang.String description,
- java.lang.String image)
- {
+ java.lang.String id,
+ WebsiteData website,
+ WeblogCategoryData parent,
+ java.lang.String name,
+ java.lang.String description,
+ java.lang.String image) {
this.id = id;
this.website = website;
this.mNewParent = parent;
@@ -70,15 +67,13 @@
this.description = description;
this.image = image;
}
-
- public WeblogCategoryData(WeblogCategoryData otherData)
- {
+
+ public WeblogCategoryData(WeblogCategoryData otherData) {
this.setData(otherData);
}
-
+
/** Setter is needed in RollerImpl.storePersistentObject(). */
- public void setData(org.apache.roller.pojos.PersistentObject otherData)
- {
+ public void setData(org.apache.roller.pojos.PersistentObject otherData) {
WeblogCategoryData other = (WeblogCategoryData) otherData;
this.id = other.getId();
@@ -95,232 +90,198 @@
}
- /**
+ /**
* @see org.apache.roller.pojos.HierarchicalPersistentObject#getAssocClass()
*/
- public Class getAssocClass()
- {
+ public Class getAssocClass() {
return WeblogCategoryAssoc.class;
}
-
- /**
+
+ /**
* @see org.apache.roller.pojos.HierarchicalPersistentObject#getObjectPropertyName()
*
* @roller.wrapPojoMethod type="simple"
*/
- public String getObjectPropertyName()
- {
+ public String getObjectPropertyName() {
return "category";
}
-
- /**
+
+ /**
* @see org.apache.roller.pojos.HierarchicalPersistentObject#getAncestorPropertyName()
*
* @roller.wrapPojoMethod type="simple"
*/
- public String getAncestorPropertyName()
- {
+ public String getAncestorPropertyName() {
return "ancestorCategory";
}
//------------------------------------------------------- Simple properties
-
+
/**
* @roller.wrapPojoMethod type="simple"
- * @ejb:persistent-field
+ * @ejb:persistent-field
* @hibernate.id column="id"
* generator-class="uuid.hex" unsaved-value="null"
*/
- public java.lang.String getId()
- {
+ public java.lang.String getId() {
return this.id;
}
/** @ejb:persistent-field */
- public void setId(java.lang.String id)
- {
+ public void setId(java.lang.String id) {
this.id = id;
}
-
- /**
+
+ /**
* @roller.wrapPojoMethod type="simple"
- * @ejb:persistent-field
+ * @ejb:persistent-field
* @hibernate.property column="name" non-null="true" unique="false"
*/
- public java.lang.String getName()
- {
+ public java.lang.String getName() {
return this.name;
}
/** @ejb:persistent-field */
- public void setName(java.lang.String name)
- {
+ public void setName(java.lang.String name) {
this.name = name;
}
-
- /**
+
+ /**
* Description
- *
+ *
* @roller.wrapPojoMethod type="simple"
- * @ejb:persistent-field
+ * @ejb:persistent-field
* @hibernate.property column="description" non-null="true" unique="false"
*/
- public java.lang.String getDescription()
- {
+ public java.lang.String getDescription() {
return this.description;
}
/** @ejb:persistent-field */
- public void setDescription(java.lang.String description)
- {
+ public void setDescription(java.lang.String description) {
this.description = description;
}
-
- /**
+
+ /**
* @roller.wrapPojoMethod type="simple"
- * @ejb:persistent-field
+ * @ejb:persistent-field
* @hibernate.property column="image" non-null="true" unique="false"
*/
- public java.lang.String getImage()
- {
+ public java.lang.String getImage() {
return this.image;
}
/** @ejb:persistent-field */
- public void setImage(java.lang.String image)
- {
+ public void setImage(java.lang.String image) {
this.image = image;
}
-
+
/**
* Get path in category hierarhcy.
*
* @roller.wrapPojoMethod type="simple"
*/
- public String getPath()
- {
- if (null == cachedPath)
- {
- try
- {
+ public String getPath() {
+ if (null == cachedPath) {
+ try {
cachedPath = RollerFactory.getRoller().getWeblogManager().getPath(this);
- }
- catch (RollerException e)
- {
+ } catch (RollerException e) {
throw new RuntimeException(e);
}
}
return cachedPath;
}
-
+
//------------------------------------------------------------ Associations
-
- /**
+
+ /**
* @roller.wrapPojoMethod type="pojo"
* @ejb:persistent-field
- *
+ *
* @hibernate.many-to-one column="websiteid" cascade="none" not-null="true"
*/
- public WebsiteData getWebsite()
- {
+ public WebsiteData getWebsite() {
return website;
}
/** @ejb:persistent-field */
- public void setWebsite(WebsiteData website)
- {
+ public void setWebsite(WebsiteData website) {
this.website = website;
}
-
-
- /**
+
+
+ /**
* Return parent category, or null if category is root of hierarchy.
*
* @roller.wrapPojoMethod type="pojo"
*/
- public WeblogCategoryData getParent() throws RollerException
- {
- if (mNewParent != null)
- {
+ public WeblogCategoryData getParent() throws RollerException {
+ if (mNewParent != null) {
// Category has new parent, so return that
return (WeblogCategoryData)mNewParent;
- }
- else if (getParentAssoc() != null)
- {
+ } else if (getParentAssoc() != null) {
// Return parent found in database
return ((WeblogCategoryAssoc)getParentAssoc()).getAncestorCategory();
- }
- else
- {
+ } else {
return null;
}
}
-
+
/** Set parent category, database will be updated when object is saved. */
- public void setParent(HierarchicalPersistentObject parent)
- {
+ public void setParent(HierarchicalPersistentObject parent) {
mNewParent = parent;
}
-
+
/**
* Query to get child categories of this category.
*
* @roller.wrapPojoMethod type="pojo-collection" class="org.apache.roller.pojos.WeblogCategoryData"
*/
- public List getWeblogCategories() throws RollerException
- {
- if (weblogCategories == null)
- {
+ public List getWeblogCategories() throws RollerException {
+ if (weblogCategories == null) {
weblogCategories = new LinkedList();
List childAssocs = getChildAssocs();
Iterator childIter = childAssocs.iterator();
- while (childIter.hasNext())
- {
+ while (childIter.hasNext()) {
WeblogCategoryAssoc assoc =
- (WeblogCategoryAssoc) childIter.next();
+ (WeblogCategoryAssoc) childIter.next();
weblogCategories.add(assoc.getCategory());
}
}
return weblogCategories;
}
-
+
/**
* @roller.wrapPojoMethod type="simple"
*/
- public boolean descendentOf(WeblogCategoryData ancestor)
- throws RollerException
- {
+ public boolean descendentOf(WeblogCategoryData ancestor)
+ throws RollerException {
return RollerFactory.getRoller().getWeblogManager().isDescendentOf(this, ancestor);
}
- /**
- * Determine if category is in use. Returns true if any weblog entries
+ /**
+ * Determine if category is in use. Returns true if any weblog entries
* use this category or any of it's subcategories.
*
* @roller.wrapPojoMethod type="simple"
*/
- public boolean isInUse()
- {
- try
- {
+ public boolean isInUse() {
+ try {
return RollerFactory.getRoller().getWeblogManager().isWeblogCategoryInUse(this);
- }
- catch (RollerException e)
- {
+ } catch (RollerException e) {
throw new RuntimeException(e);
}
}
/** TODO: fix form generation so this is not needed. */
public void setInUse(boolean dummy) {}
-
+
//------------------------------------------------------------------------
-
- /**
+
+ /**
* @see org.apache.roller.pojos.HierarchicalPersistentObject#createAssoc(
- * org.apache.roller.pojos.HierarchicalPersistentObject,
+ * org.apache.roller.pojos.HierarchicalPersistentObject,
* org.apache.roller.pojos.HierarchicalPersistentObject, java.lang.String)
*/
public Assoc createAssoc(
- HierarchicalPersistentObject object,
- HierarchicalPersistentObject associatedObject,
- String relation) throws RollerException
- {
+ HierarchicalPersistentObject object,
+ HierarchicalPersistentObject associatedObject,
+ String relation) throws RollerException {
return new WeblogCategoryAssoc(null,
(WeblogCategoryData)object,
(WeblogCategoryData)associatedObject,
@@ -328,7 +289,7 @@
}
- /**
+ /**
* Retrieve all weblog entries in this category and, optionally, include
* weblog entries all sub-categories.
*
@@ -337,22 +298,20 @@
* @param subcats True if entries from sub-categories are to be returned.
* @return List of WeblogEntryData objects.
* @throws RollerException
- */
- public List retrieveWeblogEntries(boolean subcats)
- throws RollerException
- {
+ */
+ public List retrieveWeblogEntries(boolean subcats)
+ throws RollerException {
WeblogManager wmgr = RollerFactory.getRoller().getWeblogManager();
return wmgr.getWeblogEntries(this, subcats);
}
-
+
//-------------------------------------------------------- Good citizenship
-
- public String toString()
- {
+
+ public String toString() {
StringBuffer str = new StringBuffer("{");
-
+
str.append(
- "id="
+ "id="
+ id
+ " "
+ "name="
@@ -364,15 +323,13 @@
+ "image="
+ image);
str.append('}');
-
+
return (str.toString());
}
-
- public boolean equals(Object pOther)
- {
+
+ public boolean equals(Object pOther) {
if (pOther == null) return false;
- if (pOther instanceof WeblogCategoryData)
- {
+ if (pOther instanceof WeblogCategoryData) {
WeblogCategoryData lTest = (WeblogCategoryData) pOther;
boolean lEquals = true;
lEquals = PojoUtil.equals(lEquals, this.getId(), lTest.getId());
@@ -380,26 +337,23 @@
lEquals = PojoUtil.equals(lEquals, this.getDescription(), lTest.getDescription());
lEquals = PojoUtil.equals(lEquals, this.getImage(), lTest.getImage());
return lEquals;
- }
- else
- {
+ } else {
return false;
}
}
-
- public int hashCode()
- {
+
+ public int hashCode() {
int result = 17;
result = 37 * result + ((this.id != null) ? this.id.hashCode() : 0);
result =
- 37 * result
+ 37 * result
+ ((this.website != null) ? this.website.hashCode() : 0);
result = 37 * result + ((this.name != null) ? this.name.hashCode() : 0);
result =
- 37 * result
+ 37 * result
+ ((this.description != null) ? this.description.hashCode() : 0);
result =
- 37 * result + ((this.image != null) ? this.image.hashCode() : 0);
+ 37 * result + ((this.image != null) ? this.image.hashCode() : 0);
return result;
}
@@ -414,37 +368,33 @@
/** TODO: fix formbean generation so this is not needed. */
public void setPath(String string) {}
-
- /**
+
+ /**
* @see org.apache.roller.pojos.HierarchicalPersistentObject#getParentAssoc()
*/
- public Assoc getParentAssoc() throws RollerException
- {
+ public Assoc getParentAssoc() throws RollerException {
return RollerFactory.getRoller().getWeblogManager().getWeblogCategoryParentAssoc(this);
}
-
- /**
+
+ /**
* @see org.apache.roller.pojos.HierarchicalPersistentObject#getChildAssocs()
*/
- public List getChildAssocs() throws RollerException
- {
+ public List getChildAssocs() throws RollerException {
return RollerFactory.getRoller().getWeblogManager().getWeblogCategoryChildAssocs(this);
}
-
- /**
+
+ /**
* @see org.apache.roller.pojos.HierarchicalPersistentObject#getAllDescendentAssocs()
*/
- public List getAllDescendentAssocs() throws RollerException
- {
+ public List getAllDescendentAssocs() throws RollerException {
return RollerFactory.getRoller().getWeblogManager().getAllWeblogCategoryDecscendentAssocs(this);
}
-
- /**
+
+ /**
* @see org.apache.roller.pojos.HierarchicalPersistentObject#getAncestorAssocs()
*/
- public List getAncestorAssocs() throws RollerException
- {
+ public List getAncestorAssocs() throws RollerException {
return RollerFactory.getRoller().getWeblogManager().getWeblogCategoryAncestorAssocs(this);
}
-
+
}
Modified: incubator/roller/branches/roller_3.0/src/org/apache/roller/pojos/WebsiteData.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/src/org/apache/roller/pojos/WebsiteData.java?rev=423138&r1=423137&r2=423138&view=diff
==============================================================================
--- incubator/roller/branches/roller_3.0/src/org/apache/roller/pojos/WebsiteData.java (original)
+++ incubator/roller/branches/roller_3.0/src/org/apache/roller/pojos/WebsiteData.java Tue Jul 18 10:11:56 2006
@@ -35,6 +35,7 @@
import org.apache.commons.logging.LogFactory;
import org.apache.roller.ThemeNotFoundException;
import org.apache.roller.config.RollerRuntimeConfig;
+import org.apache.roller.model.BookmarkManager;
import org.apache.roller.model.PluginManager;
import org.apache.roller.model.Roller;
import org.apache.roller.model.ThemeManager;
@@ -330,6 +331,7 @@
/**
* Get a list of all pages that are part of this website.
+ * @roller.wrapPojoMethod type="pojo-collection" class="org.apache.roller.pojos.Template"
*/
public List getPages() {
@@ -1133,6 +1135,7 @@
}
/**
+ * Returns categories under the default category of the weblog.
* @roller.wrapPojoMethod type="pojo-collection" class="org.apache.roller.pojos.WeblogCategoryData"
*/
public List getWeblogCategories() {
@@ -1162,17 +1165,35 @@
}
ret = category.getWeblogCategories();
} catch (RollerException e) {
- log.error("ERROR: fetching categories", e);
+ log.error("ERROR: fetching categories for path: " + categoryPath, e);
}
return ret;
}
-
+ /**
+ * @roller.wrapPojoMethod type="pojo" class="org.apache.roller.pojos.WeblogCategoryData"
+ */
+ public WeblogCategoryData getWeblogCategory(String categoryPath) {
+ WeblogCategoryData category = null;
+ try {
+ Roller roller = RollerFactory.getRoller();
+ WeblogManager wmgr = roller.getWeblogManager();
+ if (categoryPath != null && !categoryPath.equals("nil")) {
+ category = wmgr.getWeblogCategoryByPath(this, null, categoryPath);
+ } else {
+ category = this.getDefaultCategory();
+ }
+ } catch (RollerException e) {
+ log.error("ERROR: fetching category at path: " + categoryPath, e);
+ }
+ return category;
+ }
+
/**
* Get up to 100 most recent published entries in weblog.
* @param cat Category path or null for no category restriction
* @param length Max entries to return (1-100)
- * @return List of WeblogEntryDataWrapper objects.
+ * @return List of weblog entry objects.
*
* @roller.wrapPojoMethod type="pojo-collection" class="org.apache.roller.pojos.WeblogEntryData"
*/
@@ -1183,7 +1204,7 @@
if (length < 1) return recentEntries;
try {
WeblogManager wmgr = RollerFactory.getRoller().getWeblogManager();
- List recent = wmgr.getWeblogEntries(
+ recentEntries = wmgr.getWeblogEntries(
this,
null, // user
null, // startDate
@@ -1204,7 +1225,7 @@
/**
* Get up to 100 most recent approved and non-spam comments in weblog.
* @param length Max entries to return (1-100)
- * @return List of CommentDataWrapper objects.
+ * @return List of comment objects.
*
* @roller.wrapPojoMethod type="pojo-collection" class="org.apache.roller.pojos.CommentData"
*/
@@ -1231,6 +1252,28 @@
}
return recentComments;
}
-
+
+ /**
+ * Get bookmark folder by name.
+ * @param folderName Name or path of bookmark folder to be returned (null for root)
+ * @return Folder object requested.
+ *
+ * @roller.wrapPojoMethod type="pojo" class="org.apache.roller.pojos.FolderData"
+ */
+ public FolderData getFolder(String folderName) {
+ FolderData ret = null;
+ try {
+ Roller roller = RollerFactory.getRoller();
+ BookmarkManager bmgr = roller.getBookmarkManager();
+ if (folderName == null && folderName.equals("nil") && folderName.trim().equals("/")) {
+ return bmgr.getRootFolder(this);
+ } else {
+ return bmgr.getFolder(this, folderName);
+ }
+ } catch (RollerException re) {
+ log.error("ERROR: fetching folder for weblog", re);
+ }
+ return ret;
+ }
}
Modified: incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/CalendarModel.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/CalendarModel.java?rev=423138&r1=423137&r2=423138&view=diff
==============================================================================
--- incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/CalendarModel.java (original)
+++ incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/CalendarModel.java Tue Jul 18 10:11:56 2006
@@ -66,17 +66,17 @@
}
- public String showWeblogCalendar(WebsiteDataWrapper websiteWrapper, String catArgument) {
- return showWeblogCalendar(websiteWrapper, catArgument, false);
+ public String showWeblogEntryCalendar(WebsiteDataWrapper websiteWrapper, String catArgument) {
+ return showWeblogEntryCalendar(websiteWrapper, catArgument, false);
}
- public String showWeblogCalendarBig(WebsiteDataWrapper websiteWrapper, String catArgument) {
- return showWeblogCalendar(websiteWrapper, catArgument, true);
+ public String showWeblogEntryCalendarBig(WebsiteDataWrapper websiteWrapper, String catArgument) {
+ return showWeblogEntryCalendar(websiteWrapper, catArgument, true);
}
- private String showWeblogCalendar(WebsiteDataWrapper websiteWrapper, String catArgument, boolean big) {
+ private String showWeblogEntryCalendar(WebsiteDataWrapper websiteWrapper, String catArgument, boolean big) {
if ("nil".equals(catArgument)) catArgument = null;
String ret = null;
Modified: incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/ConfigModel.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/ConfigModel.java?rev=423138&r1=423137&r2=423138&view=diff
==============================================================================
--- incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/ConfigModel.java (original)
+++ incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/ConfigModel.java Tue Jul 18 10:11:56 2006
@@ -20,16 +20,17 @@
import java.net.MalformedURLException;
import java.util.Arrays;
-import java.util.Hashtable;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.PageContext;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.RollerException;
import org.apache.roller.config.RollerRuntimeConfig;
import org.apache.roller.pojos.wrapper.WeblogEntryDataWrapper;
+import org.apache.roller.pojos.wrapper.WebsiteDataWrapper;
+import org.apache.roller.ui.core.RequestConstants;
import org.apache.roller.ui.core.RollerContext;
import org.apache.struts.util.RequestUtils;
@@ -89,22 +90,6 @@
}
- /** URL for editing a weblog entry */
- public String getWeblogEntryEditURL(WeblogEntryDataWrapper entry) {
- String ret = null;
- Hashtable params = new Hashtable();
- params.put("entryid", entry.getId());
- params.put("anchor", entry.getAnchor());
- try {
- ret = RequestUtils.computeURL(pageContext,
- "weblogEdit", null, null, null, params, null, false);
- } catch (MalformedURLException mue) {
- log.warn("RollerRequest.editEntryUrl exception: ", mue);
- }
- return ret;
- }
-
-
/**
* Get Roller string runtime configuration property.
* @return Property value or null if not found
@@ -161,5 +146,76 @@
return RollerContext.getRollerContext().getRollerBuildUser();
}
+
+ /** URL for editing a weblog entry */
+ public String getWeblogEntryEditURL(WeblogEntryDataWrapper entry) {
+ String ret = null;
+ Map params = new HashMap();
+ params.put(RequestConstants.WEBLOGENTRY_ID, entry.getId());
+ params.put(RequestConstants.ANCHOR, entry.getAnchor());
+ try {
+ ret = RequestUtils.computeURL(pageContext,
+ "weblogEdit", null, null, null, params, null, false);
+ } catch (MalformedURLException mue) {
+ log.error("ERROR forming Struts URL: ", mue);
+ }
+ return ret;
+ }
+
+
+ /** URL for creating a new weblog entry */
+ public String getWeblogEntryCreateURL(WebsiteDataWrapper weblog) {
+ String returnURL = null;
+ Map params = new HashMap();
+ params.put(RequestConstants.WEBLOG, weblog.getHandle());
+ try {
+ returnURL = RequestUtils.computeURL(pageContext,
+ "weblogCreate", null, null, null, params, null, false);
+ } catch (MalformedURLException mue) {
+ log.error("ERROR forming Struts URL: ", mue);
+ }
+ return returnURL;
+ }
+
+
+ /** URL for editing weblog settings */
+ public String getWeblogSettingsURL(WebsiteDataWrapper weblog) {
+ String returnURL = null;
+ Map params = new HashMap();
+ params.put(RequestConstants.WEBLOG, weblog.getHandle());
+ try {
+ returnURL = RequestUtils.computeURL(pageContext,
+ "editWebsite", null, null, null, params, null, false);
+ } catch (MalformedURLException mue) {
+ log.error("ERROR forming Struts URL: ", mue);
+ }
+ return returnURL;
+ }
+
+
+ /** URL for logging in */
+ public String getLoginURL() {
+ String returnURL = null;
+ try {
+ returnURL = RequestUtils.computeURL(pageContext,
+ "login-redirect", null, null, null, null, null, false);
+ } catch (MalformedURLException mue) {
+ log.error("ERROR forming Struts URL: ", mue);
+ }
+ return returnURL;
+ }
+
+
+ /** URL for logging out */
+ public String getLogoutURL() {
+ String returnURL = null;
+ try {
+ returnURL = RequestUtils.computeURL(pageContext,
+ "logout-redirect", null, null, null, null, null, false);
+ } catch (MalformedURLException mue) {
+ log.error("ERROR forming Struts URL: ", mue);
+ }
+ return returnURL;
+ }
}
Modified: incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/MenuModel.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/MenuModel.java?rev=423138&r1=423137&r2=423138&view=diff
==============================================================================
--- incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/MenuModel.java (original)
+++ incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/MenuModel.java Tue Jul 18 10:11:56 2006
@@ -53,11 +53,11 @@
/**
- * Call hybrid EditorNavBarTag to render editor navbar.
+ * Display author menu.
* @param vertical True for vertical navbar.
* @return String HTML for navbar.
*/
- public String showEditorNavBar(boolean vertical) {
+ public String showAuthorMenu(boolean vertical) {
EditorNavigationBarTag editorTag = new EditorNavigationBarTag();
editorTag.setPageContext(pageContext);
if ( vertical ) {
Modified: incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/UtilitiesModel.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/UtilitiesModel.java?rev=423138&r1=423137&r2=423138&view=diff
==============================================================================
--- incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/UtilitiesModel.java (original)
+++ incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/UtilitiesModel.java Tue Jul 18 10:11:56 2006
@@ -112,7 +112,7 @@
//---------------------------------------------------- Authentication utils
- public boolean getUserAuthorizedToAuthor(WebsiteDataWrapper weblog) {
+ public boolean isUserAuthorizedToAuthor(WebsiteDataWrapper weblog) {
try {
RollerSession rses = RollerSession.getRollerSession(request);
if (rses.getAuthenticatedUser() != null) {
@@ -124,7 +124,7 @@
return false;
}
- public boolean getUserAuthorizedToAdmin(WebsiteDataWrapper weblog) {
+ public boolean isUserAuthorizedToAdmin(WebsiteDataWrapper weblog) {
try {
RollerSession rses = RollerSession.getRollerSession(request);
if (rses.getAuthenticatedUser() != null) {
Modified: incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/WeblogEntriesPagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/WeblogEntriesPagerImpl.java?rev=423138&r1=423137&r2=423138&view=diff
==============================================================================
--- incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/WeblogEntriesPagerImpl.java (original)
+++ incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/WeblogEntriesPagerImpl.java Tue Jul 18 10:11:56 2006
@@ -601,7 +601,7 @@
for(int i=0; i < unwrapped.size(); i++) {
wrapped.add(i,
WeblogEntryDataWrapper.wrap((WeblogEntryData)unwrapped.get(i)));
- if (++count < length) {
+ if (count++ < length) {
entries.put(key, wrapped);
} else {
more = true;
Modified: incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/velocity/VelocityRenderer.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/velocity/VelocityRenderer.java?rev=423138&r1=423137&r2=423138&view=diff
==============================================================================
--- incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/velocity/VelocityRenderer.java (original)
+++ incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/velocity/VelocityRenderer.java Tue Jul 18 10:11:56 2006
@@ -23,6 +23,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.ui.rendering.Renderer;
+import org.apache.roller.ui.rendering.model.UtilitiesModel;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.context.Context;
@@ -37,7 +38,8 @@
private String resourceId = null;
private Template resourceTemplate = null;
-
+ private Exception exception = null;
+ private String exceptionSource = null;
public VelocityRenderer(String resource) throws Exception {
@@ -48,9 +50,21 @@
resourceTemplate = RollerVelocity.getTemplate(this.resourceId, "UTF-8");
}
+ /** Construct rendering for displaying exception */
+ public VelocityRenderer(Exception exception, String exceptionSource, String resource) throws Exception {
+ this(resource);
+ this.exception = exception;
+ this.exceptionSource = exceptionSource;
+ }
+
public void render(Map model, Writer out) throws Exception {
+ if (exception != null) {
+ renderException(model, out);
+ return;
+ }
+
long startTime = System.currentTimeMillis();
// convert model to Velocity Context
@@ -64,5 +78,20 @@
log.debug("Rendered ["+this.resourceId+"] in "+renderTime+" secs");
}
+
+
+ private void renderException(Map model, Writer out) throws Exception {
+
+ // add exception to Velocity Context and utils for formatting
+ Context ctx = new VelocityContext(model);
+ ctx.put("exception", exception);
+ ctx.put("exceptionSource", exceptionSource);
+ ctx.put("utils", new UtilitiesModel());
+
+ // render output to Writer
+ resourceTemplate.merge(ctx, out);
+ }
+
+
}
Modified: incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/velocity/VelocityRendererFactory.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/velocity/VelocityRendererFactory.java?rev=423138&r1=423137&r2=423138&view=diff
==============================================================================
--- incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/velocity/VelocityRendererFactory.java (original)
+++ incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/velocity/VelocityRendererFactory.java Tue Jul 18 10:11:56 2006
@@ -20,6 +20,7 @@
import org.apache.roller.ui.rendering.Renderer;
import org.apache.roller.ui.rendering.RendererFactory;
+import org.apache.velocity.exception.ParseErrorException;
/**
@@ -37,23 +38,38 @@
return null;
}
- if("velocity".equals(rendererType)) {
+ if("velocity".equals(rendererType)) {
// standard velocity template
try {
- renderer = new VelocityRenderer(resourceId);
- } catch(Exception e) {
+ renderer = new VelocityRenderer(resourceId);
+ } catch (ParseErrorException pe) {
+ // Author needs to see parsing error so display error page
+ try {
+ renderer = new VelocityRenderer(pe, resourceId, "templates/error-page.vm");
+ } catch (Throwable t) {
+ throw new RuntimeException("ERROR displaying error page", t);
+ }
+ } catch(Exception ignored) {
// couldn't find the given resource, can't render
- }
+ }
+
} else if("velocityWeblogPage".equals(rendererType)) {
// special case for velocity weblog page templates
// needed because of the way we do the decorator stuff
try {
renderer = new VelocityWeblogPageRenderer(resourceId);
- } catch(Exception e) {
+ } catch (ParseErrorException pe) {
+ // Author needs to see parsing error so display error page
+ try {
+ renderer = new VelocityRenderer(pe, resourceId, "templates/error-page.vm");
+ } catch (Throwable t) {
+ throw new RuntimeException("ERROR displaying error page", t);
+ }
+ } catch(Exception ignored) {
// couldn't find the given resource, can't render
- }
+ }
}
return renderer;
Modified: incubator/roller/branches/roller_3.0/web/WEB-INF/jsps/tiles/bannerStatus.jsp
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/web/WEB-INF/jsps/tiles/bannerStatus.jsp?rev=423138&r1=423137&r2=423138&view=diff
==============================================================================
--- incubator/roller/branches/roller_3.0/web/WEB-INF/jsps/tiles/bannerStatus.jsp (original)
+++ incubator/roller/branches/roller_3.0/web/WEB-INF/jsps/tiles/bannerStatus.jsp Tue Jul 18 10:11:56 2006
@@ -48,7 +48,7 @@
<c:if test="${!empty model.website}" >
- <fmt:message key="mainPage.currentWebsite" />
- <b><a href='<c:out value="${model.baseURL}" />/page/<c:out value="${model.website.handle}" />'>
+ <b><a href='<c:out value="${model.baseURL}" />/<c:out value="${model.website.handle}" />'>
<c:out value="${model.website.handle}" />
</a></b>
Modified: incubator/roller/branches/roller_3.0/web/WEB-INF/velocity/templates/error-page.vm
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/web/WEB-INF/velocity/templates/error-page.vm?rev=423138&r1=423137&r2=423138&view=diff
==============================================================================
--- incubator/roller/branches/roller_3.0/web/WEB-INF/velocity/templates/error-page.vm (original)
+++ incubator/roller/branches/roller_3.0/web/WEB-INF/velocity/templates/error-page.vm Tue Jul 18 10:11:56 2006
@@ -1,6 +1,17 @@
<html>
<body>
+
<h1>Velocity template error</h1>
-ERROR message [$!displayException.getMessage()]
+
+<p><b>EXCEPTION</b>: [$!exception.getClass().getName()]</p>
+
+<p><b>EXCEPTION SOURCE</b>: [$exceptionSource]</p>
+
+<p><b>EXCEPTION MESSAGE</b>:</p>
+
+#if ($exception.getMessage())
+ $utils.autoformat($exception.getMessage())
+#end
+
</body>
</html>
Modified: incubator/roller/branches/roller_3.0/web/WEB-INF/velocity/weblog.vm
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/web/WEB-INF/velocity/weblog.vm?rev=423138&r1=423137&r2=423138&view=diff
==============================================================================
--- incubator/roller/branches/roller_3.0/web/WEB-INF/velocity/weblog.vm (original)
+++ incubator/roller/branches/roller_3.0/web/WEB-INF/velocity/weblog.vm Tue Jul 18 10:11:56 2006
@@ -1,23 +1,24 @@
#** Set of essential macros needed in Roller velocity templates.
-Implemented:
- #showWeblogEntriesPager($pager)
- #showWeblogEntryComments($entry)
- #showWeblogEntryCommentForm($entry)
- #showCategoryLinksList()
- #showWeblogEntryLinksList()
-
-To be implemented:
- #showBookmarkList()
- #showPageLinksList()
- #showTrackbackAutodiscoveryRDF()
- #showAutodiscoveryLinks()
- #includePage()
- #showSearchForm()
- #showSearchAgainForm()
- #showSearchSummary()
- #showSearchPager()
+ #showWeblogEntriesPager($pager)
+ #showNextPrevControl($pager)
+ #showWeblogEntryComments($entry)
+ #showWeblogEntryCommentForm($entry)
+ #showWeblogEntryLinksList($weblog $category $max)
+ #showBookmarkLinksList($weblog $folder $expanding $subfolders)
+ #showWeblogCategoryLinksList($weblog $category $expanding $subcats)
+ #showPageLinksList($weblog)
+ #showTrackbackAutodiscoveryRDF($entry)
+ #showAutodiscoveryLinks($weblog)
+ #showWeblogEntryCalendar($weblog $category)
+ #showAuthorMenu($vertical)
+ #includeTemplate($weblog $pageName)
+Todo:
+ #showSearchForm()
+ #showSearchAgainForm()
+ #showSearchSummary()
+ #showSearchPager()
*#
@@ -49,7 +50,7 @@
#**
-Show comments for weblog entry according to Roller configuration
+Show comments for weblog entry according to Roller configuration.
*#
#macro(showWeblogEntryComments $entry)
#set($commentPreview = $model.getCommentPreview())
@@ -111,7 +112,7 @@
#**
-Show comments form for weblog entry
+Show comments form for weblog entry.
*#
#macro(showWeblogEntryCommentForm $entry)
#set($cform = $model.getCommentForm())
@@ -231,41 +232,304 @@
</div>
#end
-#** Show weblog's categories in specified parent category *#
-#macro(showCategoryLinksList $weblog $categoryPath)
- #set($rawUrl = "$config.contextURL/$weblog.handle")
- <ul class="clearfix">
- #set($weblogUrl = $rawUrl)
+
+#**
+Show recent weblog entries in specified category.
+*#
+#macro(showWeblogEntryLinksList $weblog $category $max)
+ #set($recentEntries = $weblog.getRecentWeblogEntries($category, $max))
+ <ul class="recentposts">
+ #foreach ($var in $recentEntries)
+ <li class="recentposts"><a href="$var.permalink">$var.title</a></li>
+ #end
+ </ul>
+#end
+
+
+#**
+Show bookmarks as a HTML ul list.
+*#
+#macro(showBookmarkLinksList $weblog $folder $expanding $subfolders)
+ #set($folderObj = $weblog.getFolder($folder))
+ #if ($folderObj)
+ #_showFolder($folderObj $expanding $subfolders)
+ #else
+ <span class="error">$text.get("macro.bookmark.error", [$folder])</span>
+ #end
+#end
+
+#**
+Show one bookmark folder as an HTML ul list, options for expanding and
+recursion (private).
+ *#
+#macro(_showFolder $folderObject $expanding $subfolders)
+ #set($bookmarks = $folderObject.getBookmarks())
+ #set($divId = $utils.replace($folderObject.name, " ", "_" ))
+ #if ($expanding && $folderObject.name != "root")
+ <div class="rFolder">
+ <li class="rFolderItem"><a href="javascript:toggleFolder('$divId')">
+ <span id="i$divId">+</span></a>$folderObject.Name</li>
+ <ul id="$divId" style="display:none">
+ #else
+ <ul class="rFolder">
+ #end
+ #foreach($bookmark in $bookmarks)
+ <li class="rFolderItem">
+ #if($utils.isNotEmpty($bookmark.Image))
+ #if( $bookmark.Image.startsWith("http://") )
+ <a href="$bookmark.url">
+ <img alt="$bookmark.description" border="0"
+ src="$bookmark.image" class="rBookmark" /></a>
+ #else
+ <a href="$bookmark.url">
+ <img alt="$bookmark.description" border="0"
+ src="$bookmark.image" class="rBookmark" /></a>
+ #end
+ #else
+ #if($utils.isNotEmpty( $bookmark.FeedUrl))
+ <a href="$bookmark.feedUrl"><img class="smrssbadge"
+ src="$config.getAbsoluteContextURL()/images/smrssbadge.gif"
+ alt="$text.get("macro.bookmark.urlFeed")"/></a>
+ #end
+ <a href="$bookmark.url"
+ title="$bookmark.description"
+ class="rBookmark$bookmark.weight">$bookmark.name</a>
+ #end
+ </li>
+ #end
+ ## show sub-folders
+ #if ($subfolders)
+ #foreach($sFolder in $folderObject.folders)
+ #_showFolder($sFolder $expanding $subfolders)
+ #end
+ #end
+ </ul>
+ #if($expanding)
+ </div>
+ <script type="text/javascript">
+ <!--
+ folderPreference("$divId");
+ // -->
+ </script>
+ #end
+#end
+
+
+#**
+Show weblog's categories in specified parent category.
+*#
+#macro(showWeblogCategoryLinksList $weblog $category $expanding $subcats)
+ #set($categoryObject = $weblog.getWeblogCategory($category))
+ #if(!$expanding && !$subcats)
+ <ul class="rCategory">
#set($selectedCat = "")
#if($model.weblogCategory)
#set($selectedCat = $model.weblogCategory)
- <li><a href="$weblogUrl">$text.get("macro.weblog.allcategories")</a></li>
+ <li><a href="$weblog.URL">$text.get("macro.weblog.allcategories")</a></li>
#else
- <li class="selected"><a href="$weblogUrl">$text.get("macro.weblog.allcategories")</a></li>
- #end
- #if($req.getParameter($PAGEID_KEY) )
- #set($pageParam = "&$PAGEID_KEY=$req.getParameter($PAGEID_KEY)")
+ <li class="selected"><a href="$weblog.URL">$text.get("macro.weblog.allcategories")</a></li>
#end
- #set($cats = $weblog.getWeblogCategories($categoryPath))
+ #set($cats = $weblog.getWeblogCategories($category))
#foreach($cat in $cats)
#set($catParam = "?cat=$utilities.encode($cat.path)")
- #set($weblogUrl = "$rawUrl$catParam$!pageParam")
- #if($selectedCat == $cat.path)
+ #set($weblogUrl = "$weblog.URL$catParam")
+ #if($selectedCat.path == $cat.path)
<li class="selected"><a href="$weblogUrl">$cat.name</a></li>
#else
<li><a href="$weblogUrl">$cat.name</a></li>
#end
#end
+ </ul>
+ #else
+ <ul class="rCategory">
+ #_showWeblogCategory($categoryObject $expanding $subcats)
+ </ul>
+ #end
+#end
+
+
+#**
+Show one weblog category's links as an HTML ul list, options for expanding and
+recursion (private).
+*#
+#macro(_showWeblogCategory $categoryObject $expanding $subcats)
+ #set($catParam = "?cat=$utils.encode($cat.path)")
+ #set($weblogUrl = "$categoryObject.website.URL$catParam")
+ #if ($expanding && $categoryObject.name != "root" && $categoryObject.weblogCategories.size() > 0)
+ #set($divId = "div_$categoryObject.name")
+ <div class="rCategory">
+ <li><a href="javascript:toggleFolder('$divId')">
+ <span id="i$divId">+</span></a><a href="$weblogUrl">$categoryObject.name</a></li>
+ <ul id="$divId" style="display:none">
+ #elseif ($categoryObject.name != "root" && $categoryObject.weblogCategories.size() > 0)
+ <ul class="rCategory">
+ #elseif ($categoryObject.name != "root")
+ #if($selectedCat.path == $categoryObject.path)
+ <li class="selected"><a href="$weblogUrl">categoryObject.name</a>
+ #else
+ <li><a href="$weblogUrl">$categoryObject.name</a>
+ #end
+ </li>
+ #end
+ #set($cats = $categoryObject.getWeblogCategories())
+ #foreach($cat in $cats)
+ #_showWeblogCategory($cat $expanding $subcats)
+ #end
+ #if ($categoryObject.name != "root" && $categoryObject.weblogCategories.size() > 0)
+ </ul>
+ #end
+ #if($expanding && $categoryObject.name != "root" && $categoryObject.weblogCategories.size() > 0)
+ </div>
+ <script type="text/javascript">
+ <!--
+ folderPreference("$divId");
+ // -->
+ </script>
+ #end
+#end
+
+
+#**
+ * Show Roller Page Navigation Bar, includes links to all pages.
+ *#
+#macro(showPageLinksList $weblog)
+ <ul class="rNavigationBar">
+ <li class="rNavItem">
+ <a href="$config.getContextURL()">$config.getProperty("site.shortName")</a>
+ </li>
+ #foreach($iPage in $weblog.pages)
+ #set($invisible = $iPage.Name.startsWith("_"))
+ #if (!$invisible)
+ #set($isSelected = false)
+ #if ($page && $iPage.Id == $page.Id) #set($isSelected = true) #end
+ #if (!$isSelected)
+ <li class="rNavItem"><a href="$weblog.URL/page/$iPage.Link">$iPage.Name</a></li>
+ #else
+ <li class="rNavItem">$iPage.Name</li>
+ #end
+ #end
+ #end
+ #if ($utils.isUserAuthorizedToAuthor($weblog))
+ <li class="rNavItem">
+ <a href="$config.getWeblogEntryCreateURL($weblog)">$text.get("navigationBar.newEntry")</a>
+ </li>
+ #if($utils.isUserAuthorizedToAdmin($weblog))
+ <li class="rNavItem">
+ <a href="$config.getWeblogSettingsURL($weblog)">$text.get("navigationBar.settings")</a>
+ </li>
+ #end
+ <li class="rNavItem">
+ <a href="$config.getLogoutURL()">$text.get("navigationBar.logout")</a>
+ </li>
+ #else
+ #if ($utils.isUserAuthenticated())
+ <li class="rNavItem">
+ <a href="$config.getLogoutURL()">$text.get("navigationBar.logout")</a>
+ </li>
+ #else
+ <li class="rNavItem">
+ <a href="$config.getLoginURL()">$text.get("navigationBar.login")</a>
+ </li>
+ #end
+ #end
</ul>
#end
-#** Show recent weblog entries in specified category *#
-#macro(showWeblogEntryLinksList $weblog $categoryPath $max)
- #set($recentEntries = $weblog.getRecentWeblogEntries($categoryPath, $max))
- <ul class="recentposts">
- #foreach ($var in $recentEntries)
- <li class="recentposts"><a href="$var.permalink">$var.title</a></li>
- #end
- </ul>
+
+#**
+Show trackback discovery code for one weblog entry, appears as an HTML comment.
+*#
+#macro(showTrackbackAutodiscoveryRDF $entry)
+<!--
+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
+<rdf:Description
+ rdf:about="$entry.permalink"
+ trackback:ping="$entry.trackbackURL"
+ dc:title="$entry.title"
+ dc:identifier="$entry.permalink"
+ dc:subject="$entry.category.name"
+ dc:description="$entry.title"
+ dc:creator="$entry.creator.userName"
+ dc:date="$entry.pubTime" />
+</rdf:RDF>
+-->
+#end
+
+
+#**
+Show RSS, Atom and RSD auto-discovery links as HTML link elements.
+*#
+#macro(showAutodiscoveryLinks $weblog)
+ <link rel="alternate" type="application/atom+xml" title="Atom Entries" href="$weblog.URL/feeds/entries/atom" />
+ <link rel="alternate" type="application/atom+xml" title="Atom Comments" href="$weblog.URL/feeds/comments/atom" />
+ <link rel="alternate" type="application/rss+xml" title="RSS Entries" href="$weblog.URL/feeds/entries/rss" />
+ <link rel="alternate" type="application/rss+xml" title="RSS Comments" href="$weblog.URL/feeds/comments/rss" />
+ #if ($weblog.enableBloggerApi)
+ <link rel="EditURI" type="application/rsd+xml" title="RSD" href="$weblog.URL/rsd"/>
+ #end
#end
+
+
+#**
+Show weblog entry calendar, with optional category restriction.
+*#
+#macro(showWeblogEntryCalendar $weblog $category)
+$calendarModel.showWeblogEntryCalendar($weblog, $category)
+#end
+
+
+#**
+Show weblog author menu with vertical or horizontal orientation.
+*#
+#macro(showAuthorMenu $vertical)
+$menuModel.showAuthorMenu($vertical)
+#end
+
+
+#**
+Parse and inlued page template from weblog.
+*#
+#macro(includeTemplate $weblog $pageName)
+ #set($iPageId = false )## This is required for such constructs; see Velocity docs and ROL-689
+ #set($iPageId = $weblog.findPageIdByName($pageName))
+ #if (!$iPageId) ## no page found, parse pageName
+ #set($iPageId = $pageName)
+ #end
+ #parse($iPageId)
+#end
+
+
+#**
+ TODO 3.0
+*#
+#macro(showSearchForm $weblog)
+$weblog
+#end
+
+
+#**
+ TODO 3.0
+*#
+#macro(showSearchAgainForm $weblog)
+$weblog
+#end
+
+
+#**
+ TODO 3.0
+*#
+#macro(showSearchSummary $weblog)
+$weblog
+#end
+
+
+#**
+ TODO 3.0
+*#
+#macro(showSearchPager $pager)
+$pager
+#end
+
Modified: incubator/roller/branches/roller_3.0/web/themes/andreas08/Weblog.vm
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/web/themes/andreas08/Weblog.vm?rev=423138&r1=423137&r2=423138&view=diff
==============================================================================
--- incubator/roller/branches/roller_3.0/web/themes/andreas08/Weblog.vm (original)
+++ incubator/roller/branches/roller_3.0/web/themes/andreas08/Weblog.vm Tue Jul 18 10:11:56 2006
@@ -1,38 +1,31 @@
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+#set($themeDir = "$config.contextURL/themes/andreas08")
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>$model.weblog.name | #if (!$model.weblogCategory && $model.weblogPage.name == "Weblog") $model.weblogPage.name #elseif ($model.weblogCategory && $page.Name == "Weblog") $model.weblogCategory.name Category #elseif ($model.weblogPage.name == "Weblog") $title #else $model.weblogPage.name #end</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="en" />
- <base href="$config.absoluteContextURL/$model.weblog.handle">
- #includePage("_css")
- #showRSSAutodiscoveryLink()
- #showRSDLink()
- <script type="text/javascript" src="$config.contextURL/themes/scripts/roller.js"></script>
- <script type="text/javascript" src="$config.contextURL/themes/andreas08/scripts/prototype.js"></script>
- <script type="text/javascript"
- src="$config.contextURL/themes/andreas08/scripts/scriptaculous.js?load=effects"></script>
- <script type="text/javascript" src="$config.contextURL/themes/andreas08/scripts/lightbox.js"></script>
- <link rel="stylesheet" type="text/css" href="$config.contextURL/themes/andreas08/styles/lightbox.css" />
+ <base href="$model.weblog.URL">
+ #includeTemplate($model.weblog "_css")
+ #showAutodiscoveryLinks($model.weblog)
+ ## import Javascript used by Roller's built-in macros
+ <script type="text/javascript" src="$config.getContextURL()/theme/scripts/roller.js"></script>
+ <script type="text/javascript" src="$themeDir/scripts/prototype.js"></script>
+ <script type="text/javascript" src="$themeDir/scripts/scriptaculous.js?load=effects"></script>
+ <script type="text/javascript" src="$themeDir/scripts/lightbox.js"></script>
+ <link rel="stylesheet" type="text/css" href="$themeDir/styles/lightbox.css" />
</head>
-#if( $model.weblogCategory )
- #set( $chosenCat = $model.weblogCategory.name )
- #set( $chosenCat = $stringUtils.replace($chosenCat, " ", "").toLowerCase() )
- #set( $chosenCat = $stringUtils.replace($chosenCat, "/", "") )
-#end
-
-<body id="page-$model.weblogPage.name"#if($chosenCat) class="$chosenCat"#end>
+<body>
<div id="page">
<div id="header" class="clearfix">
- <h1><a href="$config.contextURL/$model.weblog.handle">$model.weblog.name</a></h1>
+ <h1><a href="$model.weblog.URL">$model.weblog.name</a></h1>
<h2><!-- Short tagline goes here --></h2>
- <div id="branding"></div>
+ <div id="branding">$model.weblog.description</div>
</div>
<div id="content" class="clearfix">
@@ -42,7 +35,6 @@
<div class="next-previous">
#showNextPrevControl($pager)
</div>
-
<div class="entries">
#showWeblogEntriesPager($pager)
</div>
@@ -55,16 +47,17 @@
</div><!-- end main -->
<div id="sub">
- #showCssNavBar()
- <div class="editorMenu">$menuModel.showEditorNavBar(true)</div>
+ #showPageLinksList($model.weblog)
+ <div class="editorMenu">#showAuthorMenu(true)</div>
<div class="small box" id="description">
<div id="feed">
- <a href="$config.contextURL/rss/${website.handle}"><img class="rssbadge"
- src="$config.contextURL/themes/$theme/images/feed-icon-16x16.jpg" alt="Click me to subscribe" /></a>
+ <a href="$model.weblog.URL/feeds/rss"><img class="rssbadge"
+ src="$themeDir/images/feed-icon-16x16.jpg"
+ alt="Click me to subscribe" /></a>
</div>
$model.weblog.description
</div>
- <div class="small" id="calendar">$calendarModel.showWeblogCalendar($model.weblog, "nil")</div>
+ <div class="small" id="calendar">#showWeblogEntryCalendar($model.weblog "nil")</div>
<div id="searchbar">
<h2>Search This Site</h2>
@@ -88,13 +81,13 @@
<div id="nav">
<div class="wrapper">
<h2 class="hide">Navigation</h2>
- #showCategoryLinksList($model.weblog "nil")
+ #showWeblogCategoryLinksList($model.weblog "nil" false false)
</div>
</div>
</div><!-- end content -->
<div id="footer" class="clearfix">
- <p>© $model.weblog.creator.fullName | Design by <a href="http://andreasviklund.com">Andreas Viklund</a></p>
+ <p>Design by <a href="http://andreasviklund.com">Andreas Viklund</a></p>
</div>
</div><!-- end page -->