diff --git a/php/classes/AmdaStats.php b/php/classes/AmdaStats.php index 97d5676..adb5e17 100644 --- a/php/classes/AmdaStats.php +++ b/php/classes/AmdaStats.php @@ -7,12 +7,13 @@ class AmdaStats { public $statXml; - public $tasks = array('mining', 'print', 'plot'); + public $tasks = array('plot', 'mining', 'print', 'statistics'); public $tasksAdd = array('ttoper', 'samp', 'upload', 'create', 'images'); - public $usersToExclude = array( 'bouchemit', 'impex'); + public $usersToExclude = array('bouchemit', 'impex'); public $success = true; private $user = null; - + private $task = array('request'=>'plot','mining'=>'condition', 'print'=>'download','statistics'=>'statistics'); + public function __construct($user) { $this->statXml = new DomDocument('1.0','UTF-8'); @@ -113,32 +114,44 @@ class AmdaStats { return $this->statXml->save(StatsXml); } - public function addTaskWithParams($user, $task, $vars) { + public function addTask($user, $task, $vars) { // if (!$this->user) { // error_log('User is null', 1, email); // return; // } + if ($task == 'killplot') + return; + + if ($vars) + $realTask = $this->task[$task]; + else + $realTask = $task; if (!in_array($user, $this->usersToExclude)) { - $taskElement = $this->statXml->getElementsByTagName("$task")->item(0); + $taskElementNode = $this->statXml->getElementsByTagName("$realTask"); + if ($taskElementNode->length == 0) { + $taskElementNode = $this->statXml->createElement("$realTask"); + $this->statXml->documentElement->appendChild($taskElementNode); + } + $taskElement = $taskElementNode->item(0); if (is_object($taskElement)) { $newTask = $this->statXml->createElement('item'); $newTask->setAttribute('date', date('Y-m-d')); $newTask->setAttribute('user', $user); - + if ($vars) { - $ID = array(); - - foreach ($vars as $var) { - if ((substr($var, 0, 7) == 'impex__') || (substr($var, 0, 13) == 'spase___IMPEX')){ - $ID[] = 'impex'; - } - elseif (substr($var, 0, 4) == 'wsd_') { - $ID[] = 'uploadedData'; - } - else - $ID[] = $var; + $ID = array(); + + foreach ($vars as $var) { + if (substr($var, 0, 13) == 'spase___IMPEX') { + $ID[] = 'impex'; + } + elseif (substr($var, 0, 4) == 'wsd_') { + $ID[] = 'uploadedData'; + } + else + $ID[] = $var; } $ID = array_unique($ID); @@ -148,34 +161,13 @@ class AmdaStats { $newTask->appendChild($datasetElement); } } - } + $taskElement->appendChild($newTask); $this->statXml->save(StatsXml); } else error_log('Check Stats.xml - no task element '.$task, 1, email); - } - - public function addTask($task){ - - if (!$this->user) { - error_log('User is null', 1, email); - return; } - - if (!in_array($this->user, $this->usersToExclude)) { - $taskElement = $this->statXml->getElementsByTagName("$task")->item(0); - if (is_object($taskElement)) { - $newTask = $this->statXml->createElement('item'); - $newTask->setAttribute('date', date('Y-m-d')); - $newTask->setAttribute('user', $this->user); - - $taskElement->appendChild($newTask); - $this->statXml->save(StatsXml); - } - else - error_log('Check Stats.xml - no task element '.$task, 1, email); - } } /* @@ -211,7 +203,6 @@ class AmdaStats { */ public function getDataStat($index, $start, $stop, $update){ - if (!$update && file_exists(DATAPATH.'Statistics/data.json')) { $GENERALarray = json_decode(file_get_contents(DATAPATH.'Statistics/data.json')); } -- libgit2 0.21.2