xref: /plugin/combo/action/metamanager.php (revision 04fd306c7c155fa133ebb3669986875d65988276)
1c3437056SNickeau<?php
2c3437056SNickeau
3c3437056SNickeaurequire_once(__DIR__ . '/../ComboStrap/PluginUtility.php');
4c3437056SNickeau
5*04fd306cSNickeauuse ComboStrap\Api\MetaManagerHandler;
6c3437056SNickeauuse ComboStrap\DataType;
7*04fd306cSNickeauuse ComboStrap\ExceptionCompile;
8*04fd306cSNickeauuse ComboStrap\ExecutionContext;
9*04fd306cSNickeauuse ComboStrap\Meta\Form\FormMeta;
10*04fd306cSNickeauuse ComboStrap\Meta\Form\FormMetaField;
11*04fd306cSNickeauuse ComboStrap\HttpResponseStatus;
12c3437056SNickeauuse ComboStrap\Identity;
13c3437056SNickeauuse ComboStrap\Json;
14c3437056SNickeauuse ComboStrap\LowQualityPageOverwrite;
15*04fd306cSNickeauuse ComboStrap\MarkupPath;
16c3437056SNickeauuse ComboStrap\Message;
17*04fd306cSNickeauuse ComboStrap\Meta\Api\Metadata;
18*04fd306cSNickeauuse 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 *
32*04fd306cSNickeau *
33c3437056SNickeau */
34c3437056SNickeauclass action_plugin_combo_metamanager extends DokuWiki_Action_Plugin
35c3437056SNickeau{
36c3437056SNickeau
37c3437056SNickeau
38c3437056SNickeau
39c3437056SNickeau    public function register(Doku_Event_Handler $controller)
40c3437056SNickeau    {
41c3437056SNickeau
42c3437056SNickeau        /**
43c3437056SNickeau         * Add a icon in the page tools menu
44c3437056SNickeau         * https://www.dokuwiki.org/devel:event:menu_items_assembly
45c3437056SNickeau         */
46*04fd306cSNickeau        $controller->register_hook('MENU_ITEMS_ASSEMBLY', 'AFTER', $this, 'addMenuItem');
47c3437056SNickeau    }
48c3437056SNickeau
49c3437056SNickeau
50*04fd306cSNickeau    public function addMenuItem(Doku_Event $event, $param)
51c3437056SNickeau    {
52c3437056SNickeau
53c3437056SNickeau        if (!Identity::isWriter()) {
54c3437056SNickeau            return;
55c3437056SNickeau        }
56c3437056SNickeau
57c3437056SNickeau        /**
58c3437056SNickeau         * The `view` property defines the menu that is currently built
59c3437056SNickeau         * https://www.dokuwiki.org/devel:menus
60c3437056SNickeau         * If this is not the page menu, return
61c3437056SNickeau         */
62c3437056SNickeau        if ($event->data['view'] != 'page') return;
63c3437056SNickeau
64c3437056SNickeau        global $INFO;
65c3437056SNickeau        if (!$INFO['exists']) {
66c3437056SNickeau            return;
67c3437056SNickeau        }
68c3437056SNickeau        array_splice($event->data['items'], -1, 0, array(new MetaManagerMenuItem()));
69c3437056SNickeau
70c3437056SNickeau    }
71c3437056SNickeau
72c3437056SNickeau
73c3437056SNickeau
74c3437056SNickeau
75c3437056SNickeau}
76