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