首页 > 网站 > 建站经验 > 正文

如何在ecshop后台中添加自定义的任务计划

2024-04-25 20:40:06
字体:
来源:转载
供稿:网友

如何在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’}这个语句的,如果自己的模板中没有这个语句就没法正常运行了

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表