January 26, 2007

Review: Geeklog delivers a portal in a box

Author: Michael Stutz

It's called "The Ultimate Weblog System," and if you can shear off some of the hyperbole in that you'll find that the quick-to-install Geeklog does provide what it claims: a Web portal with all the trimmings, and all of it working right "out of the box."

The software's list of features is pretty thorough: user registration, story comments, plugins, themes, site statistics, calendar, CAPTCHA and other forms of spam checking, and support for trackbacks, pingbacks, and pings.

Geeklog gets its name from the now-defunct Security Geeks site, for which it was originally developed back around the turn of the century. The latest release (version 1.4.1) just came out on New Year's Eve, and requires PHP (4.1.0 or newer) and either MySQL (3.23.2 or newer) or Microsoft SQL Server.

Installation

Provided that you already know how to create a new SQL database (a process that is probably dependent on your Web host), you can be up and running with a Geeklog site in just a handful of minutes. The install is essentially downloading a copy of the Geeklog sources, unpacking them in your Web directory, chmoding some files, and then loading the Geeklog "install" page in your browser. The process is well documented on the Geeklog site, with a pre-install checklist to go over before you begin. There's also a troubleshooting section with common problems delineated clearly as either installation or post-installation problems.

The one potential gotcha in this whole process is that if your site's root isn't in a public_html directory, it's easy to unpack the Geeklog archive wrong so that all its config files are in your site root, while its root files are nested away in a new public_html directory. If you do that, you'll have to move all the files that Geeklog put in your root up a directory so they won't be Web-accessible, and then move everything from the new public_html up into your real site root. This strange directory shuffle will come back to haunt you later, when it comes time to install plugins. To avoid this problem, unpack the Geeklog archive just above your preexisting public_html directory -- after you've backed everything up, if you have a preexisting site.

Usage

But once everything's installed, loading your site in a browser shows a default setup that looks identical to the "real" Geeklog site -- even the docs/ directory is copied over and available locally.

At this point you have the skeleton of a huge portal site with a lot of features: a user poll, a list of who's online, user registration, links, comments, stories, trackbacks, places for static pages -- it's all "live" at this point, but as you'd expect, there's some necessary configuration to do.

The main configuration values are kept in a file called config.php. They includes the name of the site, its "slogan," and its menu bar links. The file is easily edited, and changes take effect immediately.

Geeklog admin console - click to enlarge

When you install Geeklog, you're given an "admin" user account. The admin account has access to a special section of the site that contains all the administrative actions, such as making polls and adding new entries ("stories") to the site.

It's possible to make a nice-looking layout for individual story entries, but doing anything fancy takes getting used to composing in the story editor. The choice of editor is configurable; Geeklog's default is to use Frederico Caldeira Knabben's popular FCKeditor Web board message editor, but it isn't configured to default to HTML, so if you plan to write your blog entries in hand-coded HTML, you'll have to add $_CONF['postmode'] = 'html' to your config.php file. Otherwise, posts are assumed to be plain text and any tags you use in your document will be inserted as literal body text, unless you select HTML at the bottom of the page -- which is easy to forget to do, especially if you're in a hurry.

Geeklog allows only certain tags by default, and uses the kses filter to strip other tags out of posts. By default, even admins can't use IMG tags. To include images in a story, you upload them from your local filesystem using the menus provided, and then reference them in the body of the story with [imageX] (where X is the number of the image associated with that story). The other image tags are [imageX_left] and [imageX_right], which give you some basic formatting options.

But if you use images in an entry, you can't view your story with the "preview" button; instead, you you have to save the story as a draft, and then preview the draft. If any of your images don't meet the height and width limitations (which are set by default to maximum width of 160 and height of 120), the post won't be accepted, but the editor doesn't warn you about this until after you click the "post" button.

Plugins

Geeklog has a few hundred add-ons and useful plugins that extend the base functionality, but installing them and getting them to work isn't a point-and-click operation. To use a plugin, you generally download a tar file, which contains a directory tree of plugin files, and uncompress it in the plugins subdirectory. You'll find an "admin" directory in there, which you have to rename to the name of the plugin and move it into the admin/plugins directory. This is a needlessly confusing step, and like the installation process, there's no reason why a simple shell script couldn't automate it.

But once you do successfully put all the files in place, the plugin automatically takes effect and is visible as soon as you reload your pages.

Themes and templates

Default Geeklog theme - click to enlarge

The theme you see when you start Geeklog is called "professional," and its template files (HTML and images) are kept in a directory of that name in the layouts directory. Making a new custom theme is a matter of copying that directory to a new one in layouts with the name you'd like to use for your theme, and then editing the template files.

The Geeklog site has some themes for download, but they're difficult to navigate as currently published -- you don't get a big visual directory view of them, and the only way to preview a theme before you download it is to click on a tiny icon, if it has one. There aren't nearly as many available themes as are available for some other Web-publishing systems, such as WordPress, Mambo, or Joomla.

You'll also notice that they're not really themes in the generic sense, because when you install them they sometimes come up with the names and logos of the sites that they were first built for. After browsing through enough of them, however, you get a sense that the layout doesn't really change much between Geeklog sites -- they're more a matter of colors and backgrounds.

But it's certainly possible to build a nice-looking site with Geeklog; one of the best is Iowa Outdoors, which is run by one of the Geeklog developers. You can also browse a directory of sites that use Geeklog, although it's a bit outdated. A search on the default slogan, "Another Nifty Geeklog Site," shows all the Geeklog sites that use the default values -- thousands of them.

Support

The amount of assistance available for Geeklog is pretty good. The support forums are fairly active. My setup questions were answered on the same day. Even questions on weekend off-hours were answered by a developer, usually in less than five minutes. There are also several mailing lists and an active IRC channel for help.

It's nice that a complete copy of the Web-based documentation is installed on your local installation, but you'll probably want to remove that directory from the live site. And while the installation docs are thorough, some of the actual usage documentation could use some polish. The procedure for installing plugins, for example -- a very basic and essential task -- is hidden away in the plugin API documentation, which in turn is labeled as being out of date. A newer, wiki-based "Geeklog Documentation Project" is just a start -- most of its pages are empty.

Overall impressions

Geeklog sites have a definite look and feel; don't count on breaking too far away from that. But if you like the look, you'll find little wrong with Geeklog. It keeps its promise of getting you up and started right away, and while there's a learning curve to get the "Geeklog way" of doing things, it's not that difficult -- and you get a lot of functionality out of the box.

Click Here!