xref: /plugin/davcal/action/disable.php (revision 13b16484544ce9af366ba2deb0a3e1be2c3f2947)
1*13b16484SAndreas Boehler<?php
2*13b16484SAndreas Boehler
3*13b16484SAndreas Boehler/**
4*13b16484SAndreas Boehler * DokuWiki DAVCal PlugIn - Disable component
5*13b16484SAndreas Boehler */
6*13b16484SAndreas Boehler
7*13b16484SAndreas Boehlerif(!defined('DOKU_INC')) die();
8*13b16484SAndreas Boehler
9*13b16484SAndreas Boehlerclass action_plugin_davcal_disable extends DokuWiki_Action_Plugin {
10*13b16484SAndreas Boehler
11*13b16484SAndreas Boehler    /**
12*13b16484SAndreas Boehler     * @var helper_plugin_davcal
13*13b16484SAndreas Boehler     */
14*13b16484SAndreas Boehler    private $hlp = null;
15*13b16484SAndreas Boehler
16*13b16484SAndreas Boehler    function __construct() {
17*13b16484SAndreas Boehler        $this->hlp =& plugin_load('helper','davcal');
18*13b16484SAndreas Boehler    }
19*13b16484SAndreas Boehler
20*13b16484SAndreas Boehler    function register(Doku_Event_Handler $controller) {
21*13b16484SAndreas Boehler        $controller->register_hook('IO_WIKIPAGE_WRITE', 'BEFORE', $this, 'handle_wikipage_write');
22*13b16484SAndreas Boehler    }
23*13b16484SAndreas Boehler
24*13b16484SAndreas Boehler    function handle_wikipage_write(&$event, $param)
25*13b16484SAndreas Boehler    {
26*13b16484SAndreas Boehler        $data = $event->data;
27*13b16484SAndreas Boehler        if(strpos($data[0][1], '{{davcal') !== false) return; // Plugin is still enabled
28*13b16484SAndreas Boehler
29*13b16484SAndreas Boehler        $id = ltrim($data[1].':'.$data[2], ':');
30*13b16484SAndreas Boehler
31*13b16484SAndreas Boehler        $this->hlp->disableCalendarForPage($id);
32*13b16484SAndreas Boehler    }
33*13b16484SAndreas Boehler};
34