diff options
author | Andreas Gohr <andi@splitbrain.org> | 2007-01-20 01:27:31 +0100 |
---|---|---|
committer | Andreas Gohr <andi@splitbrain.org> | 2007-01-20 01:27:31 +0100 |
commit | c327d6c4ca39da52e40a5bf854f4223f32f12196 (patch) | |
tree | 67da65f2df34616635ce7f384f33839c9c2210af /inc/parserutils.php | |
parent | 863befa13c43cdca8f33d5c6bd0b05f7a7618214 (diff) | |
download | rpg-c327d6c4ca39da52e40a5bf854f4223f32f12196.tar.gz rpg-c327d6c4ca39da52e40a5bf854f4223f32f12196.tar.bz2 |
Some renderer plugin updates
The namingscheme for renderer plugins now matches the other types, the plugin
manager now returns info on renderer plugins, too
darcs-hash:20070120002731-7ad00-fcea93a6a6da807103b6aa82d6472196125cb3ec.gz
Diffstat (limited to 'inc/parserutils.php')
-rw-r--r-- | inc/parserutils.php | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/inc/parserutils.php b/inc/parserutils.php index 2c38e88a0..b5dbce4dd 100644 --- a/inc/parserutils.php +++ b/inc/parserutils.php @@ -513,25 +513,27 @@ function p_sort_modes($a, $b){ function p_render($mode,$instructions,& $info){ if(is_null($instructions)) return ''; - // Create the renderer - $file = DOKU_INC.'lib/plugins/'.$mode.'/renderer.php'; - if(!@file_exists($file)){ - $file = DOKU_INC."inc/parser/$mode.php"; - } - if(!@file_exists($file)){ - msg("No renderer for $mode found",-1); - return null; - } - require_once $file; + // try default renderer first: + $file = DOKU_INC."inc/parser/$mode.php"; + if(@file_exists($file)){ + require_once $file; + $rclass = "Doku_Renderer_$mode"; - $rclass = "Doku_Renderer_$mode"; - if ( !class_exists($rclass) ) { - trigger_error("Unable to resolve render class $rclass",E_USER_WARNING); - msg("Renderer for $mode not valid",-1); - return null; + if ( !class_exists($rclass) ) { + trigger_error("Unable to resolve render class $rclass",E_USER_WARNING); + msg("Renderer for $mode not valid",-1); + return null; + } + $Renderer = & new $rclass(); + }else{ + // Maybe a plugin is available? + $Renderer =& plugin_load('renderer',$mode); + if(is_null($Renderer)){ + msg("No renderer for $mode found",-1); + return null; + } } - $Renderer = & new $rclass(); #FIXME any way to check for class existance? $Renderer->smileys = getSmileys(); $Renderer->entities = getEntities(); |