Skip to main content

Blojsom: Configuring a Community Blog with the Internal Aggregator Plugin

I have been having hard time modifying Blojsom's templates to get the Internal Aggregator plug-in to work. I wish there were a concrete example or a tutorial for me to follow. Today I googled again after a desperate fight with Blojsom and fortunately came across Todd Slater's posting.

Mr. Slater posted his working copy of the template files. I downloaded, put it in to the template folder right away. And...it works!

I'll be studying how he wrote the template very soon. But in the mean time, thank you very much Mr. Slater!

Keywords: , , ,


Update: Jan 5, 07

Here's the difference between my asual-entry.vm and Mr. Slater's:

Mine looks like this:

#macro(multiBlogFriendlyPermalink $entry) macro definition at the top of the file.
#macro(multiBlogFriendlyPermalink $entry)
  #set ($categoryForEntry =
    $entry.getBlogCategory().getCategory())
  #if ($categoryForEntry == "/")
    #set($categoryForEntry = "")
  #end
  #set ($entryLink =
    $entry.getMetaData().get(
      "BLOJSOM_PLUGIN_INTERNAL_AGGREGATOR_BLOG_URL")
    $categoryForEntry$entry.getDateAsFormat("yyyy")/
    $entry.getDateAsFormat("MM")/
    $entry.getDateAsFormat("dd")/
    $entry.getPermalink()")
#end

Then
#multiBlogFriendlyPermalink($entry)
#set($permalink = $entryLink)
...
<a href="$entryLink">
...


Mr. Slater chose not to use the macro and his code looks like this:
<a href="$entry.getMetaData().get(
    "BLOJSOM_PLUGIN_INTERNAL_AGGREGATOR_BLOG_URL")
$categoryForEntry$entry.getDateAsFormat("yyyy")/
$entry.getDateAsFormat("MM")/$entry.getDateAsFormat("dd")/
$entry.getPermalink()")">

Mine doesn't work but Mr. Slater's works. So I guess there must be something wrong with this rather complicated use of macro. Perhaps, it is the limitation of Velocity which is the template engine used by Blojsom. It is most likely that the #set assignment breaks when it has a very long right-hand-side argument. I removed calls to the multiBlogFriendlyPermalink macro and now use Mr. Slater's style. It works!


Update: Jan 6, 07

I looked at Mr. Slater's code and saw references to the $categoryForEntry variable. I can't find any #set($categoryForEntry = ...) assignment in his code, which oppose mine being defined in the #macro(multiBlogFriendlyPermalink $entry) macro definition. Therefore, $categoryForEntry must be a predefined variable, I think.

I finally found its definition in Blojsom source folders. $categoryForEntry is defined in plugins/src/org/blojsom/plugin/admin/templates/
admin-macros.vm
and plugins/src/org/blojsom/plugin/
velocity/page-macros.vm
. It is deployed at the same paths inside WEB-INF/lib/blojsom-plugins-templates-2.32.jar.

Comments

Popular posts from this blog

A Thought on a Reasoner-enabled Version of Del.icio.us (and perhaps Technorati)

I have been adding more bookmarks to my del.icio.us account and have begun tagging them with RDF-like object/datatype properties. Adding more and more object/datatype properties to the bookmark, a provoking thought popped up: It would be nice if tagging can be assisted by ontologies and a logic reasoner. Look at del.icio.us/thitiv . The _hasAffilication:CUPhoto property should be a subproperty of _hasAffiliation:Chula (provided that CUPhoto stands for Chula Photo Club .) Also, aticles on 'tagging' are subclass of articles on 'metadata'. But articles on 'metadata' are not essentially the articles on 'tagging'. 'Friends' versus 'people' is also another example. Bookmarks about my friends are of course bookmarks about people. But not all the people I know or found on the Internet (through search engines) are my friends. Ontology-assisted tagging sounds promising to solve this problem. In principle, this problem is partly related to...

"Microsoft.ACE.OLEDB.12.0 provider is not registered on the local machine" Error on Windows 7 (64-bit) + Office 2010 (64-bit) + Visual Studio 2010

If you use (1) Windows 7 (64-bit), and (2) Office 2010 (64-bit), and  (3) Visual Studio 2010 to write an ASP.NET code to connect to Access or Excel database using the Microsoft.ACE.OLEDB.12.0 provider and consistently get the "Microsoft.ACE.OLEDB.12.0 provider is not registered on the local machine" error, try installing the 2007 Office System Driver: Data Connectivity Components , which is basically a Microsoft Access Database Engine 2007 Redistributable for Windows (32-bit) from http://www.microsoft.com/download/en/details.aspx?id=23734 Many forums suggested by Google Search suggest installing the Microsoft Access Database Engine 2010 Redistributable for Windows (32-bit, 64-bit) downloadable from http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=13255 but it wouldn't help because Visual Studio 2010 is a 32-bit application; what you need is a 32-bit Data Connectivity component. The 2010 download will not allow you to install i...

Tips: Mac OS X: Full ANSI Color Support in Terminal.app

I'm trying to switch my Java development platform from Windows XP to Mac OS X Tiger. Wondering how to colorize the Terminal screen, I spent some time googling. From the discussions at the end of this page: macosxhints.com - Add full ANSI color support to Terminal.app Here's a summary of how to enable it: With bash shell as default, simply add export TERM=xterm-color [I prefer this for Linux compatibility] or export TERM=dtterm in the ~/.profile (single-user) or /etc/profile (system-wide) Color terminal is enabled. Use ' ls -G ' (the -G enables color output) to test. Add alias ls='ls -G' in the profile file for convenience. Keywords: mac-os-x , unix , terminal , shell , tips