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