xref: /plugin/combo/action/historicalbreadcrumb.php (revision 04fd306c7c155fa133ebb3669986875d65988276)
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