如何在ecshop后臺中添加自定義的任務計劃,最模板解析說明如下:
所有的任務計劃都放在/includes/modules/cron這個目錄中,每一個文件的名稱就是一個計劃任務的code,每個任務計劃對應的變量中文說明都在/languages/zh_cn/cron/這個目錄中的相應文件中。
下面我們來新建一個自己的任務計劃。
(1)在/includes/modules/cron目錄中新建一個new_cron.php文件,文件內容格式如下:
<?php
$cron_lang = ROOT_PATH . ‘languages/’ .$GLOBALS['_CFG']['lang']. ‘/cron/new_cron.php’;
if (file_exists($cron_lang)) {
global $_LANG;
include_once($cron_lang);
}
/* 模塊的基本信息 安裝的時候用*/
if (isset($set_modules) && $set_modules == TRUE) {
$i = isset($modules) ? count($modules) : 0;
/* 代碼 */
$modules[$i]['code'] = basename(__FILE__, ‘.php’);
/* 描述對應的語言項 */
$modules[$i]['desc'] = ‘my_cron_desc’;
/* 作者 */
$modules[$i]['author'] = ‘阿飛的博客’;
/* 網址 */
$modules[$i]['website'] = ‘http://www.afeiblog.com.cn’;
/* 版本號 */
$modules[$i]['version'] = ‘2009-11-06′;
/* 配置信息 一般這一項通過serialize函數保存在cron表的中cron_config這個字段中*/
$modules[$i]['config'] = array(
array(’name’ => ‘my_cron_name’, ‘type’ => ‘text’, ‘value’ => ‘阿飛的博客’),
array(’name’ => ‘my_cron_time’, ‘type’ => ‘text’, ‘value’ => ‘30′)
);
//name:計劃任務的名稱,type:類型(text,textarea,select…),value:默認值
return;
}
//下面是這個計劃任務要執行的程序了
//比如可以定時執行一下清理緩存的內容
//還可以定時更新新的留言…..看你的要求了
?>
此時你再打開任務計劃的時候,在列表中就可以看到你剛才添加上的內容了。這時先不要做任務操作,接著向下看。
(2)在/languages/zh_cn/cron/這個目錄中新建一個new_cron.php,內容如下:
<?php
global $_LANG;
$_LANG['new_cron'] = ‘阿飛的計劃任務’;
$_LANG['my_cron_desc'] = ‘阿飛的博客’;
$_LANG['my_cron_name'] = ‘阿飛的博客’;
$_LANG['my_cron_time'] = ‘自動執行時間間隔’;
?>
現在已經配置完成了我的任務計劃了,接下來我們開始安裝了。
(3)進入”系統設置”->”計劃任務”中,點擊”安裝”新建的計劃任務,進入到配置頁,點提交就可以完成安裝了。
(4)安裝成功后,再對它進行相應的編輯,如果”高級選項”中的”允許執行頁面”為空,表示只要用戶訪問網站就會執行這個定時任務計劃。
(5)要想讓任務正常執行還需要其它的設置,”系統設置”->”商店設置”->”基本設置”->”是否開啟命令行調用計劃任務”,選擇”否”,此外還要在page_footer.lbi文件中加
{insert name=’query_info’},這樣才能正常執行,如果不想使用{insert name=’query_info’},可以在includes/lib_insert.php中添加自己的函數,比如:
function insert_cron_info() {
/* 加入觸發cron代碼 */
$cron_method = empty($GLOBALS['_CFG']['cron_method']) ? ‘<img src=”api/cron.php?t=’ . gmtime() . ‘” alt=”" style=”width:0px;height:0px;” />’ : ”;
return $cron_method;
}
這樣把{insert name=’query_info’}替換成{insert name=’cron_info’},多余的信息就不顯示了。
提示:一般系統默認的模板是有{insert name=’query_info’}這個語句的,如果自己的模板中沒有這個語句就沒法正常運行了
新聞熱點
疑難解答