register_hook('TPL_ACT_RENDER', 'BEFORE', $this, 'handle_act_render', array());
$controller->register_hook('RENDERER_CONTENT_POSTPROCESS', 'AFTER', $this, 'handle_renderer_content_postprocess', array());
}
/**
* Make sure the other toc is not printed
*/
function handle_act_render(&$event, $param) {
global $ID;
global $INFO;
if (p_get_metadata($ID, 'movetoc')) {
$INFO['prependTOC'] = false;
}
}
/**
* Replace our placeholder with the actual toc content
*/
function handle_renderer_content_postprocess(&$event, $param) {
global $TOC;
global $lang;
if ($TOC) {
$html = ''.$lang['toc'].'
'
. html_buildlist($TOC, 'intoc', array($this, 'html_list_intoc'))
. ' ';
$event->data[1] = str_replace('',
$html,
$event->data[1]);
}
}
/**
* Callback for html_buildlist.
* Builds list items with intoc printable class instead of dokuwiki's toc class which isn't printable.
*/
function html_list_intoc($item){
if(isset($item['hid'])){
$link = '#'.$item['hid'];
}else{
$link = $item['link'];
}
return ''. hsc($item['title']).'';
}
}