升级版 帝国CMS采集信息自动逐条入库 方法二

在上一篇《简单实现帝国CMS采集信息自动逐条入库功能》实现了自动入库之后一直在用。虽然解放了双手,但实际使用过程中还是感觉到不太方便。比如在自动入库过程中想停下来 就需要改扩展变量,没有办法立即停止。在此特针对这个问题做出改进。

特点:
1 增加了两个链接,直接点击就可开始、停止信息逐条入库。
2 开始自动入库后,每次页面加载完成会有1秒的反应时间 以方便停止。是为了避免手动停止不够及时 造成信息重复入库。
3 默认打开审核采集页面不会触发自动入库啦,可以放心的打开 编辑信息。

不熟悉代码的朋友最好先阅读完第一篇《简单实现帝国CMS采集信息自动逐条入库功能》,以加深理解,有些相同的步骤这里不再重复解释。

第一步:编辑/e/admin/CheckCj.php,首先在头部引入JQuery文件。(参考上述第一篇)

第二步:加入代码,本次所有html、php、javascript代码都写在一起了,方便管理。

<a href="CheckCj.php?classid=<?=$classid?>&from=cjAutoUpdate"> -- [开始自动入库]</a>
<a href="CheckCj.php?classid=<?=$classid?>"> -- [停止自动入库]</a>
<?php 
$cjAuto = $_GET['from'];
if($cjAuto == 'cjAutoUpdate') {
    echo "<input id='cjAutoUpdate' type='checkbox' checked /><span id='cjAutoText'>等待自动入库</span>";
}
?>
<script type='text/javascript'>
    function cjAuto() {
        if($('#cjAutoUpdate').is(':checked')) {
            if($('input.cjCheckBox').length > 0) {
                $('input.cjCheckBox').each(function() {
                    $(this).attr('checked',false);
                });
                $('span#cjAutoText').text('正在自动入库');
                $('input.cjCheckBox').eq(0).attr('checked',true);
                $('[name=Submit32]input').trigger('click');
            }
        }    
    }
    setTimeout(cjAuto,1000);
</script>

0002

第三步:删除这段:onsubmit=”return confirm(‘确认操作?’);”

0003

保存文件,完成。

原理:
利用了系统自带的一个参数’from’,(这个参数一般值都为空,加上参数之后也没有对其它功能有影响,比较安全)增加的两个链接区别就是后面的‘from=cjAutoUpdate’,把此参数去掉或让它的值不等于’cjAutoUpdate’即可停止自动入库

点击增加的链接’开始自动入库’,则页面中显示’等待自动入库’的复选框。在设定的时间之后,JQuery会开始对页面第一条信息提交入库,复选框后面的文字会变为’正在自动入库’。这时就已经开始入库了,耐心等待入库完成,入库成功跳转之后的页面默认还是’from=cjAutoUpdate’,会继续自动入库第一条信息。
点击增加的链接’停止自动入库’,页面就不会显示’即将自动入库’的复选框啦(建议在页面刚打开时、复选框后面的文字变成’正在自动入库’之前操作)。

0001

自动入库开始之后,页面打开默认的等待时间是1秒。可以把数字’1000’这部分增加为系统扩展变量(参考上述第一篇) 再引用过来,以方便修改等待时间。如果要改为2秒 就是2000,以此类推。如果要加快速度 可以改为小点儿的数值比如’10’,不要直接清空 以免程序报错。

测试版本:帝国CMS 7.0  EmpireCMS v7.0 Free (201303301830)

欢迎交流指正。
原创文章,转载请注明出处:http://www.mming.cc/blog/?p=763