如果你是dedecms作为主站,论坛作为辅助站,那么这个方法比较适合你。
一般dedecms整合discuz之后有个问题,就是在dedecms端注册的用户需要在discuz登陆一次才可以在论坛激活,当然激活以后就可以同步登陆推出了,但是这个步骤会给用户带来一些困惑和不便。
本方法目的就是去掉这个激活步骤,原理就是在向ucenter数据库添加用户的同时向discuz数据库添加用户:
修改dedecms站点\uc_client\model\user.php的add_user()函数,在最后一句:return $uid;之前插入代码:
$this->db->query("INSERT INTO `ultrax_ceshi`.pre_common_member SET uid='$uid', username='$username', password='$password', email='$email', adminid='0', groupid='10', regdate='".$this->base->time."', credits='0', timeoffset='9999'");
$this->db->query("INSERT INTO `ultrax_ceshi`.pre_common_member_status SET uid='$uid', regip='$regip', lastip='$regip', lastvisit='".$this->base->time."', lastactivity='".$this->base->time."', lastpost='0', lastsendmail='0'");
$this->db->query("INSERT INTO `ultrax_ceshi`.pre_common_member_profile SET uid='$uid'");
$this->db->query("INSERT INTO `ultrax_ceshi`.pre_common_member_field_forum SET uid='$uid'");
$this->db->query("INSERT INTO `ultrax_ceshi`.pre_common_member_field_home SET uid='$uid'");
$this->db->query("INSERT INTO `ultrax_ceshi`.pre_common_member_count SET uid='$uid', extcredits1='0', extcredits2='0', extcredits3='0', extcredits4='0', extcredits5='0', extcredits6='0', extcredits7='0', extcredits8='0'");
其中ultrax_ceshi代表discuz的数据库名,请修改为您的数据库名字
以上代码在整合discuz 3.0时测试无误。
以上代码解决了从dedecms注册的用户免激活直接登录论坛功能(因为我的网站只允许从主站注册不允许从论坛注册),
如 果你想解决从discuz注册的用户免激活直接登录dedecms同样的道理,需要修改discuz下面的\uc_client\model \user.php 使其在向ucenter数据库添加用户的同时向dedecms数据库添加用户(此处可以参考dedecms的用户注册时相应的代码),感兴趣的会员可以实 验一下并提供具体代码。
转自:http://bbs.dedecms.com/630281.html