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