xref: /template/strap/action/qualitymessage.php (revision 70bbd7f1f72440223cc13f3495efdcb2b0a11514)
108ca4f85Sgerardnico<?php
208ca4f85Sgerardnico
304fd306cSNickeau
404fd306cSNickeauuse ComboStrap\Api\ApiRouter;
5a6bf47aaSNickeauuse ComboStrap\Identity;
6c3437056SNickeauuse ComboStrap\QualityMenuItem;
708ca4f85Sgerardnico
804fd306cSNickeaurequire_once(__DIR__ . '/../vendor/autoload.php');
908ca4f85Sgerardnico
1008ca4f85Sgerardnico/**
1108ca4f85Sgerardnico *
1208ca4f85Sgerardnico * Show a quality message
1308ca4f85Sgerardnico *
1408ca4f85Sgerardnico *
1508ca4f85Sgerardnico *
1608ca4f85Sgerardnico */
1708ca4f85Sgerardnicoclass action_plugin_combo_qualitymessage extends DokuWiki_Action_Plugin
1808ca4f85Sgerardnico{
1908ca4f85Sgerardnico
2008ca4f85Sgerardnico
2108ca4f85Sgerardnico    function __construct()
2208ca4f85Sgerardnico    {
2308ca4f85Sgerardnico        // enable direct access to language strings
2408ca4f85Sgerardnico        // ie $this->lang
2508ca4f85Sgerardnico        $this->setupLocale();
2608ca4f85Sgerardnico    }
2708ca4f85Sgerardnico
2808ca4f85Sgerardnico
29c3437056SNickeau    function register(Doku_Event_Handler $controller)
30c3437056SNickeau    {
31c3437056SNickeau
32c3437056SNickeau
33c3437056SNickeau        /**
34c3437056SNickeau         * Add a icon in the page tools menu
35c3437056SNickeau         * https://www.dokuwiki.org/devel:event:menu_items_assembly
36c3437056SNickeau         */
37c3437056SNickeau        $controller->register_hook('MENU_ITEMS_ASSEMBLY', 'AFTER', $this, 'addMenuItem');
38c3437056SNickeau
39c3437056SNickeau
40c3437056SNickeau    }
41c3437056SNickeau
42c3437056SNickeau
43c3437056SNickeau    function addMenuItem(Doku_Event $event, $param)
44c3437056SNickeau    {
45c3437056SNickeau
46c3437056SNickeau        if (!Identity::isWriter()) {
47c3437056SNickeau            return;
48c3437056SNickeau        }
49c3437056SNickeau
50c3437056SNickeau        /**
51c3437056SNickeau         * The `view` property defines the menu that is currently built
52c3437056SNickeau         * https://www.dokuwiki.org/devel:menus
53c3437056SNickeau         * If this is not the page menu, return
54c3437056SNickeau         */
55c3437056SNickeau        if ($event->data['view'] != 'page') return;
56c3437056SNickeau
57c3437056SNickeau        global $INFO;
58*70bbd7f1Sgerardnico        $exists = $INFO['exists'] ?? null;
59*70bbd7f1Sgerardnico        if (!$exists) {
60c3437056SNickeau            return;
61c3437056SNickeau        }
62c3437056SNickeau        array_splice($event->data['items'], -1, 0, array(new QualityMenuItem()));
63c3437056SNickeau
64c3437056SNickeau    }
65c3437056SNickeau
66c3437056SNickeau
6708ca4f85Sgerardnico}
68