blob: d5ec0f5c5d183efce736c9e8bcdbbd0206ebca23 (
plain) (
tree)
|
|
<?php
/**
* Popularity Feedback Plugin
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*/
require_once(DOKU_PLUGIN.'action.php');
require_once(DOKU_PLUGIN.'popularity/admin.php');
class action_plugin_popularity extends Dokuwiki_Action_Plugin {
/**
* @var helper_plugin_popularity
*/
var $helper;
function __construct(){
$this->helper = $this->loadHelper('popularity', false);
}
/**
* Register its handlers with the dokuwiki's event controller
*/
function register(Doku_Event_Handler $controller) {
$controller->register_hook('INDEXER_TASKS_RUN', 'AFTER', $this, '_autosubmit', array());
}
function _autosubmit(Doku_Event &$event, $param){
//Do we have to send the data now
if ( !$this->helper->isAutosubmitEnabled() || $this->_isTooEarlyToSubmit() ){
return;
}
//Actually send it
$status = $this->helper->sendData( $this->helper->gatherAsString() );
if ( $status !== '' ){
//If an error occured, log it
io_saveFile( $this->helper->autosubmitErrorFile, $status );
} else {
//If the data has been sent successfully, previous log of errors are useless
@unlink($this->helper->autosubmitErrorFile);
//Update the last time we sent data
touch ( $this->helper->autosubmitFile );
}
$event->stopPropagation();
$event->preventDefault();
}
/**
* Check if it's time to send autosubmit data
* (we should have check if autosubmit is enabled first)
*/
function _isTooEarlyToSubmit(){
$lastSubmit = $this->helper->lastSentTime();
return $lastSubmit + 24*60*60*30 > time();
}
}
|