xref: /plugin/box2/action.php (revision d3117d333e457651ae4e7bf0130b5ac5f6033c08)
1bd01c8ecSGerry Weißbach<?php
2bd01c8ecSGerry Weißbach/**
3bd01c8ecSGerry Weißbach * Box Plugin
4bd01c8ecSGerry Weißbach *
5bd01c8ecSGerry Weißbach * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
6bd01c8ecSGerry Weißbach * @author     i-net software <tools@inetsoftware.de>
7bd01c8ecSGerry Weißbach * @author     Gerry Weissbach <gweissbach@inetsoftware.de>
8bd01c8ecSGerry Weißbach */
9bd01c8ecSGerry Weißbach
10bd01c8ecSGerry Weißbach// must be run within Dokuwiki
11bd01c8ecSGerry Weißbachif(!defined('DOKU_INC')) die();
12bd01c8ecSGerry Weißbach
13cc863027SGerry Weißbachclass action_plugin_box2 extends DokuWiki_Action_Plugin {
14bd01c8ecSGerry Weißbach
1512700fb9SGerry Weißbach    function register(Doku_Event_Handler $controller) {
16bd01c8ecSGerry Weißbach        $controller->register_hook('ACTION_SHOW_REDIRECT', 'BEFORE', $this, 'act_box_redirect_execute');
17bd01c8ecSGerry Weißbach    }
18bd01c8ecSGerry Weißbach
19*57014b88SGerry Weißbach    function act_box_redirect_execute( Doku_Event &$event ) {
20bd01c8ecSGerry Weißbach        global $PRE;
21bd01c8ecSGerry Weißbach        global $TEXT;
22bd01c8ecSGerry Weißbach
23bd01c8ecSGerry Weißbach        if ( !empty($event->data['fragment']) ) { return; }
24bd01c8ecSGerry Weißbach        if ( $event->data['preact'] == 'save' ) { return; }
25bd01c8ecSGerry Weißbach
26bd01c8ecSGerry Weißbach        if($PRE && preg_match('/^\s*<box.*?\|([^>\n]+)/',$TEXT,$match)){
27bd01c8ecSGerry Weißbach            $check = false; //Byref
28bd01c8ecSGerry Weißbach            $event->data['fragment'] = sectionID($match[1], $check);
29bd01c8ecSGerry Weißbach        }
30bd01c8ecSGerry Weißbach    }
31bd01c8ecSGerry Weißbach}
32