xref: /plugin/box2/action.php (revision bd01c8ec14d1117f4ace103a8b4b80a4101bb9e1)
1*bd01c8ecSGerry Weißbach<?php
2*bd01c8ecSGerry Weißbach/**
3*bd01c8ecSGerry Weißbach * Box Plugin
4*bd01c8ecSGerry Weißbach *
5*bd01c8ecSGerry Weißbach * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
6*bd01c8ecSGerry Weißbach * @author     i-net software <tools@inetsoftware.de>
7*bd01c8ecSGerry Weißbach * @author     Gerry Weissbach <gweissbach@inetsoftware.de>
8*bd01c8ecSGerry Weißbach */
9*bd01c8ecSGerry Weißbach
10*bd01c8ecSGerry Weißbach// must be run within Dokuwiki
11*bd01c8ecSGerry Weißbachif(!defined('DOKU_INC')) die();
12*bd01c8ecSGerry Weißbach
13*bd01c8ecSGerry Weißbachif(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
14*bd01c8ecSGerry Weißbachrequire_once(DOKU_PLUGIN.'action.php');
15*bd01c8ecSGerry Weißbach
16*bd01c8ecSGerry Weißbachclass action_plugin_box extends DokuWiki_Action_Plugin {
17*bd01c8ecSGerry Weißbach
18*bd01c8ecSGerry Weißbach	function getInfo(){
19*bd01c8ecSGerry Weißbach		return array(
20*bd01c8ecSGerry Weißbach		'author' => 'i-net software / Gerry Weissbach',
21*bd01c8ecSGerry Weißbach        'email'  => 'tools@inetsoftware.de',
22*bd01c8ecSGerry Weißbach        'date'   => '2009-11-11',
23*bd01c8ecSGerry Weißbach        'name'   => 'Box Plugin Action Component',
24*bd01c8ecSGerry Weißbach		);
25*bd01c8ecSGerry Weißbach	}
26*bd01c8ecSGerry Weißbach
27*bd01c8ecSGerry Weißbach	function register(&$controller) {
28*bd01c8ecSGerry Weißbach		$controller->register_hook('ACTION_SHOW_REDIRECT', 'BEFORE', $this, 'act_box_redirect_execute');
29*bd01c8ecSGerry Weißbach	}
30*bd01c8ecSGerry Weißbach
31*bd01c8ecSGerry Weißbach	function act_box_redirect_execute( &$event ) {
32*bd01c8ecSGerry Weißbach		global $PRE;
33*bd01c8ecSGerry Weißbach		global $TEXT;
34*bd01c8ecSGerry Weißbach
35*bd01c8ecSGerry Weißbach		if ( !empty($event->data['fragment']) ) { return; }
36*bd01c8ecSGerry Weißbach		if ( $event->data['preact'] == 'save' ) { return; }
37*bd01c8ecSGerry Weißbach
38*bd01c8ecSGerry Weißbach		if($PRE && preg_match('/^\s*<box.*?\|([^>\n]+)/',$TEXT,$match)){
39*bd01c8ecSGerry Weißbach			$check = false; //Byref
40*bd01c8ecSGerry Weißbach			$event->data['fragment'] = sectionID($match[1], $check);
41*bd01c8ecSGerry Weißbach		}
42*bd01c8ecSGerry Weißbach	}
43*bd01c8ecSGerry Weißbach}