1c3437056SNickeau<?php 2c3437056SNickeau 3c3437056SNickeaurequire_once(__DIR__ . '/../ComboStrap/PluginUtility.php'); 4c3437056SNickeau 504fd306cSNickeauuse ComboStrap\Api\MetaManagerHandler; 6c3437056SNickeauuse ComboStrap\DataType; 704fd306cSNickeauuse ComboStrap\ExceptionCompile; 804fd306cSNickeauuse ComboStrap\ExecutionContext; 904fd306cSNickeauuse ComboStrap\Meta\Form\FormMeta; 1004fd306cSNickeauuse ComboStrap\Meta\Form\FormMetaField; 1104fd306cSNickeauuse ComboStrap\HttpResponseStatus; 12c3437056SNickeauuse ComboStrap\Identity; 13c3437056SNickeauuse ComboStrap\Json; 14c3437056SNickeauuse ComboStrap\LowQualityPageOverwrite; 1504fd306cSNickeauuse ComboStrap\MarkupPath; 16c3437056SNickeauuse ComboStrap\Message; 1704fd306cSNickeauuse ComboStrap\Meta\Api\Metadata; 1804fd306cSNickeauuse ComboStrap\Meta\Store\MetadataDokuWikiStore; 19c3437056SNickeauuse ComboStrap\MetadataFormDataStore; 20c3437056SNickeauuse ComboStrap\MetadataFrontmatterStore; 21c3437056SNickeauuse ComboStrap\MetadataStoreTransfer; 22c3437056SNickeauuse ComboStrap\MetaManagerForm; 23c3437056SNickeauuse ComboStrap\MetaManagerMenuItem; 24c3437056SNickeauuse ComboStrap\Mime; 25c3437056SNickeauuse ComboStrap\PluginUtility; 26c3437056SNickeauuse ComboStrap\QualityDynamicMonitoringOverwrite; 27c3437056SNickeau 28c3437056SNickeauif (!defined('DOKU_INC')) die(); 29c3437056SNickeau 30c3437056SNickeau/** 31c3437056SNickeau * 3204fd306cSNickeau * 33c3437056SNickeau */ 34c3437056SNickeauclass action_plugin_combo_metamanager extends DokuWiki_Action_Plugin 35c3437056SNickeau{ 36c3437056SNickeau 37c3437056SNickeau 38c3437056SNickeau public function register(Doku_Event_Handler $controller) 39c3437056SNickeau { 40c3437056SNickeau 41c3437056SNickeau /** 42c3437056SNickeau * Add a icon in the page tools menu 43c3437056SNickeau * https://www.dokuwiki.org/devel:event:menu_items_assembly 44c3437056SNickeau */ 4504fd306cSNickeau $controller->register_hook('MENU_ITEMS_ASSEMBLY', 'AFTER', $this, 'addMenuItem'); 46c3437056SNickeau } 47c3437056SNickeau 48c3437056SNickeau 4904fd306cSNickeau public function addMenuItem(Doku_Event $event, $param) 50c3437056SNickeau { 51c3437056SNickeau 52c3437056SNickeau if (!Identity::isWriter()) { 53c3437056SNickeau return; 54c3437056SNickeau } 55c3437056SNickeau 56c3437056SNickeau /** 57c3437056SNickeau * The `view` property defines the menu that is currently built 58c3437056SNickeau * https://www.dokuwiki.org/devel:menus 59c3437056SNickeau * If this is not the page menu, return 60c3437056SNickeau */ 61c3437056SNickeau if ($event->data['view'] != 'page') return; 62c3437056SNickeau 63c3437056SNickeau global $INFO; 64*70bbd7f1Sgerardnico $exists = $INFO['exists'] ?? null; 65*70bbd7f1Sgerardnico if (!$exists) { 66c3437056SNickeau return; 67c3437056SNickeau } 68c3437056SNickeau array_splice($event->data['items'], -1, 0, array(new MetaManagerMenuItem())); 69c3437056SNickeau 70c3437056SNickeau } 71c3437056SNickeau 72c3437056SNickeau 73c3437056SNickeau} 74