summaryrefslogtreecommitdiff
path: root/lib/plugins/popularity/action.php
diff options
context:
space:
mode:
authorAndreas Gohr <andi@splitbrain.org>2010-12-10 09:46:38 +0100
committerAndreas Gohr <andi@splitbrain.org>2010-12-10 09:46:38 +0100
commit8596046db551f4eda739892c98b35d4461ef0019 (patch)
treed903243c0d8878a28e2acd53a2981753cfe5e311 /lib/plugins/popularity/action.php
parentfb7b772309f4272b67352a142b8afb1afd9743e5 (diff)
downloadrpg-8596046db551f4eda739892c98b35d4461ef0019.tar.gz
rpg-8596046db551f4eda739892c98b35d4461ef0019.tar.bz2
added missing files for popularity plugin
Diffstat (limited to 'lib/plugins/popularity/action.php')
-rw-r--r--lib/plugins/popularity/action.php57
1 files changed, 57 insertions, 0 deletions
diff --git a/lib/plugins/popularity/action.php b/lib/plugins/popularity/action.php
new file mode 100644
index 000000000..ce10808b9
--- /dev/null
+++ b/lib/plugins/popularity/action.php
@@ -0,0 +1,57 @@
+<?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;
+
+ function action_plugin_popularity(){
+ $this->helper = $this->loadHelper('popularity', false);
+ }
+
+ /**
+ * Register its handlers with the dokuwiki's event controller
+ */
+ function register(&$controller) {
+ $controller->register_hook('INDEXER_TASKS_RUN', 'AFTER', $this, '_autosubmit', array());
+ }
+
+ function _autosubmit(&$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 the autosubmit is enabled first)
+ */
+ function _isTooEarlyToSubmit(){
+ $lastSubmit = @filemtime($this->helper->autosubmitFile);
+ return $lastSubmit + 24*60*60*30 > time();
+ }
+}