xref: /plugin/davcal/action/cache.php (revision 4ed26d55151fd9e69648a114800407cdb2127288)
1*4ed26d55SAndreas Boehler<?php
2*4ed26d55SAndreas Boehler
3*4ed26d55SAndreas Boehler/**
4*4ed26d55SAndreas Boehler * DokuWiki DAVCal PlugIn - Ajax component
5*4ed26d55SAndreas Boehler */
6*4ed26d55SAndreas Boehler
7*4ed26d55SAndreas Boehlerif(!defined('DOKU_INC')) die();
8*4ed26d55SAndreas Boehler
9*4ed26d55SAndreas Boehlerclass action_plugin_davcal_cache extends DokuWiki_Action_Plugin {
10*4ed26d55SAndreas Boehler
11*4ed26d55SAndreas Boehler    /**
12*4ed26d55SAndreas Boehler     * @var helper_plugin_davcal
13*4ed26d55SAndreas Boehler     */
14*4ed26d55SAndreas Boehler    private $hlp = null;
15*4ed26d55SAndreas Boehler
16*4ed26d55SAndreas Boehler    function __construct() {
17*4ed26d55SAndreas Boehler        $this->hlp =& plugin_load('helper','davcal');
18*4ed26d55SAndreas Boehler    }
19*4ed26d55SAndreas Boehler
20*4ed26d55SAndreas Boehler    function register(Doku_Event_Handler $controller) {
21*4ed26d55SAndreas Boehler        $controller->register_hook('PARSER_CACHE_USE', 'BEFORE', $this, 'handle_parser_cache_use');
22*4ed26d55SAndreas Boehler    }
23*4ed26d55SAndreas Boehler
24*4ed26d55SAndreas Boehler    function handle_parser_cache_use(&$event, $param) {
25*4ed26d55SAndreas Boehler      global $ID;
26*4ed26d55SAndreas Boehler      $cache = &$event->data;
27*4ed26d55SAndreas Boehler      if(!isset($cache->page)) return;
28*4ed26d55SAndreas Boehler
29*4ed26d55SAndreas Boehler      $davcalMeta = p_get_metadata($ID, 'plugin_davcal');
30*4ed26d55SAndreas Boehler      if(!$davcalMeta)
31*4ed26d55SAndreas Boehler        return;
32*4ed26d55SAndreas Boehler
33*4ed26d55SAndreas Boehler      if(isset($davcalMeta['table']) && $davcalMeta['table'] === true)
34*4ed26d55SAndreas Boehler      {
35*4ed26d55SAndreas Boehler            $event->preventDefault();
36*4ed26d55SAndreas Boehler            $event->stopPropagation();
37*4ed26d55SAndreas Boehler            $event->result = false;
38*4ed26d55SAndreas Boehler      }
39*4ed26d55SAndreas Boehler    }
40*4ed26d55SAndreas Boehler
41*4ed26d55SAndreas Boehler}