Great news. Thanks for all your hard work Rick.

I'm very eager to try this out...now where did I put my bag of spare
time?

S.

On Nov 25, 4:33 pm, rick c <[email protected]> wrote:
> As you all know, one of the goals for Habari 0.7 is to implement
> taxonomy. One aspect of this is implementing tags as terms in a tags
> vocabulary. We've been working on this in a branch. It now seems to be
> at a usable state, so the changes were merged into trunk in r3829 and
> r3830. The code needs some love yet, but maybe with it in trunk, it
> will get more.
>
> As with all major updates, I'd recommend backing up your db before
> doing svn up. The update should be seamless, moving your tags and
> tag2post tables into the terms and object_terms tables respectively.
> The tags and tag2posts tables are *not* deleted. They are still in
> your database, but they are no longer registered.
>
> One unavoidable side effect of this change is that any plugins or
> themes that use direct access to the database to get tags will need to
> be updated to use the new table structure. In other words, until they
> are updated they will break. If the plugin or theme uses the api
> rather than direct database access, it should be okay. One possible
> common instance is
>
> $tags = DB::get_results( 'SELECT * FROM ' . DB::table('tags') );
>
> This will no longer work. Instead use
>
> $tags = Tags::get();
>
> More complex SQL will still require SQL. The new SQL will be more
> complex than what you are using now. General changes to look for are:
>
> {tags} should be {terms}
> {tag2post} should be {object_terms}
>
> Tags are now a vocabulary among many possible vocabularies, a
> vocabulary that is usually associated with the object type of 'post',
> so SQL will need to contain a WHERE clause that limits the output to
> terms associated with the vocabulary id for tags and associations
> limited to the object type id for post objects. If you look at the
> code in Posts::get() for retrieving posts based on tags, you'll see an
> example.
>
> Another point to keep in mind is that the terms equivalent for
> 'tag_text' is 'term_display', and the equivalent for 'tag_slug' is
> 'term', so unless you want to change your api, you'll need to return
> those fields with the old names. For example:
>
> SELECT term as tag_slug from {terms}
>
> One other change, we tried to make tags something that isn't limited
> to posts, so in the future, if this was done right, plugin authors
> will be able to tag other object types that may be added.
>
> Rick

-- 
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at http://groups.google.com/group/habari-dev

Reply via email to