You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by ag...@apache.org on 2006/07/27 23:21:45 UTC
svn commit: r426248 - in /incubator/roller/branches/roller_3.0:
src/org/apache/roller/ui/rendering/model/
src/org/apache/roller/ui/rendering/servlets/
src/org/apache/roller/ui/rendering/util/
src/org/apache/roller/ui/rendering/velocity/deprecated/ web/...
Author: agilliland
Date: Thu Jul 27 14:21:45 2006
New Revision: 426248
URL: http://svn.apache.org/viewvc?rev=426248&view=rev
Log:
Updating weblog entry comment form handling.
- created new WeblogEntryCommentForm object to replace the use of CommentFormEx. this object has status/error messaging and comment previewing logic built in.
- modified CommentServlet to use new WeblogEntryCommentForm
- removed getPreviewComment() method from page model since it's inside WeblogEntryCommentForm now.
- modified getCommentForm() in page model so that it doesn't need request object anymore and returns new WeblogEntryCommentForm object.
- modified old ContextLoader to use new WeblogEntryCommentForm even in the old model.
- did a bit of cleanup on new #showWeblogEntryComments() and #showWeblogEntryCommentForm() 3.0 macros
- updated old #showCommentForm() macro to match new one and EOLed old #showEntryComments() method and changed it to just call the new #showWeblogEntryComments() macro.
Added:
incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/util/WeblogEntryCommentForm.java
Modified:
incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/PageModel.java
incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/servlets/CommentServlet.java
incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/servlets/PageServlet.java
incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/velocity/deprecated/ContextLoader.java
incubator/roller/branches/roller_3.0/web/WEB-INF/velocity/deprecated/comments.vm
incubator/roller/branches/roller_3.0/web/WEB-INF/velocity/weblog.vm
Modified: incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/PageModel.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/PageModel.java?rev=426248&r1=426247&r2=426248&view=diff
==============================================================================
--- incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/PageModel.java (original)
+++ incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/PageModel.java Thu Jul 27 14:21:45 2006
@@ -18,10 +18,6 @@
package org.apache.roller.ui.rendering.model;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.logging.Log;
@@ -29,19 +25,15 @@
import org.apache.roller.RollerException;
import org.apache.roller.model.Roller;
import org.apache.roller.model.RollerFactory;
-import org.apache.roller.model.UserManager;
import org.apache.roller.model.WeblogManager;
-import org.apache.roller.pojos.CommentData;
import org.apache.roller.pojos.WeblogCategoryData;
-import org.apache.roller.pojos.WeblogEntryData;
-import org.apache.roller.pojos.WeblogTemplate;
import org.apache.roller.pojos.WebsiteData;
-import org.apache.roller.pojos.wrapper.CommentDataWrapper;
import org.apache.roller.pojos.wrapper.TemplateWrapper;
import org.apache.roller.pojos.wrapper.WeblogCategoryDataWrapper;
import org.apache.roller.pojos.wrapper.WeblogEntryDataWrapper;
import org.apache.roller.pojos.wrapper.WebsiteDataWrapper;
import org.apache.roller.ui.authoring.struts.formbeans.CommentFormEx;
+import org.apache.roller.ui.rendering.util.WeblogEntryCommentForm;
import org.apache.roller.ui.rendering.util.WeblogPageRequest;
@@ -52,8 +44,9 @@
private static Log log = LogFactory.getLog(PageModel.class);
- private HttpServletRequest request = null;
private WeblogPageRequest pageRequest = null;
+ private WeblogEntryCommentForm commentForm = null;
+
private WebsiteData weblog = null;
@@ -77,15 +70,15 @@
*/
public void init(Map initData) throws RollerException {
- HttpServletRequest request = (HttpServletRequest) initData.get("request");
- this.request = request;
-
// we expect the init data to contain a pageRequest object
this.pageRequest = (WeblogPageRequest) initData.get("pageRequest");
if(this.pageRequest == null) {
throw new RollerException("expected pageRequest from init data");
}
+ // see if there is a comment form
+ this.commentForm = (WeblogEntryCommentForm) initData.get("commentForm");
+
// extract weblog object
weblog = pageRequest.getWeblog();
}
@@ -195,41 +188,16 @@
/**
- * Get comment form to be displayed, may contain preview data.
- * @return Comment form object or null if not on a comment page.
+ * Get comment form to be displayed, may contain preview data.
+ *
+ * @return Comment form object
*/
- public CommentFormEx getCommentForm() {
- CommentFormEx commentForm =
- (CommentFormEx) request.getAttribute("commentForm");
- if (commentForm == null) {
- commentForm = new CommentFormEx();
- // Set fields to spaces to please Velocity
- commentForm.setName("");
- commentForm.setEmail("");
- commentForm.setUrl("");
- commentForm.setContent("");
- }
- return commentForm;
- }
+ public WeblogEntryCommentForm getCommentForm() {
-
- /**
- * Get preview comment or null if none exists.
- */
- public CommentDataWrapper getCommentPreview() {
- CommentDataWrapper commentWrapper = null;
- try {
- if (request.getAttribute("previewComments") != null) {
- ArrayList list = new ArrayList();
- CommentData comment = new CommentData();
- CommentFormEx commentForm = getCommentForm();
- commentForm.copyTo(comment, request.getLocale());
- commentWrapper = CommentDataWrapper.wrap(comment);
- }
- } catch (RollerException e) {
- log.warn("ERROR: creating comment form", e);
+ if(commentForm == null) {
+ commentForm = new WeblogEntryCommentForm();
}
- return commentWrapper;
+ return commentForm;
}
}
Modified: incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/servlets/CommentServlet.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/servlets/CommentServlet.java?rev=426248&r1=426247&r2=426248&view=diff
==============================================================================
--- incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/servlets/CommentServlet.java (original)
+++ incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/servlets/CommentServlet.java Thu Jul 27 14:21:45 2006
@@ -37,7 +37,6 @@
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -52,12 +51,11 @@
import org.apache.roller.pojos.UserData;
import org.apache.roller.pojos.WeblogEntryData;
import org.apache.roller.pojos.WebsiteData;
-import org.apache.roller.ui.authoring.struts.formbeans.CommentFormEx;
-import org.apache.roller.ui.core.RollerSession;
import org.apache.roller.ui.rendering.model.UtilitiesModel;
import org.apache.roller.ui.rendering.util.CommentAuthenticator;
import org.apache.roller.ui.rendering.util.DefaultCommentAuthenticator;
import org.apache.roller.ui.rendering.util.WeblogCommentRequest;
+import org.apache.roller.ui.rendering.util.WeblogEntryCommentForm;
import org.apache.roller.util.GenericThrottle;
import org.apache.roller.util.IPBanList;
import org.apache.roller.util.MailUtil;
@@ -226,13 +224,31 @@
log.debug("Doing comment posting for entry = "+entry.getPermaLink());
+ // collect input from request params and construct new comment object
+ // fields: name, email, url, content, notify
+ // TODO: data validation on collected comment data
+ CommentData comment = new CommentData();
+ comment.setName(commentRequest.getName());
+ comment.setEmail(commentRequest.getEmail());
+ comment.setUrl(commentRequest.getUrl());
+ comment.setContent(commentRequest.getContent());
+ comment.setNotify(new Boolean(commentRequest.isNotify()));
+ comment.setWeblogEntry(entry);
+ comment.setRemoteHost(request.getRemoteHost());
+ comment.setPostTime(new Timestamp(System.currentTimeMillis()));
+
+ WeblogEntryCommentForm cf = new WeblogEntryCommentForm();
+ cf.setData(comment);
+
// check if site is allowing comments
if(!RollerRuntimeConfig.getBooleanProperty("users.comments.enabled")) {
+ // TODO: i18n
error = "Comments are disabled for this site.";
// check if weblog and entry are allowing comments
} else if(!weblog.getAllowComments().booleanValue() ||
!entry.getCommentsStillAllowed()) {
+ // TODO: i18n
error = "Comments not allowed on this entry";
// make sure comment authentication passed
@@ -243,39 +259,18 @@
// bail now if we have already found an error
if(error != null) {
- HttpSession session = request.getSession();
- session.setAttribute(RollerSession.ERROR_MESSAGE, error);
+ cf.setError(error);
+ request.setAttribute("commentForm", cf);
RequestDispatcher dispatcher = request.getRequestDispatcher(dispatch_url);
dispatcher.forward(request, response);
return;
}
- // collect input from request params and construct new comment object
- // fields: name, email, url, content, notify
- // TODO: data validation on collected comment data
- CommentData comment = new CommentData();
- comment.setName(commentRequest.getName());
- comment.setEmail(commentRequest.getEmail());
- comment.setUrl(commentRequest.getUrl());
- comment.setContent(commentRequest.getContent());
- comment.setNotify(new Boolean(commentRequest.isNotify()));
- comment.setWeblogEntry(entry);
- comment.setRemoteHost(request.getRemoteHost());
- comment.setPostTime(new Timestamp(System.currentTimeMillis()));
-
- // this is legacy stuff, but still used by ContextLoader
- // we can probably switch this to a CommentData without problems
- CommentFormEx cf = new CommentFormEx();
- RequestUtils.populate(cf, request);
- cf.setWeblogEntry(entry);
- cf.setPostTime(comment.getPostTime());
- request.setAttribute("commentForm", cf);
- request.setAttribute("blogEntry", entry);
-
-
if (preview) {
+ // TODO: i18n
message = "This is a comment preview only";
+ cf.setPreview(comment);
// If comment contains blacklisted text, warn commenter
SpamChecker checker = new SpamChecker();
@@ -283,7 +278,6 @@
error = bundle.getString("commentServlet.previewMarkedAsSpam");
log.debug("Comment marked as spam");
}
- request.setAttribute("previewComments", "dummy");
log.debug("Comment is a preview");
} else {
@@ -323,7 +317,7 @@
sendEmailNotification(comment, rootURL);
// comment was successful, clear the comment form
- request.removeAttribute("commentForm");
+ cf = new WeblogEntryCommentForm();
} catch (RollerException re) {
log.error("Error saving comment", re);
@@ -333,11 +327,11 @@
// the work has been done, now send the user back to the entry page
- HttpSession session = request.getSession();
if (error != null)
- session.setAttribute(RollerSession.ERROR_MESSAGE, error);
+ cf.setError(error);
if (message != null)
- session.setAttribute(RollerSession.STATUS_MESSAGE, message);
+ cf.setMessage(message);
+ request.setAttribute("commentForm", cf);
log.debug("comment processed, forwarding to "+dispatch_url);
RequestDispatcher dispatcher =
Modified: incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/servlets/PageServlet.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/servlets/PageServlet.java?rev=426248&r1=426247&r2=426248&view=diff
==============================================================================
--- incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/servlets/PageServlet.java (original)
+++ incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/servlets/PageServlet.java Thu Jul 27 14:21:45 2006
@@ -44,6 +44,7 @@
import org.apache.roller.ui.rendering.RendererManager;
import org.apache.roller.ui.rendering.model.ModelLoader;
import org.apache.roller.ui.rendering.util.SiteWideCache;
+import org.apache.roller.ui.rendering.util.WeblogEntryCommentForm;
import org.apache.roller.ui.rendering.util.WeblogPageCache;
@@ -274,6 +275,13 @@
initData.put("pageRequest", pageRequest);
initData.put("weblogRequest", pageRequest);
initData.put("pageContext", pageContext);
+
+ // if this was a comment posting, check for comment form
+ WeblogEntryCommentForm commentForm =
+ (WeblogEntryCommentForm) request.getAttribute("commentForm");
+ if(commentForm != null) {
+ initData.put("commentForm", commentForm);
+ }
// Load models for pages
String pageModels = RollerConfig.getProperty("rendering.pageModels");
Added: incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/util/WeblogEntryCommentForm.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/util/WeblogEntryCommentForm.java?rev=426248&view=auto
==============================================================================
--- incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/util/WeblogEntryCommentForm.java (added)
+++ incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/util/WeblogEntryCommentForm.java Thu Jul 27 14:21:45 2006
@@ -0,0 +1,130 @@
+/*
+ * 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.ui.rendering.util;
+
+import org.apache.roller.pojos.CommentData;
+import org.apache.roller.pojos.WeblogEntryData;
+import org.apache.roller.pojos.wrapper.CommentDataWrapper;
+import org.apache.roller.pojos.wrapper.WeblogEntryDataWrapper;
+
+
+/**
+ * A simple class to represent the comment form displayed on a weblog entry
+ * permalink page. We use this class to manage the interaction with that form.
+ */
+public class WeblogEntryCommentForm {
+
+ private boolean error = false;
+ private String message = null;
+
+ private String name = "";
+ private String email = "";
+ private String url = "";
+ private String content = "";
+ private boolean notify = false;
+
+ private CommentData previewComment = null;
+
+
+ public WeblogEntryCommentForm() {}
+
+
+ public void setPreview(CommentData preview) {
+ this.previewComment = preview;
+ setData(preview);
+ }
+
+ public void setData(CommentData comment) {
+ this.name = comment.getName();
+ this.email = comment.getEmail();
+ this.url = comment.getUrl();
+ this.content = comment.getContent();
+ this.notify = comment.getNotify().booleanValue();
+ }
+
+ public void setError(String errorMessage) {
+ this.error = true;
+ this.message = errorMessage;
+ }
+
+ public CommentDataWrapper getPreviewComment() {
+ return CommentDataWrapper.wrap(previewComment);
+ }
+
+ public boolean isPreview() {
+ return (this.previewComment != null);
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getEmail() {
+ return email;
+ }
+
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+ public String getUrl() {
+ return url;
+ }
+
+ public void setUrl(String url) {
+ this.url = url;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public boolean isNotify() {
+ return notify;
+ }
+
+ public void setNotify(boolean notify) {
+ this.notify = notify;
+ }
+
+ public boolean isError() {
+ return error;
+ }
+
+ public void setError(boolean error) {
+ this.error = error;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+}
Modified: incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/velocity/deprecated/ContextLoader.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/velocity/deprecated/ContextLoader.java?rev=426248&r1=426247&r2=426248&view=diff
==============================================================================
--- incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/velocity/deprecated/ContextLoader.java (original)
+++ incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/velocity/deprecated/ContextLoader.java Thu Jul 27 14:21:45 2006
@@ -37,8 +37,6 @@
import org.apache.roller.config.RollerRuntimeConfig;
import org.apache.roller.model.Roller;
import org.apache.roller.model.RollerFactory;
-import org.apache.roller.model.UserManager;
-import org.apache.roller.model.WeblogManager;
import org.apache.roller.pojos.CommentData;
import org.apache.roller.pojos.FolderData;
import org.apache.roller.pojos.RollerPropertyData;
@@ -50,14 +48,11 @@
import org.apache.roller.pojos.wrapper.TemplateWrapper;
import org.apache.roller.pojos.wrapper.WeblogEntryDataWrapper;
import org.apache.roller.pojos.wrapper.WebsiteDataWrapper;
-import org.apache.roller.ui.authoring.struts.formbeans.CommentFormEx;
import org.apache.roller.ui.core.RollerContext;
import org.apache.roller.ui.core.RollerSession;
import org.apache.roller.ui.rendering.newsfeeds.NewsfeedCache;
-import org.apache.roller.ui.rendering.util.InvalidRequestException;
+import org.apache.roller.ui.rendering.util.WeblogEntryCommentForm;
import org.apache.roller.ui.rendering.util.WeblogPageRequest;
-import org.apache.roller.ui.rendering.util.WeblogRequest;
-import org.apache.roller.ui.rendering.util.WeblogSearchRequest;
import org.apache.roller.util.DateUtil;
import org.apache.roller.util.RegexUtil;
import org.apache.roller.util.URLUtilities;
@@ -308,10 +303,10 @@
ctx.put("autoformat", new Boolean(autoFormat) );
// Make sure comment form object is available in context
- CommentFormEx commentForm =
- (CommentFormEx) request.getAttribute("commentForm");
+ WeblogEntryCommentForm commentForm =
+ (WeblogEntryCommentForm) request.getAttribute("commentForm");
if ( commentForm == null ) {
- commentForm = new CommentFormEx();
+ commentForm = new WeblogEntryCommentForm();
// Set fields to spaces to please Velocity
commentForm.setName("");
@@ -322,12 +317,10 @@
ctx.put("commentForm",commentForm);
// Either put a preview comment in to context
- if ( request.getAttribute("previewComments")!=null ) {
+ if(commentForm.isPreview()) {
ArrayList list = new ArrayList();
- CommentData cd = new CommentData();
- commentForm.copyTo(cd, request.getLocale());
- list.add(CommentDataWrapper.wrap(cd));
- ctx.put("previewComments",list);
+ list.add(commentForm.getPreviewComment());
+ ctx.put("previewComments", list);
}
if (entry.getStatus().equals(WeblogEntryData.PUBLISHED)) {
Modified: incubator/roller/branches/roller_3.0/web/WEB-INF/velocity/deprecated/comments.vm
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/web/WEB-INF/velocity/deprecated/comments.vm?rev=426248&r1=426247&r2=426248&view=diff
==============================================================================
--- incubator/roller/branches/roller_3.0/web/WEB-INF/velocity/deprecated/comments.vm (original)
+++ incubator/roller/branches/roller_3.0/web/WEB-INF/velocity/deprecated/comments.vm Thu Jul 27 14:21:45 2006
@@ -84,35 +84,8 @@
* @param entry WeblogEntryData object for which comments are to be displayed.
*#
#macro( showComments $entry )
- <div class="comments" id="comments">
- #if( $previewComments )
- #set( $comments = $previewComments )
- <div class="comments-head">$text.get( "macro.weblog.preview" ):</div>
- #else
- <div class="comments-head">$text.get( "macro.weblog.comments" ):</div>
- #set($comments = $pageModel.getComments($entry))
- #end
- <br/>
- #foreach( $comment in $comments )
- <!-- comment: $comment.id -->
- #if($comment.approved || $previewComments)
- #set($content = $utilities.encodeEmail($comment.content))
- #if($escapeHtml)
- #set($content = $utilities.escapeHTML($content))
- #else
- #set($content = $utilities.transformToHTMLSubset($utilities.escapeHTML($content)))
- #end
- #if($autoformat)
- #set($content = $utilities.autoformat($content))
- #end
- #set($content = $utilities.addNofollow($content))
- <div class="comment" id="comment${velocityCount}">
- ${content}
- #showCommentDetails($comment true)
- </div>
- #end
- #end
- </div>
+ ## replaced by Roller 3.0 version
+ #showWeblogEntryComments($entry)
#end
#**
@@ -181,10 +154,19 @@
* @param entry WeblogEntry object for which form is to be shown.
*#
#macro( showCommentForm $entry )
+ #set($cform = $model.getCommentForm())
+
<div class="comments-form">
<div class="comments-head">$text.get("macro.weblog.postcommentHeader")</div><br/>
- #showStatusMessage()
+#if( $entry.commentsStillAllowed )
+
+ #if( $cform.error )
+ <span class="error">$cform.message</span>
+ #end
+ #if( !$cform.error && !$utils.isEmpty($cform.message) )
+ <span class="status">$cform.message</span>
+ #end
<form method="post" action="$url.entry($entry.anchor)" focus="name"
name="form" onsubmit="fixURL(this); return validateComments(this)">
@@ -198,25 +180,27 @@
<table cellspacing="0" cellpadding="1" border="0" width="95%">
<tr><th>$text.get( "macro.weblog.name" )</th>
- <td><input type="text" name="name" value="$commentForm.name" size="50" maxlength="255" /></td>
+ <td><input type="text" name="name" value="$cform.name" size="50" maxlength="255" /></td>
</tr>
<tr><th>$text.get( "macro.weblog.email" )</th>
- <td><input type="text" name="email" value="$commentForm.email" size="50" maxlength="255" /></td>
+ <td><input type="text" name="email" value="$cform.email" size="50" maxlength="255" /></td>
</tr>
<tr><th>$text.get( "macro.weblog.url" )</th>
- <td><input type="text" name="url" value="$commentForm.url" size="50" maxlength="255" /></td>
+ <td><input type="text" name="url" value="$cform.url" size="50" maxlength="255" /></td>
</tr>
- #if ($pageModel.emailComments)
+
+ #if ($config.getBooleanProperty("users.comments.emailnotify"))
<tr>
<td></td>
<td>
- <input type="checkbox" id="notify" name="notify" />
+ <input type="checkbox" id="notify" name="notify" #if($cform.notify)CHECKED #end/>
<label for="notify">$text.get( "macro.weblog.notifyMeOfComments" )</label>
</td>
</tr>
#end
+
<tr>
<td></td>
<td>
@@ -231,10 +215,10 @@
<tr><th style="text-align: left">$text.get( "macro.weblog.yourcomment" )</th></tr>
<tr>
<td>
- <textarea name="content" cols="50" rows="10">$commentForm.content</textarea><br />
+ <textarea name="content" cols="50" rows="10">$cform.content</textarea><br />
<span class="comments-syntax-indicator">
$text.get( "macro.weblog.htmlsyntax" )
- #if( $escapeHtml )
+ #if($config.getBooleanProperty("users.comments.escapehtml"))
<span class="disabled">$text.get( "macro.weblog.htmldisabled" )</span>
#else
<span class="enabled">$text.get( "macro.weblog.htmlenabled" )</span>
@@ -308,8 +292,14 @@
}
}
</script>
+
+#else
+ <span class="status">$text.get( "comments.disabled" )</span>
+#end
+
</div>
#end
+
#**
* Display hidden comment form for a weblog entry.
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=426248&r1=426247&r2=426248&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 Thu Jul 27 14:21:45 2006
@@ -149,21 +149,19 @@
*#
#macro(showWeblogEntryComments $entry)
<a name="comments"></a>
- <div class="comments">
+ <div class="comments" id="comments">
- #if($model.commentPreview)
- #set($comments = [$model.commentPreview])
+ #if($model.commentForm.preview)
+ #set($comments = [$model.commentForm.previewComment])
<div class="comments-head">$text.get( "macro.weblog.preview" ):</div>
#else
<div class="comments-head">$text.get( "macro.weblog.comments" ):</div>
- #set($entry = $map.getValues().get(0))
#set($comments = $entry.getComments(true, true))
#end
<br/>
#foreach( $comment in $comments )
- <!-- comment: $comment.id -->
- #if($comment.approved || $commentPreview)
+ #if($comment.approved || $model.commentForm.preview)
#set($content = $utils.encodeEmail($comment.content))
#if($config.getBooleanProperty("users.comments.escapehtml"))
#set($content = $utils.escapeHTML($content))
@@ -176,27 +174,25 @@
#set($content = $utils.addNofollow($content))
<div class="comment#if($velocityCount % 2 == 0) even#else odd#end" id="comment${velocityCount}">
- #if ($content.startsWith("<p>")) #set ($content = $content.substring(3)) #end
- <strong>${velocityCount}.</strong> ${content}
+
+ ${content}
$dateFormatter.applyPattern($text.get( "macro.weblog.datepattern" ))
<p class="comment-details">
$text.get("macro.weblog.postedby")
- #if (!$utils.isEmpty($comment.name) && !$utils.isEmpty($comment.remoteHost))
- <b>$comment.name</b> ($comment.remoteHost)
+ #if (!$utils.isEmpty($comment.name) && !$utils.isEmpty($comment.url))
+ <a rel="nofollow" href="$comment.url"><b>$comment.name</b></a>
#elseif (!$utils.isEmpty($comment.name))
<b>$comment.name</b>
- #elseif (!$utils.isEmpty($comment.remoteHost))
+ #else
<b>$comment.remoteHost</b>
#end
$text.get("macro.weblog.on") $dateFormatter.format($comment.postTime)
- #if( $utils.isNotEmpty($comment.url) )
- $text.get( "macro.weblog.postedbywebsite", [$comment.url, $comment.url] )
- #end
<a href="$url.comment($entry.anchor, $velocityCount)"
class="entrypermalink"
title="$text.get( "macro.weblog.commentpermalink.title" )">#</a>
</p>
+
</div>
#end
@@ -214,15 +210,17 @@
<div class="comments-form">
<div class="comments-head">$text.get("macro.weblog.postcommentHeader")</div>
- #if( $model.errorMessage )
- <span class="error">$model.errorMessage</span>
+#if( $entry.commentsStillAllowed )
+
+ #if( $cform.error )
+ <span class="error">$cform.message</span>
#end
- #if( $model.statusMessage )
- <span class="status">$model.statusMessage</span>
+ #if( !$cform.error && !$utils.isEmpty($cform.message) )
+ <span class="status">$cform.message</span>
#end
- <form method="post" action="$url.entry($entry.anchor)"
- focus="name" name="form" onsubmit="fixURL(this); return validateComments(this)">
+ <form method="post" action="$url.entry($entry.anchor)" focus="name"
+ name="form" onsubmit="fixURL(this); return validateComments(this)">
<input type="hidden" name="method" value="post" />
<ul>
@@ -241,7 +239,7 @@
</li>
#if ($config.getBooleanProperty("users.comments.emailnotify"))
- <li><input type="checkbox" class="checkbox" id="notify" name="notify" />
+ <li><input type="checkbox" class="checkbox" id="notify" name="notify" #if($cform.notify)CHECKED #end/>
<label for="notify" class="choice">$text.get( "macro.weblog.notifyMeOfComments" )</label>
</li>
#end
@@ -322,6 +320,11 @@
}
}
</script>
+
+#else
+ <span class="status">$text.get( "comments.disabled" )</span>
+#end
+
</div>
#end