帝国CMS添加信息成功后处理函数

21

帝国CMS本身已经具有字段处理函数,但是字段处理函数只能应用到添加信息入库前处理,信息入库后返回成功提示前处理就无能力为力了,但是这方面的处理又是很必须。

eg1:比方说trylife现在经手的《游戏发号》项目里有这么一个功能:帝国CMS发布文章同时发布到DiscuzX,领号用户需在DiscuzX更贴后才能领号;帝国CMS发布文章同时发布到DiscuzX这样的功能就需要在帝国CMS添加信息入库后于成功返回前进行操作,如果使用字段处理函数,文章因字段问题没有成功入库,因某些字段内容填写错误,发回错误提示,这样就及其有可能造成DX内错误信息;

eg2:再例如以trylife前有个《建材项目 》里,由于品牌和商品都是用户录入的,品牌可能存在也可能不存在,添加商品的时候录入品牌,这个时候就不能用字段处理函数,因有可能商品录入不成功而导致多余的品牌数据录入到库中,所以选择的是商品信息入库后,返回成功提示前处理;

简单的处理

以后台添加信息为例,简单说下添加信息处理
后台添加信息函数:AddNews($add,$userid,$username)
函数定义位置:e/class/hinfofun.php
简单的处理,我们只需要在AddNews()函数体内的下面代码上一行加入需要处理的代码即可
printerror("AddNewsSuccess","AddNews.php?enews=AddNews&ecmsnfrom=$add[ecmsnfrom]&bclassid=$add[bclassid]&classid=$add[classid]");

扩展下

上边的方法老是改系统文件,trylife个人认为比较烦,越改越多,臃肿的文件看着心里会烦;所以trylife在e/class/userfun.php定义了一个函数

//后台添加信息入库后与返回成功提示前处理函数
function AddNews_BeforeSucDo($add,$userid,$username)
{
//以后在这里添加处理
}

还是有更好的方法,待续……

//类似这样的问题,比如注册,前后台添加信息,评论,等都有必要存在入库前处理函数和入库后处理函数。
//整理好函数方面的建议,还是要给王猛老大发一份。
//上次给老大发了一份《帝国CMS方便拓展建议1-设置与缓存》这样个文档
//如果能采纳就方便多了哈

TryLife你太装B了

17 16°


传送门:点击传送到评论文章页

phome234这个ID是phome4429,水平凡,传送门到凡姐的博客

这哥们用心良苦啊

北京的哥们哦,评论了一遍,难道怕评论不上又COPY了一遍;

不多解释,本来牛A就装B

装B在这个年代完全不是非主流个人爱好,已经成为了群居动物的群体爱好了;哥只是顺应潮流稍有染指。

有些客户十分有共享精神

有些客户订做了插件,直接请求分享到论坛,也没有拒绝就分享了,还有客户订做了插件自己就分享到论坛了,还有订做插件自己分享到论坛求精华的(囧,当然trylife没给射精~)

计划是要分析部分插件的

trylife做的插件/二次开发基本的都是客户订做,我是打算分享到论坛的,但是顾及到客户心理和个人收入,分享到计划是将客户的插件升级到BT版本,之后分析普通版本到论坛;当然坦诚的说我的成品分享精神如同装B一样只是稍有染指(本来哥就是这样诚实的人)。

其实哥分享的是渔(重点)★★★★★

授人以鱼不如授人以渔:
正所谓授人以鱼不如授人以渔,翻trylife的博客从第一页向后翻,从帝国CMS数据字典到现在探索的内容和过程几乎分享给大家了(都是trylife开发制作过程中积累下来的经验,每篇都认真写),拿着法宝的不一定是牛B的神,有创造力的才是牛B的神,哥想让有能力的人成为能动手的人,好好体会阿门,阿弥陀佛,看下一点;

帝国CMS二次开发人才匮乏:
帝国CMS官方论坛里那么多签名帝国CMS二次开发,帝国CMS插件开发的,有没得调查有几个能真正做出一款插件的,告诉你很少很少,装B的说trylife是第一个写帝国CMS二次开发相关的人,转载哥博客的内容也很多,额哥其实想说的是哥想间接培养人才,培养出来先巩固开发者收入(经济社会角度上讲是这样,天朝做免费很难长久),有足够的人才能够有竞争局面的时候再带着分享,所以又竞争关系的插件哥都让他们联系第一开发者,哥这份良苦的用心竟然这样被忽略真是悲哉!

出于虚荣心,还是希望在我博客上能有一些提问:
问题不能太广,太空,大概用3个小时内测试,分析,详细写博文;类似这个《帝国CMS商城代码解析1 – 购物车cookie》(这其实是一个人问的问题);看帝国CMS也看了很多年了,自己想写什么也不知道写什么,一周4个左右这样的问题,这样的频率会比较好;

—————————————————————————– 口味分割线 题外内容 ————————————————————–
《大学同居的事》里的安宁笑起来好甜撒,不过《毛骗》里就不甜了,不过《毛骗》比《大学同居的事》更好看些;
大学同居的事儿 安宁
《大学同居的事儿》安宁

大学同居的事儿 安宁
《大学同居的事儿》安宁
大学同居的事儿 安宁
《大学同居的事儿》安宁

想把我的博客系统换成帝国CMS

16 11°

以前用wordpress除了因为wordpress是一个专业的博客系统,受世界大部分独立博客的追捧,另外就是想捣鼓下wordpress;但是真多年鸟,想捣鼓但是弄三两下就没兴趣了 囧;如果换成帝国CMS我就熟悉鸟,毕竟偶是搞帝国CMS二次开发的撒,对帝国CMS结构函数,功能,操作,都了如指掌哈;

对帝国CMS了解弄个功能轻而易举

像弄个评论邮件鸟,AJAX评论撒;如果在帝国CMS上弄就会轻而易举,在wordpress上弄,就会觉得头大无比,不是说WP不好的意思,就是俺不了解,所以觉得比较麻烦;

自己搞帝国CMS二次开发,平常作品功能可以集过来

另外弄个演示站吧,也没几个人访问,还不如都结成到博客上哈哈,各种演示。

就是转换数据比较麻烦

自己弄个目录还是www.trylife.cn/xxx/这样的目录,转换过来麻烦,也没WP2ECMS的程序,转换起来会麻烦呢;最怕麻烦囧

啥时候转每个准,不知道有没一起转的童鞋

不知道有没一起转的童鞋,自己弄很无聊呢,很多人还可以一起讨论讨论,事情变得有意思鸟;

好像转却又觉得太麻烦 囧

帝国CMS后台 登录成功 立即显示 您未登录

10

这是一个人找我解决的问题,排除浏览器不接收COOKIE,或者浏览器阻止接收该域名下的COOKIE;排除IP随时更变,只有A用户电脑登录出现RT异常;经对比A用户电脑和其他电脑COOKIE发现A电脑的COOKIE前缀被修改了;如下:
A用户电脑COOKIE:
Array
(
[,_lkmjhecmsdodbdata] => empirecms
[lkmjheloginlic] => empirecmslic
[lkmjhloginadminstyleid] => 1
…..以下内容省略
)

正常用户电脑COOKIE:
Array
(
[lkmjhecmsdodbdata] => empirecms
[lkmjheloginlic] => empirecmslic
…..以下内容省略
)

发现两个对比A用户电脑COOKIE明显的问题,lkmjhecmsdodbdata这个COOKIE名前多了个两个符号,_

初步觉得是,电脑中毒,或者浏览器插件引起的COOKIE篡改;谁有经验指点下这个浏览器的根源问题?

帝国CMS商城代码解析1 – 购物车cookie

02 12°

题外:
每天博客也没什么好写的,如果把一个系统用的透透彻彻那就是进步了,如果内部结构了解的透透彻彻了应该是成长了,如果是分析的透透彻彻那应该是上一个层次了,trylife现在做第二步,并向第三步骤发展;希望写出来的内容同样对大家有帮助,另外一系列的内容比较容易集中探讨问题,文章水平比较烂,有什么不足的地方请多指教,有什么要关于这个系列《帝国CMS购物车代码解析》要讨论我们可以在评论里讨论,当然有什么好问题更欢迎,本身博客要交换,更多是为浏览者而存在,也许你的问题就是下一篇博文呢。

帝国CMS商城前台相关文件

e/class/ShopSysFun.php 商城核心函数文件
e/ShopSys/buycar/index.php 商城购物车
e/ShopSys/order/index.php 订单信息填写页
e/ShopSys/SubmitOrder/index.php 订单确认提交页
e/ShopSys/ListDd/index.php 前台会员查看订单列表
e/ShopSys/ShowDd/index.php 前台会员查看订单详细

e/template/ShopSys/buycar.php 商城购物车模板
e/template/ShopSys/order.php 订单信息填写页模板
e/template/ShopSys/SubmitOrder.php 订单确认提交页模板
e/template/ShopSys/ListDd.php 前台会员查看订单列表模板
e/template/ShopSys/ShowDd.php 前台会员查看订单详细模板

增加订单入口链接

/e/enews/?enews=AddBuycar&classid=[!--classid--]&id=[!--id--]

增加订单函数

AddBuycar($classid,$id)
$classid 为栏目ID
$id 为文章ID

购物车cookie声明与读取

声明: SetBuycar($buycar) e/class/ShopSysFun.php
读取: $buycar=getcvar(‘mybuycar’);
帝国CMScookie操作函数查看《esetcookie() getcvar() -帝国CMS cookie 操作函数》

增加订单系统流程简介

1.从入口链接GET得到栏目ID和内容ID
2.判断信息在数据表中是否存在
3.设置购物车cookie
4.跳转购物车地址e/ShopSys/buycar/index.php
5.购物车(e/ShopSys/buycar/index.php)将会读取COOKIE分离后得到栏目ID,内容ID,购买数量

购车COOKIE格式

一种商品:|栏目ID,内容ID|购买数量!
二种商品:|栏目ID,内容ID|购买数量!|栏目ID,内容ID|购买数量!
三种商品:|栏目ID,内容ID|购买数量!|栏目ID,内容ID|购买数量!|栏目ID,内容ID|购买数量!
备注:查看购物车cookie可以在e/ShopSys/buycar/index.php中找到$buycar=getcvar(‘mybuycar’);修改为echo $buycar=getcvar(‘mybuycar’); 打开购物车就可以看到购物车COOKIE了

帝国CMS商城购物车 cookie开发示例:在购物车直接删除某件商品

分析:根据购物车COOKIE的格式,我们得到栏目ID,内容ID,购买数量(不一定是必须的),之后组合格式,删除COOKIE中的此段内容,重新打开购物车/或刷新购物车页面,这样就可以不用调整购物车,二直接删除某件商品;

要点:
1.需要一个PHP脚本页从用户删除商城COOKIE中删除提交的商品
2.为了直观方便体验好,还是使用AJAX效果(trylife使用的是JQuery),所以又下面2条
3.给购物车商品行加个ID格式为:product-栏目ID-信息ID-购买数量
3.商品行每行增加一个删除按钮
3.一个ajax函数用于处理删除动作

文件修改与增加:
修改文件:e/template/ShopSys/buycar.php 商城购物车模板
增加问津:e/trylife/ShopSys-demo/del-product.php 删除单个商品处理文件

最终效果截图:

示例下载与安装:
1.点击下载帝国CMS商城购物车 AJAX删除商品插件示例
2.解压后上传trylife目录到e目录
3.buycar.php上传覆盖到e/template/ShopSys/buycar.php 或对照修改

——————————————Exp.line———————————————
感谢凡姐关于JS的问题有问必答;各位朋友有关于帝国CMS商城的问题解析和本文的问题欢迎在本文下评论。《帝国CMS商城代码解析》下面的文章要写什么还是需要大家的方向标滴