Paginated Archives in Radiant CMS: The Power of Minimal But Extendable Systems 6

Posted by Rich Apodaca Wed, 07 Nov 2007 14:40:00 GMT

If you've ever needed to build a Website hosting mostly static content, you've probably tried out a few Content Management Systems. The problem is not finding them - there must be hundreds. The problem is finding one that successfully walks the fine line between being minimal (so that you can do things your way) and powerful (so that it can grow with your needs).

Radiant CMS is one of those systems. As an added bonus, it's written in Ruby and built on Rails. Radiant succeeds by focusing on the management of pages while providing a powerful extension mechanism.

The Website for my company, Metamolecular, will consist of content produced infrequently (product descriptions and documentation) intermingled with more frequently created blog-like content (updates, tutorials, responses to user questions). Traditionally, the CMS has handled the former, with blogging software handling the latter. But we needed a system that handled both well.

One of the distinguishing characteristics of blogs, as opposed to other kinds of websites, is the unusually large number of similar pages. Handling this kind of content requires pagination - the ability to break an archive up into a series of pages containing a smaller subset of the archive.

Although Radiant doesn't have the ability to paginate its content, it does have a wonderful system for creating extensions. I thought I'd give it a try.

The result is the Paginated Archive extension. It works as a drop-in replacement for Radiant's existing Archive Page. After placing the extension into your PROJECT_HOME/vendor/extensions directory, you'll be able to create and configure Paginated Archives for use with blogs and other kinds of sites generating large numbers of pages. The extension requires Bruce Williams' excellent Paginator gem.

You can get started by downloading the extension here.

Comments

Leave a response

  1. Hanjo Kim Sat, 10 Nov 2007 10:36:20 GMT

    Thank you for great information!

  2. Rich Apodaca Sat, 10 Nov 2007 15:37:37 GMT

    Hanjo, glad you liked it. If you get the extension to work, feel free to drop me a line. I'm looking for ways to improve it.

  3. Dusan Maliarik Tue, 01 Apr 2008 09:38:50 GMT

    I was looking at your extension, and I miss there one important thing -> caching. I solved it by def cache? ; false ; end

    but we want it cached! for performance, you know..

    I think actual state of ResponseCache doesn't allow to cache pages with params in url so you have to extend it some way..

    In fact I am creating an extension to show feed data from external feed URLs, a was trying to paginate the content somehow, and the only way to do this in radiant is to create new page type with caching disabled and radius tags handling "page" parameter in url

  4. allen@vo.lu Sat, 31 May 2008 06:11:50 GMT

    Rich,

    Looking back through your posts here, I'm wondering - are you using the Archive extension of Radiant for your blog, or SimpleLog?

    And is the Metamolecular site done entirely with Radiant, or is SimpleLog used as well?

    John Allen

  5. Rich Apodaca Sat, 31 May 2008 14:36:34 GMT

    Hello Allen, I'm using the Paginated Archive extension and the site is all Radiant. But if I knew then what I know now about SimpleLog, I would have used it for the Blog section instead. It's a far better solution.

  6. allen@vo.lu Sun, 01 Jun 2008 21:04:57 GMT

    Rich, Thanks for the information. John

Comments