*/ // must be run within Dokuwiki if ( ! defined('DOKU_INC') ) { die(); } class action_plugin_childrenpages extends DokuWiki_Action_Plugin { /** * Registers a callback function for a given event * * @param Doku_Event_Handler $controller */ public function register(Doku_Event_Handler $controller) : void { $controller->register_hook('MENU_ITEMS_ASSEMBLY', 'AFTER', $this, 'addMenuItem'); } /** * Add new items to the page menu * * @param Doku_Event $event */ public function addMenuItem(Doku_Event $event) : void { global $INFO; // Check that this method has been called in the expected context if ( $event->name !== 'MENU_ITEMS_ASSEMBLY' ) { $message = "Tabpage plugin error:"; $message .= "addMenuItem method should only be called by \"MENU_ITEMS_ASSEMBLY\" event"; $message .= ", but it has been called by \"$event->name\"."; throw new Exception($message); } // Only add content to the page menu if ( $event->data['view'] !== 'page' ) { return; } // Only add links if the current page is not included in a namespace if ( ! empty($INFO['namespace']) ) { return; } trigger_error('addMenuItem() not implemented in '.get_class($this), E_USER_WARNING); } }