schedulerentity.php.svn-base
来自「PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。」· SVN-BASE 代码 · 共 260 行
SVN-BASE
260 行
<?php/** * $Id:$ * * KnowledgeTree Community Edition * Document Management Made Simple * Copyright (C) 2008 KnowledgeTree Inc. * Portions copyright The Jam Warehouse Software (Pty) Limited * * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License version 3 as published by the * Free Software Foundation. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * * You can contact KnowledgeTree Inc., PO Box 7775 #87847, San Francisco, * California 94120-7775, or email info@knowledgetree.com. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU General Public License version 3. * * In accordance with Section 7(b) of the GNU General Public License version 3, * these Appropriate Legal Notices must retain the display of the "Powered by * KnowledgeTree" logo and retain the original copyright notice. If the display of the * logo is not reasonably feasible for technical reasons, the Appropriate Legal Notices * must display the words "Powered by KnowledgeTree" and retain the original * copyright notice. * Contributor( s): ______________________________________ * */require_once(KT_LIB_DIR . "/ktentity.inc");/*** Class to perform all database functions*/class schedulerEntity extends KTEntity{ var $_bUsePearError = true; var $sTask; var $sScript_url; var $sScript_params; var $bIs_complete; var $iFrequency; var $iRun_time; var $iPrevious_run_time; var $iRun_duration; var $sStatus; var $_aFieldToSelect = array( 'iId' => 'id', 'sTask' => 'task', 'sScript_url' => 'script_url', 'sScript_params' => 'script_params', 'bIs_complete' => 'is_complete', 'iFrequency' => 'frequency', 'iRun_time' => 'run_time', 'iPrevious_run_time' => 'previous_run_time', 'iRun_duration' => 'run_duration', 'sStatus' => 'status' ); function _table () { return KTUtil::getTableName('scheduler_tasks'); } function _cachedGroups() { return array('getList', 'getTaskList', 'getTasksToRun'); } function getTask() { return $this->sTask; } function getUrl() { return $this->sScript_url; } function getParams() { return $this->sScript_params; } function getIsComplete() { return $this->bIs_complete; } function getFrequency() { return $this->iFrequency; } function getStatus() { return $this->sStatus; } function getFrequencyByLang() { $aFrequencies = array( 'monthly' => _kt('monthly'), 'weekly' => _kt('weekly'), 'daily' => _kt('daily'), 'hourly' => _kt('hourly'), 'half_hourly' => _kt('every half hour'), 'quarter_hourly' => _kt('every quarter hour'), '10mins' => _kt('every 10 minutes'), '5mins' => _kt('every 5 minutes'), '1min' => _kt('every minute'), '30secs' => _kt('every 30 seconds'), ); return $aFrequencies[$this->iFrequency]; } function getRunTime() { return $this->iRun_time; } function getPrevious($bFormat = FALSE) { if($bFormat){ return $this->iPrevious_run_time; } return strtotime($this->iPrevious_run_time); } function getRunDuration() { $time = (!empty($this->iRun_duration)) ? $this->iRun_duration.'s' : ''; return $time; } function setTask($sValue) { return $this->sTask = $sValue; } function setUrl($sValue) { return $this->sScript_url = $sValue; } function setParams($sValue) { return $this->sScript_params = $sValue; } function setIsComplete($sValue) { return $this->bIs_complete = $sValue; } function setFrequency($sValue) { return $this->iFrequency = $sValue; } function setRunTime($sValue) { return $this->iRun_time = date('Y-m-d H:i:s', $sValue); } function setPrevious($sValue) { return $this->iPrevious_run_time = date('Y-m-d H:i:s', $sValue); } function setRunDuration($sValue) { return $this->iRun_duration = $sValue; } function setStatus($sValue) { return $this->sStatus = $sValue; } function get($iId) { return KTEntityUtil::get('schedulerEntity', $iId); } function getTasksToRun() { $aOptions = array('multi' => true); $aFields = array('is_complete', 'run_time', 'status'); $aValues = array(); $aValues[] = array('type' => 'equals', 'value' => '0'); $aValues[] = array('type' => 'before', 'value' => time()); $aValues[] = array('type' => 'nequals', 'value' => 'disabled'); return KTEntityUtil::getBy('schedulerEntity', $aFields, $aValues, $aOptions); } function getTaskList($completed = '0') { $aOptions = array('multi' => true); return KTEntityUtil::getBy('schedulerEntity', 'is_complete', $completed, $aOptions); } function getLastRunTime($date) { $aOptions = array('multi' => true, 'orderby' => 'previous_run_time DESC'); $aFields = array('previous_run_time', 'status'); $aValues = array(); $aValues[] = array('type' => 'before', 'value' => $date); $aValues[] = array('type' => 'nequals', 'value' => 'disabled'); return KTEntityUtil::getBy('schedulerEntity', $aFields, $aValues, $aOptions); } function getNextRunTime($date) { $aOptions = array('multi' => true, 'orderby' => 'run_time ASC'); $aFields = array('run_time', 'status'); $aValues = array(); $aValues[] = array('type' => 'after', 'value' => $date); $aValues[] = array('type' => 'nequals', 'value' => 'disabled'); return KTEntityUtil::getBy('schedulerEntity', $aFields, $aValues, $aOptions); } // STATIC function &createFromArray($aOptions) { return KTEntityUtil::createFromArray('schedulerEntity', $aOptions); } // STATIC function &getList($sWhereClause = null) { return KTEntityUtil::getList2('schedulerEntity', $sWhereClause, $aOptions); } // STATIC function &getByTaskName($sName) { return KTEntityUtil::getBy('schedulerEntity', 'task', $sName); } function clearAllCaches() { return KTEntityUtil::clearAllCaches('schedulerEntity'); } /** * Display the task name. If the task is disabled then grey it out. * */ function getTaskDiv() { $sId = $this->getId(); $sStatus = $this->getStatus(); $sDiv = "<span id='font{$sId}' "; $sDiv .= ($sStatus != 'disabled') ? 'class="">' : 'class="descriptiveText">'; $sDiv .= $this->getTask().'</span>'; return $sDiv; } function getFreqDiv() { $sId = $this->getId(); $sStatus = $this->getStatus(); $sFreqs = $this->getFrequencyByLang(); $sLink = "<div id='div{$sId}'"; $sLink .= ($sStatus == 'disabled') ? 'style="visibility: hidden;" >' : '>'; $sLink .= $sFreqs.'</div>'; return $sLink; } /** * Get a link to alter the frequency of a task */ function getAlterFreqLink() { $sId = $this->getId(); $sStatus = $this->getStatus(); $sLink = "<input type='button' id='freqLink{$this->getId()}' onclick='javascript: showFrequencyDiv(\"{$sId}\");'"; $sLink .= " value='"._kt('Change Frequency')."' "; $sLink .= ($sStatus == 'disabled') ? 'style="visibility: hidden;" />' : ' />'; return $sLink; } /** * Run the task on the next iteration */ function getRunNowLink() { $sId = $this->getId(); $sStatus = $this->getStatus(); $sUrl = KTUtil::ktLink('admin.php', 'misc/scheduler', 'action=updateRunTime'); $sTitle = _kt('This task will run the next time the Scheduler runs'); //, and then revert to the frequency you set on this page'); $sLink = "<input type='button' id='runnowLink{$this->getId()}' onclick='javascript: runOnNext(\"{$sId}\", \"{$sUrl}\");'"; $sLink .= " title='$sTitle' value='"._kt('Run on Next Iteration')."' "; $sLink .= ($sStatus == 'disabled') ? 'style="visibility: hidden;" />' : ' />'; return $sLink; } /** * Run the task on the next iteration */ function getStatusLink() { $sId = $this->getId(); $sStatus = $this->getStatus(); if($sStatus == 'system'){ return ''; } $sDisableText = _kt('Disable Task'); $sEnableText = _kt('Enable Task'); $sLinkText = ($sStatus == 'enabled') ? $sDisableText : $sEnableText; $sUrl = KTUtil::ktLink('admin.php', 'misc/scheduler', 'action=updateStatus'); $sLink = "<input type='button' id='statusLink{$this->getId()}' onclick='javascript: toggleStatus(\"{$sId}\", \"{$sUrl}\", \"{$sDisableText}\", \"{$sEnableText}\");' value='{$sLinkText}' />"; return $sLink; }}?>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?