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