aboutsummaryrefslogtreecommitdiff
path: root/mod/dokuwiki/vendors/dokuwiki/lib/plugins/odt/action.php
blob: 0ca861518d81cebb467fe60a9576c18635b6940e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
/**
 * ODT Plugin: Exports to ODT
 *
 * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
 * @author     Aurelien Bompard <aurelien@bompard.org>
 */
// must be run within Dokuwiki
if(!defined('DOKU_INC')) die();

if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
require_once(DOKU_PLUGIN.'action.php');

/**
 * Add the template as a page dependency for the caching system
 */
class action_plugin_odt extends DokuWiki_Action_Plugin {

    function register($controller) {
        $controller->register_hook('PARSER_CACHE_USE','BEFORE', $this, 'handle_cache_prepare');
    }

    function handle_cache_prepare(&$event, $param) {
        global $conf, $ID;
        $cache =& $event->data;
        // only the ODT rendering mode needs caching tweaks
        if ($cache->mode != "odt") return;
        $odt_meta = p_get_metadata($ID, 'relation odt');
        $template_name = $odt_meta["template"];
        if (!$template_name) {
            return;
        }
        $template_path = $conf['mediadir'].'/'.$this->getConf("tpl_dir")."/".$template_name;
        if (file_exists($template_path)) {
            $cache->depends['files'][] = $template_path;
        }
    }

}

//Setup VIM: ex: et ts=4 enc=utf-8 :