Running 3.1 since release. I apologize if 3.1.1 or 4.0 will trivialize my question; I haven't had time to look at either closely, though I do lurk on the dev list.

I use prototype's Ajax.Updater to drop a teaser for the latest entry in our blog on our home page, using a custom template that produces the appropriate HTML fragment. I'm now looking at adding more links into the blog using similar techniques, and my current task has required a code change to Roller. I spent several hours poring over source code and trying different approaches, but I wasn't able to come up with a satisfactory alternative. I thought I'd ask if there was a better way.

My objective is to associate tags with (non-Roller) pages on our site, and incorporate links to recent blog entries with those tags. For example, if a blog entry refers to a brand of products we sell, it will be tagged with the name of the brand, and I'd like to display a link to it on the page for that brand, which will be associated with the same tag. There doesn't seem to be any way to get a list of tagged entries from a custom page. For about two seconds, I considered using performing an XSL transformation on a tag filtered RSS feed.

In the end I either needed a $model.getWeblogEntriesPager signature that takes a tags list, which I could then send down as a request parameter (though not with the name "tags", since Roller inexplicably removes reserved keys from the request parameter map), or else I needed WeblogPageRequest to make use of the "tags" parameter, which it seems to me it should do anyway, with the simple diff below.
Index: src/org/apache/roller/ui/rendering/util/WeblogPageRequest.java
===================================================================
--- src/org/apache/roller/ui/rendering/util/WeblogPageRequest.java      
(revision 532241)
+++ src/org/apache/roller/ui/rendering/util/WeblogPageRequest.java      
(working copy)
@@ -144,6 +144,10 @@
                    }
} else if("page".equals(this.context)) {
+                    String tagsString = request.getParameter("tags");
+                    if (tagsString != null) {
+ this.tags = Utilities.splitStringAsTags(URLUtilities.decode(tagsString)); + }
                    this.weblogPageName = pathElements[1];

                } else if("tags".equals(this.context)) {


Reply via email to