因帝国没插件API,做帝国CMS二次开发特别容易出现系统升级,文件管理混乱等麻烦,trylife有一些凌乱的规则和大家分享下:
1.不在原系统中更改不会出现漏洞的插件 建议都独立来做 ,不在原系统中更改;比如今天的AJAX登陆 注册 下载,不用AJAX也一样能登陆注册和下载并且用户即使找到了老的登陆连接,老的注册地址,老的下载地址,也不会出现漏洞;
2.如果不更改原系统文件就会出现漏洞,那么也不要在原文件中一片一片的写代码,把代码都写到自己文件里,以函数为单位,把文件引用到适当位置把函数插入到要更改的地方并且加上注释;今天碰巧看到一位仁兄做的都是一大片一大片的代码插入,本来整洁的e/DoInfo/ecms.php一片狼藉.以后会多麻烦~
3.有些文件系统会重新生成的,代码不要手写到这些文件里;都知道e/class/config.php是配置文件 里面有整站参数设置,模型信息等,经常会更新硬挨也没有人向这里手写代码;
e/data/dbcache/class.php (栏目和专题缓存文件,默认引用了栏目缓存 e/data/dbcache/class1.php 专题缓存e/data/dbcache/ztclass.php )上次一个朋友把文件引到这里,因为栏目缓存基本是全站引用的捎带着就把自己定义的文件引进去了,而且又是一个僻静的角落,当时trylife也觉得这地方引用文件还不错又干净又僻静;今天想起来仔细一看这个文件也是系统会更新的,建立超过250个栏目就有class2.php出现了(代码可以看e/class/functions.php GetClass()函数);
4.自己创建的文件不要乱放;目前为止trylife使用的目录结构如下:
e/trylife/common/ 放置常用的JQuery js插件 自己常用的PHP函数文件
e/trylife/插件1英文目录名/ js php html等此插件独有必须的文件
e/trylife/插件2英文目录名/
e/trylife/插件3英文目录名/
…
e/trylife/插件n英文目录名/
(待续。。。)
帝国CMS AJAX无刷新登陆/注册/下载 截图



trylife的开发手记
登陆状态
登陆状态比较好处理,原本帝国CMS的登陆状态是生成到e/member/login/loginjs.php文件里的,复制一份文件到e/trylife/ajax/loginjs.php 修改下,ajax访问这个文件并把返回值写到模板里即可,(trylife这里用的JQuery库)
登陆/注册/下载操作
这里涉及要修改的函数比较多,主要是把函数中的printerror()函数改掉,建议把所有涉及的函数都拷贝出来做,e/enews/index.php e/DownSys/DownSoft/index.php 文件同一复制到一个文件夹内,这样系统升级不会造成麻烦,文件函数管理也都方便~
发现实际也没什么好写的下一篇了
地址:http://www.planeart.cn/demo/artDialog/
这个是做商城赠品用到的截图

这个是做浅阅文件用到的功能截图


e/class/q_functions.php 搜索 printerror(“AddFeedbackSuccess”,$reurl,1);
在其上一行加入代码如下:
//trylife反馈发送到邮箱 [s] 1/1
//所需字段用 $add[字段]来表示
if($bid==1)//反馈ID1
{
$sendmail=1;//1 发邮件 0不发邮件
$email=array('94592590@qq.com');
$subject='邮件标题';
$content='邮件内容';
}
elseif($bid==2)//反馈ID2
{
$sendmail=1;//1 发邮件 0不发邮件
$email=array('94592590@qq.com');
$subject='邮件标题';
$content='邮件内容';
}
elseif($bid==3)//反馈ID3
{
$sendmail=1;//1 发邮件 0不发邮件
$email=array('94592590@qq.com');
$subject='邮件标题';
$content='邮件内容';
}
//发送邮件部分
if($sendmail)
{
@include(ECMS_PATH.'e/class/SendEmail.inc.php');
EcmsToSendMail($email,$subject,$content);
}
//trylife反馈发送到邮箱 [e] 1/1