Blogging on Plone

Let’s be clear that I’m not going to win any python programming competitions but I love Plone and wanted to try my hand at a blog. Sure, it means running the risk of analyzing navel lint but it’s also a potentially easy way to publish frequent content. I started by looking at some Zope blog products and thought that I’d found a solution with the Collective’s CMF Weblog.

That was after I had installed PA Blog but not had any success in getting it to work correctly.  The CMF Weblog,was clunky – it didn’t quite fit into the Plone – but at least I could add content and I was even able to customize the Weblog document type so that new posts were reflected on the Calendar Slot.  It installed without any problem and I was able to tweak the interface to sit better within my site.

But I could not get the Title to pick up – and, as I said, at some point I had to decide to go with a slightly broken CMF Weblog or find another solution.  So I started to think about how I could do this more simply.  Let me say that I don’t mean to cast aspersions on either product – PA Blog wasn’t intended for Plone and CMF Weblog hadn’t even reached version 1.0 – and it’s likely that user error was the prime reason my attempts with those products stalled.

One of the things I have learned with Plone is that you can do an awful lot with the topics and new document types.  I’ve created a tolerable job bank using the same mixture.  Is it the best way?  Perhaps not.  But here’s how I’ve added a blog to my site without using any additional products beyond base Plone:

  1. Added a document type (called DBlog Item) that was an exact copy of the News item;
  2. Copied the topic_view page template from portal_skins/zpt_topic so I had a custom topic template.  Since I don’t like the topic look anyway (the table that has four columns and stretches across the screen), I reformatted it to handle my blog, with a colored title, date, description, and then a jump link over to the full log post.

This is the basic functionality of the News item, but I set the topic’s criteria to pull just the DBlog Item.  I also customized the topic_view template to limit the blog to 5 posts per page, to include the navigation bar at top/bottom of the blog pages to see the other posts, and did some extra formatting.  I created a topic called “blog” that has two criteria:

  1. Type = DBlog item
  2. Date = Sort Descending

To avoid having the blog relegated just to the top navigation bar slots and down in the site, I copied my already-custom News slot and made a new Topic slot.  A few minor changes – to look for DBlog Item instead of News, to restrict the pull to 5 posts, and a bit more formatting to diminish the size of each listing in the slot – and I was able to put the Blog slot in the main template.

About the same time, I was playing with links, and decided to use the same custom topic_view format for links as well.  The topics for the links used criteria that said (a) give me all links where (b) content=keywords, and the keywords are the metadata that I’ve set for each link document.  That worked pretty well, except that the topic_view was set for News/DBlog documents, and so there was a jump link to a full-text document – which doesn’t exist for a link document.  This problem was eliminated when I put in a conditional span to check for a “remote URL” – if there is, then it shows a clickable link to the URL in the link document.  If there isn’t, it treats it like a normal News item and prints a link to the full-text document.

So now I’ve got a “blog”, a bit snazzier topic view, and I had a bit of fun fooling around with how the topic gathers up content.

David Whelan

I improve information access and lead information teams. My books on finding information and managing it and practicing law using cloud computing reflect my interest in information management, technology, law practice, and legal research. I've been a library director in Canada and the US, as well as directing the American Bar Association's Legal Technology Resource Center. I speak and write frequently on information, technology, law library, and law practice issues.