用过织梦的人都知道,织梦会员系统相当强大,跟论坛程序差不多,对于使用会员系统的人来说,织梦系统足够用的了,但是,有时候,织梦系统很多的地方又不是我们所希望,或都说,有的地方不适合我们使用,这时候就要对织梦会员系统进行二次开发,所以,分析会员系统也是我们对织梦会员进行二次开发所需要的。
本教程先对织梦注册会员列表进行简单分析,注册会员列表位置:后台——>会员——>注册会员列表。截图如下所示。
织梦注册会员列表对应的文件是:dede/member_main.php,对应的模板是member_main.htm,用到的js是member.js文件。
本次教程介绍:1. 筛选功能,即sql语句的拼接;2.会员删除过程
一、筛选功能,如下图所示。
其实,这个筛选以前我们在织梦高级搜索分析里,已经讲解过,就是拼接sql语句,打开文件member_main.php,从约59行开始,一直到102行结束,这段就是sql语句拼接与显示过程。大体过程是这样的,根据用户选择的条件,然后,拼接对应的sql语句,然后,存放到一个数组中,最后,通过join(' AND ',$wheres),把数据变成用and连接的sql字符串,然后,再执行查询,即可实现用户在点搜索后实现查询排序。
在模板文件member_main.htm中,我们看到这样一个标签{dede:global name='sortform'/},这个我们在文件member_main.php中就可以找到,对应的变量$sortform,这种调用方式,对我们进行二次开发有一定借鉴作用,还有一个在这个php文件中,设定一个数组,例如$staArrmatt = array(1=>'被推荐', 0=>'非普通 ' );然后,我们可以在对应的模板里面,用php进行循环,使用,这也是本次教程要介绍的一个小技巧。
二、会员删除过程。
今天郑重向大家介绍一下,我们在开发网站中,常用的一个js功能:全选,取消,单选,这个用处很广,织梦系统里面的应用也很广。在织梦系统里面这个功能是通过js来实现的,在本教程里面在文件member.js里面。但是如果用jquery的话,这个功能更简单。
删除过程:当我们全选时,通过<a href="javascript:delArc(0)" class="coolbg"> 删除 </a>,这句里面的js函数delArc(0),通过member.js文件,把选中的对应的id,通过`分隔开来,即类似`1`2`3等,然后,赋给js里面的变量qstr,然后,通过js的定位location="member_do.php?id="+qstr+"&dopost=delmembers"传到,文件member_do.php里面,这样,这个文件,就可以根据这里面的对应的id进行删除操作。
织梦会员系统是相当复杂的,所以,无论是删除一个会员,还是删除批量选中的会员,都要把这个或这些会员的相关信息,全部删掉,与会员相对应的数据库表有:
会员主表:dede_member
会员统计表:dede_member_tj
会员空间表:dede_member_space
企业会员表:dede_company_space
个人会员表:dede_person_space
收藏表:dede_member_stow
会员连接表:dede_member_flink
会员留言表:dede_member_guestbook
会员操作表:dede_member_operation
会员发信息表:dede_member_pms
会员朋友表:dede_member_friends
会员浏览历史表:dede_member_vhistory
评论留言表:dede_feedback
主表:dede_archives 把主表中的会员mid置成0,这样无论以前这个会员是什么类型的会员,都变成不是会员了,也就是以前作为会员的在主表留下的权限,取消掉。
以上是删除一个会员必须删除的记录及相关的设置,连同评论一起删除掉。从上面列出的表,我们就可以看出,会员系统的复杂性,它不像文件或其它模型或模块,只有那么一个主表,附加表,栏目表等几个,之所以,会员有这么多表是因为,一般我们在任何模型里面,都可以用会员这个功能,所以,会员功能复杂性难免于此。
以后,如果我们设计会员系统的话,完全可以借鉴一下织梦这个会员系统,有很多很多东西都可以直接拿来用。