1 <?php
2 
3 use dokuwiki\Extension\ActionPlugin;
4 use dokuwiki\Extension\Event;
5 use dokuwiki\Extension\EventHandler;
6 use dokuwiki\plugin\fulldisplay\MenuItem;
7 
8 /**
9  * DokuWiki Plugin fulldisplay (Action Component)
10  *
11  * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html
12  * @author Andreas Gohr <dokuwiki@cosmocode.de>
13  */
14 class action_plugin_fulldisplay extends ActionPlugin
15 {
16     /** @inheritDoc */
17     public function register(EventHandler $controller)
18     {
19         $controller->register_hook('MENU_ITEMS_ASSEMBLY', 'AFTER', $this, 'handleMenuItemsAssemblyEvent', null, 300);
20         $controller->register_hook('DOKUWIKI_STARTED', 'AFTER', $this, 'handleDokuwikiStartedEvent');
21     }
22 
23     /**
24      * Event handler for MENU_ITEMS_ASSEMBLY
25      *
26      * @see https://www.dokuwiki.org/devel:events:MENU_ITEMS_ASSEMBLY
27      * @param Event $event Event object
28      * @param mixed $param optional parameter passed when event was registered
29      * @return void
30      */
31     public function handleMenuItemsAssemblyEvent(Event $event, $param)
32     {
33         if ($event->data['view'] !== 'page') {
34             return;
35         }
36         array_splice($event->data['items'], -1, 0, [new MenuItem()]);
37     }
38 
39     /**
40      * Event handler for DOKUWIKI_STARTED
41      *
42      * @see https://www.dokuwiki.org/devel:events:DOKUWIKI_STARTED
43      * @param Event $event Event object
44      * @param mixed $param optional parameter passed when event was registered
45      * @return void
46      */
47     public function handleDokuwikiStartedEvent(Event $event, $param) {
48         global $JSINFO;
49         $JSINFO['fulldisplay'] = [
50             'pageSelector' => $this->getConf('pageSelector'),
51             'zoom' => $this->getConf('zoom'),
52             'refresh' => $this->getConf('refresh'),
53         ];
54     }
55 }
56