西部数码主机 | 阿里云主机| 虚拟主机 | 服务器 | 返回乐道官网
当前位置: 主页 > php教程 > ecshop教程 >

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

时间:2012-06-22 21:06来源:未知 作者:好模板 点击:
如何在ecshop后台中添加自定义的任务计划,好模板解析说明如下: 所有的任务计划都放在/includes/modules/cron这个目录中,每一个文件的名称就是一个计划任务的code,每个任务计划对应的变

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

(责任编辑:好模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------