版本:帝国CMS6.5 GBK/UTF8 (简)
功能:发送一份欢迎邮件给新注册会员
作者:trylife
主页:www.trylife.cn
下载:trylife-plugin-RegWelcomeEmail

版本:帝国CMS6.5 GBK/UTF8 (简)
功能:发送一份欢迎邮件给新注册会员
作者:trylife
主页:www.trylife.cn
下载:trylife-plugin-RegWelcomeEmail

(图一)普通列表加入了对列表内容的检测,静态页面通过JQ版的AJAX获取了候选列表所有CLASSID,ID给静态页面上已经存在在候选列表的内容做了标记;还有提醒候选列表限量,候选列表现有数量;当然,使用迅雷/快车批量下载都是可以使用它们的联盟的;
(图二)候选列表,一个动态的列表,可以提示会员是否为包月(年/季),和提示所选共需要多少点数,下载扣点都遵循帝国原有设置;
(图三)迅雷批量下载迅雷批量下载很给力
(图四)快车??下载快车就没那么给力了,网上翻了页没见快车的批量下载,虽然知道快车的批量下载可以参考快车安装目录下的GetAllUrl.htm,经多次测试里面给的“外部”对象都没给上力(没有开放这个?加快车技术问也没见回复);所以只能在IE下连续弹出所选~




备注:商业定制不提供下载
版本:帝国CMS6.5 (未整合其他程序)
文件:e/class/user.php
函数:login1()
1.每次登陆向会员数据表更新的字段如下:
rnd: 作用是踢出上一个登陆此账号的用户
groupid: 作用是如果此用户会员组为空,则将此用户所在会员组更新为网站设置的默认用户会员组
备注:默认情况下和salt没关系
2.会员登陆必设COOKIE
mluserid
mlusername
mlgroupid
mlrnd
3.登陆附加设置COOKIE 空
第1次登陆
使用微博账号第一次登陆帝国CMS就是一个注册的过程,只是这个注册的过程在程序内部完成,trylife在第一次登陆过程中没有设置提示用户填写用户名、密码、邮箱、而是默认都给了默认值,要不和普通注册有啥区别,当用户想住在你网站的时候,他会更改自己的昵称密码和邮箱;第一次登陆过程中帝国CMS默认的几个必填项和字段设置如下:
用户名:微博昵称 如查询微博昵称已经存在则在昵称前加入前缀
密码:随机生成 使用帝国CMS函数 make_password(6) 生成6位的随机密码
邮箱:{新浪微博ID}@t.sina.com.cn API不提供邮箱所以先虚拟一个不存在的邮箱
会员组ID: 函数内解决可以给默认值,也可以使用$user_groupid e/class/user.php 默认注册会员组ID
其他必填字段:都提前给默认值
新增字段sinaweiboid:用于记录微博ID 便于下一次登陆
第1++次登陆
这时候处理就减淡了,根据授权取得的微薄ID 查询帝国CMS会员表得到username,userid,groupid,并使用函数make_password()随机生成12位的rnd,rnd更新到会员表将username,userid,groupid,新rnd写到COOKIE就完成了第1++次登陆;
修改昵称、密码、邮件 这个应该没啥烦恼

退出普通帝国CMS退出,不过微博授权session还在,也可以在退出函数e/class/user.php loginout1()修改下把微博的授权session清除。
为了session传递e/class/connect.php 加入了session_start(); connect.php 99.99%的全站动态页必引文件
同步投稿增加个字段用于记录微博信息ID,这个ID用于评论的时候同步评论到这条微博信息
同步评论如果回复也要同步,那也给评论表多建个储存
剩下的工作就没啥好说的了,修改投稿函数,评论函数,插入相关函数,enews.php ecms.php 加入新的引用文件。。
关于帝国CMS二次开发怎么放,修改系统文件怎么处理还是这个准则:《trylife凌乱的帝国CMS二次开发准则》
和你预想的一样,trylife这没提供下载,需要下载移步到凡姐的BLOG,凡姐有提供下载;

测试版本:帝国CMS6.5
功能位置:后台->其他管理->下载模型管理->管理地址前缀
相关函数:e/class/DownSysFun.php DoTypeForDownurl() , QDownLoadFile() , DownSoft()
功能解释:
HEADER:使用header转向,通常设为这个。
META:直接转自,如果是FTP地址推荐选择这个。
READ:使用PHP程序读取,防盗链较强,但较占资源,服务器本地小文件可选择。
1.看下面粘贴的帝国原函数DoTypeForDownurl() Header 与 Meta 两种方式都使用的真实地址,在这两种方式下浏览器不能读取的文件格式,例如RAR,ZIP等将直接直接弹出一个真实地址下载,txt等浏览器可读的文件格式则直接在线浏览;
2.默认不选择前缀的情况下,使用是Header
3.READ 这种方式下是利用PHP读取文件,并传递给浏览器,无论 RAR 还是TXT都会弹出下载,而不是浏览器直接读取,弹出的地址也是加密的地址类似:xxx.com/enews=DownSoft&classid=39&id=11&pathid=0&pass=7b9516932a88d44b4e4610e209f6288d&p=22:::J2qCrBGqmrxK
4.READ的加密地址判断是否有下载权限,也就是地址是否正确是由e/class/DownSysFun.php中DownSoft()函数来判断的,经测试如果不更改后台->系统设置->模型设置->下载验证码 的情况下流传出去是可以持续被下载的(没有用户组,积分等判断限制 如果要避免那么e/class/DownSysFun.php 第一行 $DownSys_CheckIp=0; 中的0改为1),帝国CMS也是通过这个方式来防盗链;
5.如果我不想使用下载地址前缀,而让TXT等格式可以弹出下载,那么你可以在e/class/DownSysFun.php中搜索DoTypeForDownurl($downurl,$downurlr['downtype']);上一行加入如下代码:
//trylife add check type 20101231
//不使用下载地址前缀 让txt等浏览器可读类型文件弹出下载
//A.F4
$type2r=array(".xls",".txt",);
if(in_array(GetFiletype($downurl),$type2r))
{
$downurlr['downtype']=2;
}
因帝国没插件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英文目录名/
(待续。。。)