1*e8b2ff59SNickeau<?php 2*e8b2ff59SNickeau 3*e8b2ff59SNickeau/** 4*e8b2ff59SNickeau * Copyright (c) 2021. ComboStrap, Inc. and its affiliates. All Rights Reserved. 5*e8b2ff59SNickeau * 6*e8b2ff59SNickeau * This source code is licensed under the GPL license found in the 7*e8b2ff59SNickeau * COPYING file in the root directory of this source tree. 8*e8b2ff59SNickeau * 9*e8b2ff59SNickeau * @license GPL 3 (https://www.gnu.org/licenses/gpl-3.0.en.html) 10*e8b2ff59SNickeau * @author ComboStrap <support@combostrap.com> 11*e8b2ff59SNickeau * 12*e8b2ff59SNickeau */ 13*e8b2ff59SNickeau 14*e8b2ff59SNickeauuse ComboStrap\Bootstrap; 15*e8b2ff59SNickeauuse ComboStrap\PluginUtility; 16*e8b2ff59SNickeauuse ComboStrap\HistoricalBreadcrumbMenuItem; 17*e8b2ff59SNickeau 18*e8b2ff59SNickeaurequire_once(__DIR__ . '/../class/PluginUtility.php'); 19*e8b2ff59SNickeau 20*e8b2ff59SNickeau/** 21*e8b2ff59SNickeau * 22*e8b2ff59SNickeau * https://en.wikipedia.org/wiki/Breadcrumb_navigation#Websites 23*e8b2ff59SNickeau */ 24*e8b2ff59SNickeauclass action_plugin_combo_historicalbreadcrumb extends DokuWiki_Action_Plugin 25*e8b2ff59SNickeau{ 26*e8b2ff59SNickeau 27*e8b2ff59SNickeau 28*e8b2ff59SNickeau const HISTORICAL_BREADCRUMB_NAME = "historical-breadcrumb"; 29*e8b2ff59SNickeau 30*e8b2ff59SNickeau public function register(Doku_Event_Handler $controller) 31*e8b2ff59SNickeau { 32*e8b2ff59SNickeau 33*e8b2ff59SNickeau /** 34*e8b2ff59SNickeau * Add a icon in the page tools menu 35*e8b2ff59SNickeau * https://www.dokuwiki.org/devel:event:menu_items_assembly 36*e8b2ff59SNickeau */ 37*e8b2ff59SNickeau $controller->register_hook('MENU_ITEMS_ASSEMBLY', 'AFTER', $this, 'handle_breadcrumb_history'); 38*e8b2ff59SNickeau 39*e8b2ff59SNickeau 40*e8b2ff59SNickeau } 41*e8b2ff59SNickeau 42*e8b2ff59SNickeau 43*e8b2ff59SNickeau public function handle_breadcrumb_history(Doku_Event $event, $param) 44*e8b2ff59SNickeau { 45*e8b2ff59SNickeau 46*e8b2ff59SNickeau global $conf; 47*e8b2ff59SNickeau 48*e8b2ff59SNickeau //check if enabled 49*e8b2ff59SNickeau if (!$conf['breadcrumbs']) return; 50*e8b2ff59SNickeau 51*e8b2ff59SNickeau if(Bootstrap::getBootStrapMajorVersion()== Bootstrap::BootStrapFiveMajorVersion) { 52*e8b2ff59SNickeau 53*e8b2ff59SNickeau 54*e8b2ff59SNickeau /** 55*e8b2ff59SNickeau * The `view` property defines the menu that is currently built 56*e8b2ff59SNickeau * https://www.dokuwiki.org/devel:menus 57*e8b2ff59SNickeau * If this is not the site menu, return 58*e8b2ff59SNickeau */ 59*e8b2ff59SNickeau if ($event->data['view'] != 'site') return; 60*e8b2ff59SNickeau 61*e8b2ff59SNickeau /** 62*e8b2ff59SNickeau * Making popover active 63*e8b2ff59SNickeau */ 64*e8b2ff59SNickeau PluginUtility::getSnippetManager()->attachJavascriptSnippetForRequest("popover"); 65*e8b2ff59SNickeau 66*e8b2ff59SNickeau /** 67*e8b2ff59SNickeau * Css 68*e8b2ff59SNickeau */ 69*e8b2ff59SNickeau PluginUtility::getSnippetManager()->attachCssSnippetForRequest(self::HISTORICAL_BREADCRUMB_NAME); 70*e8b2ff59SNickeau 71*e8b2ff59SNickeau array_splice($event->data['items'], -1, 0, array(new HistoricalBreadcrumbMenuItem())); 72*e8b2ff59SNickeau 73*e8b2ff59SNickeau } 74*e8b2ff59SNickeau 75*e8b2ff59SNickeau } 76*e8b2ff59SNickeau 77*e8b2ff59SNickeau 78*e8b2ff59SNickeau 79*e8b2ff59SNickeau 80*e8b2ff59SNickeau} 81*e8b2ff59SNickeau 82*e8b2ff59SNickeau 83*e8b2ff59SNickeau 84