xref: /plugin/combo/ComboStrap/CacheMenuItem.php (revision 04fd306c7c155fa133ebb3669986875d65988276)
14cadd4f8SNickeau<?php
24cadd4f8SNickeau/**
34cadd4f8SNickeau * Copyright (c) 2021. ComboStrap, Inc. and its affiliates. All Rights Reserved.
44cadd4f8SNickeau *
54cadd4f8SNickeau * This source code is licensed under the GPL license found in the
64cadd4f8SNickeau * COPYING  file in the root directory of this source tree.
74cadd4f8SNickeau *
84cadd4f8SNickeau * @license  GPL 3 (https://www.gnu.org/licenses/gpl-3.0.en.html)
94cadd4f8SNickeau * @author   ComboStrap <support@combostrap.com>
104cadd4f8SNickeau *
114cadd4f8SNickeau */
124cadd4f8SNickeau
134cadd4f8SNickeaunamespace ComboStrap;
144cadd4f8SNickeau
154cadd4f8SNickeauuse dokuwiki\Menu\Item\AbstractItem;
164cadd4f8SNickeau
174cadd4f8SNickeau/**
184cadd4f8SNickeau * Class MenuItem
194cadd4f8SNickeau * @package ComboStrap
204cadd4f8SNickeau *
214cadd4f8SNickeau */
224cadd4f8SNickeauclass CacheMenuItem extends AbstractItem
234cadd4f8SNickeau{
244cadd4f8SNickeau
254cadd4f8SNickeau    const CLASS_HTML = "combo-cache-item";
264cadd4f8SNickeau    const CANONICAL = "cache";
274cadd4f8SNickeau
284cadd4f8SNickeau    /**
294cadd4f8SNickeau     * MetadataMenuItem constructor.
304cadd4f8SNickeau     */
314cadd4f8SNickeau    public function __construct()
324cadd4f8SNickeau    {
334cadd4f8SNickeau        $snippetManager = PluginUtility::getSnippetManager();
344cadd4f8SNickeau        $snippetManager->attachJavascriptComboLibrary();
35*04fd306cSNickeau        $snippetManager->attachJavascriptFromComponentId(self::CANONICAL);
364cadd4f8SNickeau        parent::__construct();
374cadd4f8SNickeau    }
384cadd4f8SNickeau
394cadd4f8SNickeau
404cadd4f8SNickeau    /**
414cadd4f8SNickeau     *
424cadd4f8SNickeau     * @return string
434cadd4f8SNickeau     */
444cadd4f8SNickeau    public function getLabel(): string
454cadd4f8SNickeau    {
464cadd4f8SNickeau        return "Cache Manager";
474cadd4f8SNickeau    }
484cadd4f8SNickeau
494cadd4f8SNickeau    public function getLinkAttributes($classprefix = 'menuitem '): array
504cadd4f8SNickeau    {
514cadd4f8SNickeau        $linkAttributes = parent::getLinkAttributes($classprefix);
524cadd4f8SNickeau        /**
534cadd4f8SNickeau         * A class and not an id
544cadd4f8SNickeau         * because a menu item can be found twice on
554cadd4f8SNickeau         * a page (For instance if you want to display it in a layout at a
564cadd4f8SNickeau         * breakpoint and at another in another breakpoint
574cadd4f8SNickeau         */
584cadd4f8SNickeau        $linkAttributes['class'] = self::CLASS_HTML;
594cadd4f8SNickeau
604cadd4f8SNickeau        return $linkAttributes;
614cadd4f8SNickeau    }
624cadd4f8SNickeau
634cadd4f8SNickeau    public function getTitle(): string
644cadd4f8SNickeau    {
654cadd4f8SNickeau        return "Show the cache results";
664cadd4f8SNickeau    }
674cadd4f8SNickeau
684cadd4f8SNickeau    public function getSvg(): string
694cadd4f8SNickeau    {
704cadd4f8SNickeau        /** @var string icon file */
71*04fd306cSNickeau        return DirectoryLayout::getComboImagesDirectory()->resolve('mdi-cache.svg')->toAbsoluteId();
724cadd4f8SNickeau    }
734cadd4f8SNickeau
744cadd4f8SNickeau
754cadd4f8SNickeau}
76