Announcing PHP Tag Engine

PHP Tag Engine is a PHP library that makes it easy to add tagging to a PHP application.

PHP Tag Engine

Some of the features include:

  • Full AJAX front-end.
  • Easy integration into existing applications.
  • Built-in support for the Yahoo! Auto-Complete library.
  • Built-in cache to minimize database queries.
  • Fully documented in PHP Doc format.

This is, of course, what is powering the new tagging feature in Tasks Pro™ and Tasks.

I’ve started using more open source libraries in Tasks Pro™ and Tasks. This biggest one I’m using is the ADOdb library that allowed me to easily add support for PostgreSQL and MS SQL Server to my existing MySQL support, however I’m also using the excellent Feed Creator class as well as distributing a slightly modified version of PHP iCalendar as a viewer for the Tasks Pro™ and Tasks iCalendars. So when I was thinking about how best to implement tagging in Tasks Pro™ and Tasks, I saw an opportunity to contribute back to the community. OSCON seemed like a good time to officially release.

For those paying close attention, this is the project I started back in March.

I’ve set up a Trac site and SVN repository for the project at phptagengine.com. This is hosted on TextDrive, and many kudos go out to the great folks there that helped me get everything set up and working.

Trac is exactly what I wanted for this project: a wiki, web SVN interface and integrated bug tracking system. However, Trac is not the friendliest of tools to configure and the good folks at TextDrive were very helpful.

One of the interesting things (to me) about Trac is that there is no built-in user system. It can either use your system users, or it can authenticate against a MySQL database using mod_auth_mysql. We used the latter, authenticating against a WordPress install that I set up to allow people to register themselves.

Once registered, they can log in to Trac and be able to edit the wiki and create tickets. This isn’t quite as smooth as I’d like it to be, but I’m just glad it works at all at this point. ;) Many thanks to Matt for his advice on this subject.

The httpd.conf settings for making Trac authenticate against the WordPress user database (using mod_auth_mysql) are as follows:

<Location /login>
AuthName "PHP Tag Engine"
AuthType Basic
AuthMySQLHost localhost
AuthMySQLUser your-mysql-username
AuthMySQLPassword your-mysql-password
AuthMySQLDB your-mysql-database-name
AuthMySQLUserTable wp_users
AuthMySQLNameField user_login
AuthMySQLPasswordField user_pass
AuthMySQLMD5Passwords On
Require valid-user
</Location>

Hopefully this will be helpful to the next person who wants to allow folks to register themselves for a Trac installation.

Oh, and there is another OS tagging library for PHP called FreeTag. If it had launched (or I’d been able to find it) a little earlier, I’d probably have extended it instead of building my own. Unfortunately, by the time I found out about it PHP Tag Engine was almost feature complete.

This post is part of the following projects: Tasks Pro™, PHP Tag Engine. View the project timelines for more context on this post.