1<?php
2
3if(!defined('DOKU_INC')) die();
4if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
5require_once(DOKU_PLUGIN.'action.php');
6
7class action_plugin_smartcache extends DokuWiki_Action_Plugin {
8
9  /**
10   * return some info
11   */
12  function getInfo(){
13    return array(
14                 'author' => 'Simon-Shlomo Poil',
15                 'email'  => 'simon.shlmo@poil.dk',
16                 'date'   => '1 August 2011',
17                 'name'   => 'SmartCache action plugin',
18                 'desc'   => 'SmartCache action plugin actions',
19                 'url'    => 'http://wiki.splitbrain.org/plugin:smartcache',
20                 );
21  }
22
23 function register(&$controller) {
24
25    $controller->register_hook('DOKUWIKI_STARTED', 'BEFORE', $this, 'smartAddlastmod');
26//    $controller->register_hook('ACTION_HEADER_SEND', 'BEFORE', $this,'smartAddHeader');
27  }
28
29
30function smartAddlastmod(&$event,$param){
31global $JSINFO;
32global $conf;
33global $ID;
34if(!isset($_SERVER['REMOTE_USER'])){
35  if(auth_quickaclcheck($ID) < AUTH_READ){
36  $JSINFO['lastmod'] = (string) 'X';
37  } else {
38$JSINFO['lastmod'] = (string) date("m/d/Y H:i:s",filemtime(($conf['datadir'].'/'.(str_replace(':','/',$ID)).'.txt')));
39}
40} else {
41$JSINFO['lastmod'] = (string) 'X';
42}
43return true;
44}
45//
46//function smartAddHeader(&$event,$param){
47//global $conf;
48//if(!isset( $_SERVER['REMOTE_USER'])){
49//$event->data[] =  'Cache-Control: public, max-age='.max($conf['cachetime'], 2000000);
50//$event->data['test2'] =  'Pragma: cache';
51//$event->data['test'] = 'X-PINGback: test';
52//return true;
53//}
54
55//}
56
57
58}
59
60
61
62