|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch primarily updates p_cached_xhtml() and p_cached_instructions() to
allow their caching logic to be surrounded by an event trigger.
p_cached_xhtml() has been rewritten as the more general p_cached_output() to
support other render output formats besides 'xhtml'. All calls to
p_cached_xhtml() have been changed to refer to the new function.
New event:
name: PARSER_CACHE_USE
data: cache object (see below)
action: determine if cache file can be used
preventable: yes
result: bool, true to use cache file, false otherwise
Cache operations have been generalised in a new class, cache, extended to
cache_parser, cache_renderer & cache_instructions. Details can be found in
inc/cache.php
For handling of above event, key properties are:
- page, if present the wiki page id,
may not always be present, e.g. when called for locale xhtml files
- file, source file
- mode, renderer mode (e.g. 'xhtml') or 'i' for instructions
Other changes:
- cache class counts cache hits against attempts, results are stored in
{cache_dir}/cache_stats.txt
- adds metadata dependency to renderer page cache
- replaces purgefile dependency for renderer cache with metadata
'relation references' (internal link) dependency for wiki pages only
darcs-hash:20060911021418-9b6ab-19601ed194b8c8e45236ab72c3e23d78bf777e6c.gz
|
|
This patch adds events and a third plugin type, "action" plugins, to DokuWiki.
The patch doesn't include any event signalling, that will be added in later patches.
Action plugins are loaded before most Dokuwiki processing takes place and at the
same time are given the opportunity to register handlers (or hooks) to receive
specific dokuwiki events.
Other parts of Dokuwiki (e.g. templates and syntax plugins) can also register
handlers to receive events.
Any part of Dokuwiki can create and signal events, including templates and plugins.
This patch also revises the admin plugin class by making it an extension of a
new class, DokuWiki_Plugin. The DokuWiki_Plugin_Action class also extends this
new class.
Further details of events, their signalling and handling, and of action plugins will
be added to wiki.splitbrain.org in due course :-)
darcs-hash:20060414193737-9b6ab-f23d3d9b93e4c50a3ad97ced03eabc6c0363650b.gz
|