帝国CMS二次开发 – 使用程序本身的SQL类

22 3 条评论

简述:帝国CMS封装了一个SQL,文件位置是e/class/db_sql.php;使用程序本身的类库可以给我们的开发带来便利和效率;同时可以减少增设文件数量等;今天就和trylife一起了解下帝国CMS的SQL类和使用方法;

首先:做下准备工作

  • 1.在e目录下建立测试目录,例如我建立的是e/trylife/td-test/
  • 2.在1中目录下建立个PHP文件,例如我建立的是e/trylife/td/test-db_sql.php
  • 3.文件中写入代码如下
  • < ?php
    /*引用文件*/
    include("../../class/connect.php");
    include("../../class/db_sql.php");
    
    /*建立数据库链接 与 实例化类*/
    $link=db_connect();
    $empire=new mysqlquery();
    
                       /*中间的这个位置用于我们测试代码*/
    
    /*关闭数据库连接 与 释放类*/
    db_close();
    $empire=null;
    ?>
    

    ECMS二次开发 – 投稿流程的简单增设练习

    11

    接下来,使用简单的<?php  echo ‘你好’; ?>来对投稿流程中增设代码进行练习; 在下面的过程中将使用ECMS(帝国CMS)二次开发1 – 基本方式概述第三项,第三种方式:

    1.在如下目录e\trylife\MemberAddIonfo中建立文件fun.php,并写入如下代码

    
    



    2.在e/Doinfo/ecms.php中加入如下代码:

    require("../trylife/MemberAddIonfo/fun.php"); //20091110 trylife for test Maddinfo
    

    加好后参考如下:

    require("../class/connect.php");
    require("../class/db_sql.php");
    require("../trylife/MemberAddIonfo/fun.php"); //20091110 trylife for test Maddinfo
    



    3.在e/class/qinfofun.php DodoInfo()函数体内加入函数如下代码:

    TestMAddinfo(); //trylife add for test MaddInfo 20091110
    

    修改后参考如下:

    esetcookie("lastaddinfotime",time(),time()+3600*24);//设置最后发表时间
    			TestMAddinfo(); //trylife add for test MaddInfo 20091110
    			printerror("AddQinfoSuccess",$reurl,1);
    



    4.前台投稿,可以看到跳转链接的字了

    备注:
    1.这只是一个简单的测试,做完这一个流程后可以理解怎样增设功能
    2.echo 可以有跟踪代码的作用;当然用工具也可以;

    帝国CMS二次开发

    10

    更新中……

    主目录:

    1.1 帝国CMS二次开发 – 基本方式概述

    1.2 帝国CMS前台投稿流程

    1.3 帝国CMS次开发 – 投稿流程的简单增设练习

     

    示例:
    1.
    帝国CMS反馈发送邮箱文档

     

    附录资料:

    1.ECMS v6.0 Cookie及其管理员/会员登录信息获取

     

    ECMS(帝国CMS)二次开发1 – 基本方式概述

    10

    1.首先查看前台投稿流程图及其备注内容:
    http://www.trylife.cn/member-add-info-process-on-ecms/



    2.ECMS处理信息的方式基本都是这样的一个流程:
    ①表单提交enews=?
    ②信息处理脚本页接收enews值并根据其值选择引用文件,和处理函数
    ③处理函数进行处理,并引用相关处理函数按流程处理信息内容和录入更新删除数据
    ④根据情况中途或结束,使用printerror()函数终止函数继续向下运行,和打印提示信息,返回页面;



    3.根据2中的提示,插入一些后台不能提供的功能:
    ①如果功能是在处理信息函数流之外,那么可以在表单处理脚本页进行引用文件或插入处理函数;
    eg:反馈发送到邮箱 http://www.trylife.cn/ecms-feedmail/
    备注:其实反馈发送到邮箱不是一个充分的例子,因为如果反馈内容没有填写完整或者不成功,在引用的反馈发送邮箱文件中也没有同等判断的时候;这个程序将会是不完美的;可能出现的情况为,反馈内容没有录入到数据库,却发送到了邮箱;当然在客户不需要ECMS后台反馈内容,与邮箱接收的反馈内容对等的时候,这样做是没有问题的。
    ②.如果客户要求对等信息,那么就在信息处理函数,返回成功信息前加入“反馈发送邮箱”的引用文件;
    ③.涉及大量的功能增设,可以考虑引用文件在表单处理页面,并将引用文件中的函数插入到需要插入的函数体内;



    4.为什么不直接在函数体内写入二次功能,而要使用引用文件按
    1.不容易管理二次开发文件;
    2.源代码函数体内书写代码,会造成以后升级不便;



    5.我的二开文件放在什么文件夹里
    ECMS没有专门为二开设置文件夹,你可以在e目录及其e/admin目录下分别设置两个目录,用于放置你二开新增的文件,例如我的设置如下:

    e/trylife 非后台涉及文件目录
    e/trylife/js JS目录
    e/trylife/css CSS目录
    e/trylife/Mail 非后台涉及Mail相关新增PHP文件

    e/admin/trylife 后台新增文件目录
    以下同e/trylife



    6.二开文档
    保持良好的二开文档习惯,有利于代码的重写和程序的升级,包括以下内容:
    0.新增文件代码内容注释
    1.新增文件功能说明
    2.修改文件说明
    3.其他备忘备注



    7.用户使用文档&插件安装文档
    安装文档基本就是二开文档内容,使用文档,介绍功能使用方式!



    转载请注明出处:http://www.trylife.cn/ecms-repeatedly-development-1/

    ECMS Mail 其他模块使用测试代码

    27
    //PHP开始
    //如不在e/trylife/Mail/内则改对应引用位置
    include("../../class/db_sql.php");
    include("../../class/connect.php");
    include("../../class/SendEmail.inc.php");
    
    //开启数据库链接
    $link=db_connect();
    $empire=new mysqlquery();
    //群发
    //$email=array("827216443@qq.com","trylife@qq.com","94592590@qq.com");
    
    	$email    ='trylife@qq.com';
    	$subject  ='邮件标题';
    	$text     ='邮件内容';
    	$sm       =EcmsToSendMail($email,$subject,$text);
    	echo '发送成功 发送时间为'.date("Y-m-d H:i:s");
    
    //关闭数据库链接
    db_close();
    $empire=null;
    //PHP结束
    

    测试:
    1.到帝国后台配置下邮件参数
    2.新建一个PHP文件放入上边的代码 把trylife@qq.com改成你的邮件地址
    3.将2中的文件放入e/trylife/mail/文件夹下或者e/x/xx/文件夹下
    4.浏览器打开访问(如果参数没有配置错,你的所在空间又有邮件功能那你可以收到邮件了)