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