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