帝国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 文件同一复制到一个文件夹内,这样系统升级不会造成麻烦,文件函数管理也都方便~
发现实际也没什么好写的下一篇了
帝国CMS关联字段应用简介
这个功能主要是为了两个或多个模型行数据间关系而产生的;例如音乐模型中的数据关系如下:
phome_ecms_singer(歌手数据表)
id //歌手ID
title //歌手名
text //歌手简介
phome_ecms_album(专辑数据表)
id//专辑ID
title //专辑名称
singer_id //歌手ID 这个歌手ID就是关联的 歌手数据表中的id字段
phome_ecms_music(专辑数据表)
id//歌曲ID
title //歌曲名称
singer_id //歌手ID 这个歌手ID就是关联的 歌手数据表中的id字段
album_id //专辑ID 这个专辑ID就是关联的 专辑数据表中的id字段
downpath //音乐地址
选择外表关联字段 与 下拉外表关联字段优缺点
使用帝国CMS关联字段有“选择外表关联字段”与“下拉外表关联字段”两种关联表单录入方式;
选择外表关联字段:弹出新页面选择要录入的值,优点是避免过多数据载入到表单页导致添加信息表单加载慢,别且可以搜索,缺点例如当我们要使用id作为录入字段,title作为显示字段的时候,再次修改表单带来了信息确认上的困难(使用id 等INT类型是因为查询的时候较为高效);
下拉外表关联字段:优缺点正好反过来……
关联字段的数据调用
灵动标签+SQL示例:专辑内容页调用所有专辑下歌曲
[e:loop={"select * from {$dbtbpre}ecms_music where album_id='$navinfor[id]' order by id desc",0,24,0,'',''}]
//这里是木板内容 内容页内的字段值可以使用$navinfor[字段]的方式获取
[/e:loop]
使用结合项:有关结合项可以看官方结合项解密
规避帝国CMS原有的管理字段缺点 使用AJAX效果
做的好点不仅可以规避原有管理字段的缺点而且还可以做到同页面录入关联模型信息,这个就不多说了(trylife的JS现在还是个白菜,有JS的问题可以问装B的凡姐 哈哈)截张近期项目的图;

这张图还少了一张游戏账号表

类似百度的搜索关键字下拉

游戏账号的无刷新录入和管理
帝国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-设置与缓存》这样个文档
//如果能采纳就方便多了哈

传送门:点击传送到评论文章页
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个左右这样的问题,这样的频率会比较好;
—————————————————————————– 口味分割线 题外内容 ————————————————————–
《大学同居的事》里的安宁笑起来好甜撒,不过《毛骗》里就不甜了,不过《毛骗》比《大学同居的事》更好看些;

《大学同居的事儿》安宁

《大学同居的事儿》安宁

《大学同居的事儿》安宁