This is the historical archive of the now-inactive 'grubstreet' list.
Discussion on OpenGuides development has now moved to OpenGuides-Dev. Discussion on The Open Guide to London now takes place on OpenGuides-London.

Re: [grubstreet] CGI::Wiki simple metadata support

[prev] [thread] [next] [lurker] [Date index for 2003/2/23]

From: Kate L Pugh
Subject: Re: [grubstreet] CGI::Wiki simple metadata support
Date: 01:09 on 23 Feb 2003
Forgot to mention that the way the plugins will get hold of this data
is by providing an on_write method that'll get called every time
$wiki->write_node is called, with arguments like so:

  $plugin->on_write( node     => $node_name,
                     version  => $version_number,
                     content  => $content,
                     checksum => $checksum,
                     metadata => \%user_defined_metadata );

This will happen after the node data is all written, but before any
lock is released.  The user-defined metadata will already have been
stored in the backend but it is available here for you to do what you
will with it.

A plugin named, for example, CGI::Wiki::Plugin::Foo::Bar, will have
free read-write access to any/all tables in the wiki's storage backend
named like plugin_foo_bar* - for non-database backends if anyone ever
writes one, there can be a similar namespace protection.  So the
CGI:Wiki::Plugin::Location plugin might store all its doo-dads in the
'plugin_location_os_coords' table, for example.  This does mean that
plugin authors have to care about differences between databases, but
I'm strongly disinclined to try and invent a database-independent layer
to sit on top of CGI::Wiki::Store::Database and cope with all possible
imaginable circumstances.

Another plugin that I've put a small amount of thought into is one to
cope with a hierarchy of categories.

Does this API (and that of the very simple metadata stuff, which you
can take advantage of without writing a full plugin) make sense?
Comments gratefully received, since I'd like to release 0.20 ASAP and
move on to doing plugins.


Kake

-- 
grubstreet mailing list
http://london.openguides.org/old-list-archives/