*/ if (!defined('DOKU_INC')) { die(); } class action_plugin_dwedit extends DokuWiki_Action_Plugin { var $ckgedit_loaded = false; var $helper; function __construct() { /* is either ckgdoku or ckgedit enabled, if so get a reference to the helper */ $list = plugin_list('helper'); if(in_array('ckgedit',$list)) { $this->ckgedit_loaded=true; $this->helper = plugin_load('helper', 'ckgedit'); } else if(in_array('ckgdoku',$list)) { $this->ckgedit_loaded=true; $this->helper = plugin_load('helper', 'ckgdoku'); } } function register(Doku_Event_Handler $controller) { $controller->register_hook('MENU_ITEMS_ASSEMBLY', 'AFTER', $this, 'addsvgbutton', array()); /* discontinued/deprecdated hooks */ $controller->register_hook('TEMPLATE_PAGETOOLS_DISPLAY', 'BEFORE', $this, 'dwedit_action_link', array('page_tools')); $controller->register_hook('TEMPLATE_DWEDITLINK_DISPLAY', 'BEFORE', $this,'dwedit_action_link', array('user')); } public function addsvgbutton(Doku_Event $event) { /* если это не страница ИЛИ ckgedit/ckgedoku не активна -> return */ if($event->data['view'] != 'page' || !$this->ckgedit_loaded) return; // получить имя кнопки из включенного в данный момент плагина ckg_* plugin $btn = $this->helper->getLang('btn_dw_edit'); if(!$btn) $btn = 'DW Edit'; array_splice($event->data['items'], -1, 0, [new \dokuwiki\plugin\dwedit\MenuItem($btn)]); } function dwedit_action_link(&$event, $param) { /* код идет сюда для протокола предыдущего пункта меню */ } }