1*04fd306cSNickeau<?php 2*04fd306cSNickeau 3*04fd306cSNickeauuse ComboStrap\BacklinkMenuItem; 4*04fd306cSNickeauuse ComboStrap\Event; 5*04fd306cSNickeauuse ComboStrap\FileSystems; 6*04fd306cSNickeauuse ComboStrap\Identity; 7*04fd306cSNickeauuse ComboStrap\LinkMarkup; 8*04fd306cSNickeauuse ComboStrap\Meta\Store\MetadataDokuWikiStore; 9*04fd306cSNickeauuse ComboStrap\Mime; 10*04fd306cSNickeauuse ComboStrap\MarkupPath; 11*04fd306cSNickeauuse ComboStrap\PagePath; 12*04fd306cSNickeauuse ComboStrap\PluginUtility; 13*04fd306cSNickeauuse ComboStrap\Reference; 14*04fd306cSNickeauuse ComboStrap\References; 15*04fd306cSNickeau 16*04fd306cSNickeau 17*04fd306cSNickeaurequire_once(__DIR__ . '/../ComboStrap/PluginUtility.php'); 18*04fd306cSNickeau 19*04fd306cSNickeau/** 20*04fd306cSNickeau * Handle the slot manager menu item 21*04fd306cSNickeau */ 22*04fd306cSNickeauclass action_plugin_combo_slotmanagermenuitem extends DokuWiki_Action_Plugin 23*04fd306cSNickeau{ 24*04fd306cSNickeau 25*04fd306cSNickeau 26*04fd306cSNickeau const CANONICAL = "edit-page-menu"; 27*04fd306cSNickeau 28*04fd306cSNickeau 29*04fd306cSNickeau public function register(Doku_Event_Handler $controller) 30*04fd306cSNickeau { 31*04fd306cSNickeau 32*04fd306cSNickeau 33*04fd306cSNickeau /** 34*04fd306cSNickeau * Add a icon in the page tools menu 35*04fd306cSNickeau * https://www.dokuwiki.org/devel:event:menu_items_assembly 36*04fd306cSNickeau */ 37*04fd306cSNickeau $controller->register_hook('MENU_ITEMS_ASSEMBLY', 'AFTER', $this, 'addMenuItem'); 38*04fd306cSNickeau 39*04fd306cSNickeau 40*04fd306cSNickeau } 41*04fd306cSNickeau 42*04fd306cSNickeau function addMenuItem(Doku_Event $event, $param) 43*04fd306cSNickeau { 44*04fd306cSNickeau 45*04fd306cSNickeau 46*04fd306cSNickeau if (!Identity::isWriter()) { 47*04fd306cSNickeau return; 48*04fd306cSNickeau } 49*04fd306cSNickeau 50*04fd306cSNickeau /** 51*04fd306cSNickeau * The `view` property defines the menu that is currently built 52*04fd306cSNickeau * https://www.dokuwiki.org/devel:menus 53*04fd306cSNickeau * If this is not the page menu, return 54*04fd306cSNickeau */ 55*04fd306cSNickeau if ($event->data['view'] != 'page') return; 56*04fd306cSNickeau 57*04fd306cSNickeau $menuItems = &$event->data["items"]; 58*04fd306cSNickeau foreach ($menuItems as $key => $menuItem) { 59*04fd306cSNickeau if ($menuItem instanceof \dokuwiki\Menu\Item\Edit) { 60*04fd306cSNickeau array_splice($menuItems, $key + 1, 0, [new \ComboStrap\SlotManagerMenuItem()]); 61*04fd306cSNickeau break; 62*04fd306cSNickeau } 63*04fd306cSNickeau } 64*04fd306cSNickeau 65*04fd306cSNickeau 66*04fd306cSNickeau } 67*04fd306cSNickeau 68*04fd306cSNickeau 69*04fd306cSNickeau} 70*04fd306cSNickeau 71*04fd306cSNickeau 72*04fd306cSNickeau 73