Hi Dave,

I did originally try to supply a diff patch, but my local project has
a number of other edits and in the end it was easier to just copy &
paste the popup changes I made.  Hope that's ok.

Cheers,

Richard


On 19/12/06, Dave <[EMAIL PROTECTED]> wrote:
Hi Richard,

If possible, would you please send a diff patch. Assuming you have
clean workspace with only the changes you want to contribute, you can
create one by using the "svn diff" command like so:

   cd roller/trunk
   svn diff . > popup-comments.patch

- Dave



On 12/19/06, Richard Jones <[EMAIL PROTECTED]> wrote:
> Here you go...
>
> Edits are made to the following classes:
>
> org.apache.roller.ui.rendering.model.URLModel.java
> org.apache.roller.util.URLUtilities.java
> org.apache.roller.ui.rendering.util.WeblogPageRequest.java
> org.apache.roller.ui.rendering.util.WeblogPageCache.java
> org.apache.roller.ui.rendering.util.SiteWideCache.java
> org.apache.roller.ui.rendering.servlets.CommentServlet.java
>
> and the following macros:
>
> /WEB-INF/velocity/weblog.vm
> /WEB-INF/velocity/templates/popupcomments.vm
>
> >------------------------------------------------<
>
> org.apache.roller.ui.rendering.model.URLModel.java
>
> public String commentPopup(String anchor, String timeStamp) {
>         return URLUtilities.getWeblogCommentPopupURL(weblog, locale, anchor,
> timeStamp, true);
> }
>
> public String commentsPopup(String anchor) {
>         return URLUtilities.getWeblogCommentsPopupURL(weblog, locale,
> anchor, true);
> }
>
>
> >------------------------------------------------<
>
> org.apache.roller.util.URLUtilities.java
>
> /**
>  * Get url for a single weblog entry comments on a given weblog.
>  */
> public static final String getWeblogCommentsPopupURL(WebsiteData weblog,
>                                                     String locale,
>                                                     String entryAnchor,
>                                                     boolean absolute) {
>
>         return getWeblogEntryURL(weblog, locale, entryAnchor,
> absolute)+"?popup=true#comments";
> }
>
> /**
>  * Get url for a single weblog entry comment on a given weblog.
>  */
> public static final String getWeblogCommentPopupURL(WebsiteData weblog,
>                                                    String locale,
>                                                    String entryAnchor,
>                                                    String timeStamp,
>                                                    boolean absolute) {
>
>         return getWeblogEntryURL(weblog, locale, entryAnchor,
> absolute)+"?popup=true#comment-"+timeStamp;
> }
>
>
> >------------------------------------------------<
>
> org.apache.roller.ui.rendering.util.WeblogPageRequest.java
>
> private String weblogPopup = null;
>
> public String getWeblogPopup() {
>         return weblogPopup;
> }
>
> public void setWeblogPopup(String weblopPopup) {
>         this.weblogPopup = weblopPopup;
> }
>
> public WeblogPageRequest(HttpServletRequest request)
>             throws InvalidRequestException {
>
>         ...
>
>         } else if(pathElements.length == 2) {
>
>                 this.context = pathElements[0];
>                 if("entry".equals(this.context)) {
>                     this.weblogAnchor = URLUtilities.decode(pathElements[1]);
>
>                     if(request.getParameter("popup") != null) {
>                                 this.weblogPopup = 
request.getParameter("popup");
>                         }
>
>                 } else if("date".equals(this.context)) {
>
>         ...
>
> }
>
>
> >------------------------------------------------<
>
> org.apache.roller.ui.rendering.util.WeblogPageCache.java
>
> public String generateKey(WeblogPageRequest pageRequest) {
>
>         StringBuffer key = new StringBuffer();
>
>         key.append(this.CACHE_ID).append(":");
>         key.append(pageRequest.getWeblogHandle());
>
>         if(pageRequest.getWeblogAnchor() != null) {
>
>             String anchor = null;
>             try {
>                 // may contain spaces or other bad chars
>                 anchor =
> URLEncoder.encode(pageRequest.getWeblogAnchor(), "UTF-8");
>             } catch(UnsupportedEncodingException ex) {
>                 // ignored
>             }
>
>             key.append("/entry/").append(anchor);
>
>             if (pageRequest.getWeblogPopup() != null) {
>                 key.append("/popup");
>             }
>
>         } else {
>
>         ...
>
> }
>
>
> >------------------------------------------------<
>
> org.apache.roller.ui.rendering.util.SiteWideCache.java
>
>
> public String generateKey(WeblogPageRequest pageRequest) {
>
>         StringBuffer key = new StringBuffer();
>
>         key.append(this.CACHE_ID).append(":");
>         key.append("page/");
>         key.append(pageRequest.getWeblogHandle());
>
>         if(pageRequest.getWeblogAnchor() != null) {
>             String anchor = null;
>             try {
>                 // may contain spaces or other bad chars
>                 anchor =
> URLEncoder.encode(pageRequest.getWeblogAnchor(), "UTF-8");
>             } catch(UnsupportedEncodingException ex) {
>                 // ignored
>             }
>
>             key.append("/entry/").append(anchor);
>
>             if (pageRequest.getWeblogPopup() != null) {
>                 key.append("/popup");
>             }
>
>         } else {
>
>         ...
>
> }
>
>
> >------------------------------------------------<
>
> org.apache.roller.ui.rendering.servlets.CommentServlet.java
>
>
> public void doPost(HttpServletRequest request, HttpServletResponse response)
>             throws IOException, ServletException {
>
>         ...
>
>             // we know what the weblog entry is, so setup our urls
>             dispatch_url = "/roller-ui/rendering/page/"+weblog.getHandle();
>             if(commentRequest.getLocale() != null) {
>                 dispatch_url += "/"+commentRequest.getLocale();
>             }
>             dispatch_url +=
> "/entry/"+URLUtilities.encode(commentRequest.getWeblogAnchor());
>
>             if(request.getParameter("popup") != null) {
>                 if(dispatch_url.indexOf("?") == -1)
>                         dispatch_url += "?popup=true";
>                 else
>                         dispatch_url += "&popup=true";
>             }
>
>         ...
>
> }
>
>
> >------------------------------------------------<
>
> /WEB-INF/velocity/weblog.vm
>
> #macro(showWeblogEntryCommentForm $entry)
>
>         ...
>
>         <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" />
>
>         #if($model.getRequestParameter("popup"))
>         <input type="hidden" name="popup" value="true" />
>         #end
>
>         ...
>
> #end
>
> >------------------------------------------------<
>
> /WEB-INF/velocity/templates/popupcomments.vm
>
>
> #set($entry = $model.weblogEntry)
> <html xmlns="http://www.w3.org/1999/xhtml";>
> <head>
>     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
>     <title>$model.weblog.name :: $text.get("comments.title") ::
>         $utils.removeHTML($entry.title)
>     </title>
>     <script type="text/javascript"
>         src="$url.site/theme/scripts/roller.js"></script>
>     <link rel="stylesheet" type="text/css" media="all"
>          href="$url.site/themes/base.css" />
>     <style type="text/css">
>     body {
>         background-color: #FFFFFF;
>         background-image: none;
>         color: #000000;
>         font-family: verdana, sans-serif;
>         font-size: small;
>     }
>     h3 {
>         margin-left: auto;
>         margin-right: auto;
>         text-align: center;
>     }
>     #footer {
>         display: none;
>     }
>     th {
>         vertical-align: middle;
>         text-align: right;
>         padding-right: 5px;
>         font-size: 12px;
>     }
>     </style>
>     <!-- Edit your _css Page Template -->
>     <link rel="stylesheet" type="text/css"
>          href="$url.site/$model.weblog.handle/page/css" />
> </head>
> <body>
>
> <div class="commentTitle">
>     $utils.removeHTML($entry.title)
> </div>
>
> <div class="comments">
> #showWeblogEntryComments($entry)
> #showWeblogEntryCommentForm($entry)
> </div>
>
> </body>
> </html>
>
>
>
>
>
>
>
>
> On 19/12/06, Dave <[EMAIL PROTECTED]> wrote:
> > On 12/19/06, Richard Jones <[EMAIL PROTECTED]> wrote:
> > > Thanks Dave,
> > >
> > > I've done all the edits & testing to get popup comments working in
> > > 3.x, but it's using the same method as in 2.x - e.g. with the
> > > 'popup=true' parameter.  Let me know if you want me to post the edits
> > > so you can integrate in the 3.x branch.
> >
> > Yes, please do. I'd like to see those changes.
> > Please post a patch here on the list.
> >
> > - Dave
> >
> >
> >
> > >
> > > Cheers,
> > >
> > > Richard
> > >
> > >
> > >
> > > On 19/12/06, Dave <[EMAIL PROTECTED]> wrote:
> > > > I don't believe we'd done any testing on popup comments since we
> > > > re-worked the rendering system in 3.0. So, I would assume that they no
> > > > longer work. Personally, I'd like to be able to support them. I'd like
> > > > to find a way to do so without special code in the CommentServlet, but
> > > > I'm not absolutely sure that is possible.
> > > >
> > > > - Dave
> > > >
> > > >
> > > >
> > > > On 12/16/06, Richard Jones <[EMAIL PROTECTED]> wrote:
> > > > > Hi,
> > > > >
> > > > > I'm currently migrating this from 2.3 to 3.0 and have found that popup
> > > > > comments in Roller 3 no longer work.  Some of the popup comments code
> > > > > has been migrated to the new page system, so I'm not sure whether
> > > > > popup comments has been deliberately phased-out for this release or
> > > > > whether it should be there, and this is a bug - anyone?
> > > > >
> > > > > Thanks,
> > > > >
> > > > > Richard
> > > > >
> > > >
> > > >
> > >
> >
> >
>


Reply via email to