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