xref: /plugin/combo/ComboStrap/CacheMenuItem.php (revision 4cadd4f8c541149bdda95f080e38a6d4e3a640ca)
1*4cadd4f8SNickeau<?php
2*4cadd4f8SNickeau/**
3*4cadd4f8SNickeau * Copyright (c) 2021. ComboStrap, Inc. and its affiliates. All Rights Reserved.
4*4cadd4f8SNickeau *
5*4cadd4f8SNickeau * This source code is licensed under the GPL license found in the
6*4cadd4f8SNickeau * COPYING  file in the root directory of this source tree.
7*4cadd4f8SNickeau *
8*4cadd4f8SNickeau * @license  GPL 3 (https://www.gnu.org/licenses/gpl-3.0.en.html)
9*4cadd4f8SNickeau * @author   ComboStrap <support@combostrap.com>
10*4cadd4f8SNickeau *
11*4cadd4f8SNickeau */
12*4cadd4f8SNickeau
13*4cadd4f8SNickeaunamespace ComboStrap;
14*4cadd4f8SNickeau
15*4cadd4f8SNickeauuse dokuwiki\Menu\Item\AbstractItem;
16*4cadd4f8SNickeau
17*4cadd4f8SNickeau/**
18*4cadd4f8SNickeau * Class MenuItem
19*4cadd4f8SNickeau * @package ComboStrap
20*4cadd4f8SNickeau *
21*4cadd4f8SNickeau */
22*4cadd4f8SNickeauclass CacheMenuItem extends AbstractItem
23*4cadd4f8SNickeau{
24*4cadd4f8SNickeau
25*4cadd4f8SNickeau    const CLASS_HTML = "combo-cache-item";
26*4cadd4f8SNickeau    const CANONICAL = "cache";
27*4cadd4f8SNickeau
28*4cadd4f8SNickeau    /**
29*4cadd4f8SNickeau     * MetadataMenuItem constructor.
30*4cadd4f8SNickeau     */
31*4cadd4f8SNickeau    public function __construct()
32*4cadd4f8SNickeau    {
33*4cadd4f8SNickeau        $snippetManager = PluginUtility::getSnippetManager();
34*4cadd4f8SNickeau        $snippetManager->attachJavascriptComboLibrary();
35*4cadd4f8SNickeau        $snippetManager->attachJavascriptSnippetForRequest(self::CANONICAL);
36*4cadd4f8SNickeau        parent::__construct();
37*4cadd4f8SNickeau    }
38*4cadd4f8SNickeau
39*4cadd4f8SNickeau
40*4cadd4f8SNickeau    /**
41*4cadd4f8SNickeau     *
42*4cadd4f8SNickeau     * @return string
43*4cadd4f8SNickeau     */
44*4cadd4f8SNickeau    public function getLabel(): string
45*4cadd4f8SNickeau    {
46*4cadd4f8SNickeau        return "Cache Manager";
47*4cadd4f8SNickeau    }
48*4cadd4f8SNickeau
49*4cadd4f8SNickeau    public function getLinkAttributes($classprefix = 'menuitem '): array
50*4cadd4f8SNickeau    {
51*4cadd4f8SNickeau        $linkAttributes = parent::getLinkAttributes($classprefix);
52*4cadd4f8SNickeau        /**
53*4cadd4f8SNickeau         * A class and not an id
54*4cadd4f8SNickeau         * because a menu item can be found twice on
55*4cadd4f8SNickeau         * a page (For instance if you want to display it in a layout at a
56*4cadd4f8SNickeau         * breakpoint and at another in another breakpoint
57*4cadd4f8SNickeau         */
58*4cadd4f8SNickeau        $linkAttributes['class'] = self::CLASS_HTML;
59*4cadd4f8SNickeau
60*4cadd4f8SNickeau        return $linkAttributes;
61*4cadd4f8SNickeau    }
62*4cadd4f8SNickeau
63*4cadd4f8SNickeau    public function getTitle(): string
64*4cadd4f8SNickeau    {
65*4cadd4f8SNickeau        return "Show the cache results";
66*4cadd4f8SNickeau    }
67*4cadd4f8SNickeau
68*4cadd4f8SNickeau    public function getSvg(): string
69*4cadd4f8SNickeau    {
70*4cadd4f8SNickeau        /** @var string icon file */
71*4cadd4f8SNickeau        return Site::getComboImagesDirectory()->resolve('mdi-cache.svg')->toString();
72*4cadd4f8SNickeau    }
73*4cadd4f8SNickeau
74*4cadd4f8SNickeau
75*4cadd4f8SNickeau}
76