Blogroll listing moved to its own page

We’ve recently completed a significant functionality change for the sites. In the past, our Blogroll has been displayed as a block of text on the main page. The Blogroll can be a relatively uninteresting if obligatory feature, one that generates little traffic or ad click-throughs. For these reasons we thought it best to get it off the front page and thus free up that prime real-estate for other higher value-adding features.

To do so entailed some desirable but significant under-the-hood changes to the architecture of page processing.  Before now the main page has been the only page the site actually generated.  So a single page generating algorithm has been developed.  Code written to generate a page dedicated to the Blogroll should be capable of generating just about any page of data, whether static text or dynamically generated on-the-fly-from-the-database pages.

In addition to auto-generating the blogroll page, we wanted to retain the flexibility to have the same page name generate a site-specific page, using site and page-specific attributes.  To do this mod_perl handlers were created, one each for the <head> section, the header section at the top of each page, the main body of content, a footer section at the bottom of each page, and lastly a page-rendering handler that assembles all the previously generated content and sends it to the browser.

Along the way to these results several database tables had to be augmented to allow the site and page attributes to be specified for the exceptional, non-standard pages and a new table was created for accommodating HTML tags that could have a variable number of attributes.  This was not strictly necessary for dynamically generating the blogroll but it made for much cleaner code, eliminated a series of one-off code exceptions, and allowed for tags to be added to the head section without altering the code at all.  All of which we consider to be big wins.

Next we’ll be integrating this new approach by making the default home pages use it.  The key challenge this presents is to allow the “suggestblog” functionality to continue working.  Once this is completed new “about” and “privacy” pages will be added, and a page footer will be standardized using the new footer handler. A dynamic website is a continuous work in progress.

Leave a Reply