UCenter整合方案 v1.1 – phpwind v8.3 & 8.5 & 8.7 手工修改
原文网址:http://www.orzcc.com/2011/01/641499.html
enter整合方案 v1.1 – phpwind v8.3 & 8.5 & 8.7 手工修改
发表于 2011/01/27 由 zcc
本篇为 enter与phpwind的完美整合方案的子教程
需要手工修改的文件列表如下:
-
【pw】\admin\manager.php
-
【pw】\lib\user\ user.class.php
-
【pw】\lib\user\userservice.class.php
-
【pw】\u\require\profile\info_safe.php
-
【pw】\require\checkpass.php
-
【pw】\global.php
-
【pw】\ _client\ _client.php(该文件可覆盖!)
1. 打开文件 【pw】\admin\manager.php
查找
-
$userService->add($mainFields, $memberDataFields);
在上面添加
-
// enter整合方案 - 新增创始人 [by orzcc 20110113] require_once (R_P . ' _client/ _client.php'); $email = $username.rand(1000, 9999).'@126.com'; // 伪造创始人邮箱 if (($uid = _user_register($username, $password, $email)) < 0) { switch ($uid) { case -1: $errmsg = 'illegal_username'; break; case -2: $errmsg = 'username_same'; break; case -3: $errmsg = 'illegal_email'; break; case -4: $errmsg = 'reg_email_have_same'; break; default: $errmsg = 'undefined_action'; } Showmsg($errmsg); } // end
查找
-
$userService->update($rt['uid'], array('groupid'=>3, 'password'=>$password));
在上面添加
-
// enter整合方案 - 创始人修改密码同步 [by orzcc 20110113] if($password) { require_once (R_P . ' _client/ _client.php'); $ status = _user_edit($rt['uid'], $username, '', '', $password, 1, $rt['email']); }// end
2. 打开文件 【pw】\lib\user\ user.class.php
查找
-
$ status = _user_edit($uid, $oldname, $info['username'], $info['password'], $info['email']);
替换成
-
// enter整合方案 - 后台修改用户 [by orzcc 20110118] $ status = _user_edit($uid, $oldname, $info['username'], '', $info['password'], 1, $info['email']);
3. 打开文件 【pw】\lib\user\userservice.class.php
查找
-
function update($userId, $mainFields = array(), $memberDataFields = array(), $memberInfoFields = array()) { $userId = intval($userId); if ($userId <= 0) return false;
在下面添加
-
// enter整合方案 - 修改用户密码 [by orzcc 20110328] require_once (R_P . ' _client/ _client.php'); if(in_array('password',array_keys($mainFields))) { $userdb = $this->get($userId); if($userdb) { $ status = _user_edit($userId, $userdb['username'], '', '', $mainFields['password'], 1, ''); } } // enter整合方案 - 修改用户密码 [by orzcc 20110328]
4. 打开文件 【pw】\u\require\profile\info_safe.php
查找
-
if ($propwd || $userdb['email'] != $proemail) {
在上面添加
-
// enter整合方案 - 记录用户输入的老密码和老邮箱 [by orzcc 20110118] $oldpwd_ = $_POST['oldpwd']; $oldemail_ = $userdb['email']; // end
查找
-
$userdb['password'] != $_POST['oldpwd'] && Showmsg('pwd_confirm_fail');
替换成
-
// enter整合方案 - 密码验证环节移至 _client中处理 [by orzcc 20110118] // $userdb['password'] != $_POST['oldpwd'] && Showmsg('pwd_confirm_fail');
查找
-
$userService->update($winduid, $pwSQL);
在其上面添加
-
// enter整合方案 - 更新用户资料 [by orzcc 20110118] if($pwSQL['password'] || $pwSQL['email']) { require_once(R_P . " _client/ _client.php"); $ state = _user_edit($winduid, $windid, '', md5($oldpwd_ ), $pwSQL['password'], 0, $pwSQL['email']); if($ state == -1) { Showmsg('pwd_confirm_fail'); } elseif($ state < 0) { Showmsg('通过会员中心更新用户资料失败'); } } // end
5. 打开文件 【pw】\require\checkpass.php
查找
-
if ($diff_sql) { $userService = L::loadClass('UserService', 'user'); /* @var $userService PW_UserService */ $userService->update($ _user['uid'], $diff_sql); }
替换成
-
if ($diff_sql) { // enter整合方案 [by orzcc 20110118] if (strlen($men['password'])==16) { $db->update("UPDATE pw_members SET password=".pwEscape($password)."WHERE uid=" . pwEscape($ _user['uid'])); } if ($men['salt']) { $db->update("UPDATE pw_members SET password=".pwEscape($password).", salt = '' WHERE uid=" . pwEscape($ _user['uid'])); unset($diff_sql['password']); }//end $userService = L::loadClass('UserService', 'user'); /* @var $userService PW_UserService */ $userService->update($ _user['uid'], $diff_sql); }
如果您的站点是转换版本,之前肯定也修改过checkpass.php的此处代码,请同样按照要求修改。此处代码已兼容转站版本
6. 打开文件 【pw】\global.php
查找
-
global $db_ifjump,$db_htmifopen;
在下面添加
-
// enter整合方案 - 登录状态同步 [by orzcc 20110324] global $showmsginfo; $ synJs = $showmsginfo; $if syc = str_replace('<script', '', $ synJs) == $ synJs ? 0 : 1; if($if syc) { $showmsginfo = ""; $db_ifjump = 1; } // enter整合方案 - 登录状态同步 [by orzcc 20110324]
查找
-
$output = str_replace(array('<!--<!---->', '<!---->', "\r\n\r\n"), '', ob_get_contents());
在下面添加
-
// enter整合方案 - 登录状态同步 [by orzcc 20110324] if($if syc) { $output .= $ synJs; unset($ synJs); } // enter整合方案 - 登录状态同步 [by orzcc 20110324]
最新更新:
phpwind 8.7版本的修改和上面一样,另外还需要修改template/wind/header_login.htm和mode/area/template/m_header.htm文件,见压缩包: