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的完美整合方案的子教程

需要手工修改的文件列表如下:

  1. 【pw】\admin\manager.php

  2. 【pw】\lib\user\ user.class.php

  3. 【pw】\lib\user\userservice.class.php

  4. 【pw】\u\require\profile\info_safe.php

  5. 【pw】\require\checkpass.php

  6. 【pw】\global.php

  7. 【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文件,见压缩包:

整合phpwind 8.7需要新修改的两个文件

posted @ 2012-03-16 08:03  前望  阅读(585)  评论(2编辑  收藏  举报