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