xref: /template/strap/action/qualitymessage.php (revision 04fd306c7c155fa133ebb3669986875d65988276)
108ca4f85Sgerardnico<?php
208ca4f85Sgerardnico
3*04fd306cSNickeau
4*04fd306cSNickeauuse ComboStrap\Api\ApiRouter;
5a6bf47aaSNickeauuse ComboStrap\Identity;
6c3437056SNickeauuse ComboStrap\QualityMenuItem;
708ca4f85Sgerardnico
8*04fd306cSNickeaurequire_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;
58c3437056SNickeau        if (!$INFO['exists']) {
59c3437056SNickeau            return;
60c3437056SNickeau        }
61c3437056SNickeau        array_splice($event->data['items'], -1, 0, array(new QualityMenuItem()));
62c3437056SNickeau
63c3437056SNickeau    }
64c3437056SNickeau
65c3437056SNickeau
6608ca4f85Sgerardnico}
67