sName = $sName; $this->sFreq = 'daily'; $this->iStartTime = time(); } /** * Set the name of the task */ function setTaskName($sName) { $this->sName = $sName; } /** * Set the path to the script from the KT base path * For example: "/var/tasks/script.php" or "/bin/script.php" */ function setScriptPath($sPath) { $this->sPath = $sPath; } /** * Add a parameter pair to pass to the script */ function addParameter($param, $value){ $this->aParams[$param] = $value; } /** * Set the frequency with which the task must be run * Frequencies are: daily, weekly, monthly, hourly, half_hourly, quarter_hourly, 10mins, 5mins and once */ function setFrequency($sFrequency) { $this->sFreq = $sFrequency; } /** * Set the time at which the task should first be run or if it is a once off, the time to run it. * Time should be in datetime format. * By default the time is set to now. */ function setFirstRunTime($iTime) { $this->iStartTime = !empty($iTime) ? $iTime : date('Y-m-d H:i:s'); } /** * Create a script - write it to the filesystem. * Scripts are saved in the KT_DIR."/var/tasks/" directory. * The file name is the task name followed by a random number. */ function saveScript($sScript = '') { // Path to scripts $ktPath = '/var/tasks/'; $path = KT_DIR.$ktPath; if(!is_dir($path)){ mkdir($path, '0755'); } // Create script file $sName = str_replace(' ', '_', $this->sName); $sName = str_replace('', "'", $sName); $sName = str_replace('', "&", $sName); $sFileName = $sName.'_'.mt_rand(1, 999).'.php'; while(file_exists($path.$sFileName)){ $sFileName = $sTask.'_'.mt_rand(1, 9999).'.php'; } $fp = fopen($path.$sFileName, 'wb'); fwrite($fp, $sScript); fclose($fp); $this->sPath = $ktPath.$sFileName; } /** * Register the task in the scheduler */ function registerTask(){ schedulerUtil::registerTask($this->sName, $this->sPath, $this->aParams, $this->sFreq, $this->iStartTime); } } ?>