[問題]怎樣可讓用戶更改顯示名稱
發表於 : 2004-11-11 16:35
想讓用戶更改顯示名稱, 但不是登入名稱.
謝謝
謝謝
代碼: 選擇全部
##############################################################
## MOD 名稱: 會員暱稱 Change User Nick Name
## MOD 原始作者: 動機不明 < szyang@yam.com >
## MOD 強化作者: 依夢兒 < weichenho@seed.net.tw > http://morningmusumenet.net
##
## MOD 修改整合作者: 心霜 < final.dante@msa.hinet.net > http://www.StarryHometown.com
## MOD 說明: 會員資料多一個暱稱名字
## MOD 版本: 1.0.6
##
## 安裝難度: Easy.
## 安裝時間: 5 分鐘
## 修改檔案:
## admin/admin_users.php
##
## language/lang_xxx/lang_main.php
## language/lang_xxx/lang_admin.php
##
## includes/usercp_viewprofile.php
## includes/usercp_register.php
## includes/usercp_avatar.php
## viewtopic.php
##
## templates/YOUR_TEMPLATE/admin/user_edit_body.tpl
##
## templates/YOUR_TEMPLATE/profile_add_body.tpl
## templates/YOUR_TEMPLATE/profile_view_body.tpl
## templates/YOUR_TEMPLATE/viewtopic_body.tpl
##
## memberlist.php
##
## templates/YOUR_TEMPLATE/memberlist_body.tpl
##
## 附加檔案:
## phpbb/admin/admin_users.php
##
## phpbb/language/lang_chinese_traditional_taiwan/lang_main.php
## phpbb/language/lang_chinese_traditional_taiwan/lang_admin.php
##
## phpbb/includes/usercp_viewprofile.php
## phpbb/includes/usercp_register.php
## phpbb/includes/usercp_avatar.php
## phpbb/viewtopic.php
##
## phpbb/templates/subSilver/admin/user_edit_body.tpl
##
## phpbb/templates/subSilver/profile_add_body.tpl
## phpbb/templates/subSilver/profile_view_body.tpl
## phpbb/templates/subSilver/viewtopic_body.tpl
##
##############################################################
## 原始作者留言 動機不明 : 由於大家平常習慣使用英文id註冊,因此就會有很多人想稱呼卻叫不出個名堂來
## 而使用暱稱可以幫助大家互相認識,至少我站上因此多了很多樂趣...
##
##
## 修改作者留言 心霜 : 由於原始版本只對應到phpBB 2.0.4 所以我再進行修正以對應到phpBB 2.0.6
## 並且加入在會員列表顯示會員暱稱的欄位及加入查詢搜尋的條件之一
##
##
##
##############################################################
##
## 在你加入這個外掛前,你應該把所有與這個外掛有關的檔案進行備份
##
##############################################################
##
## 禁止PHPBB-HK擅自使用(嚴重警告)
##
##############################################################
##
## 如果你的phpbb 2.0.6 在安裝這個 會員暱稱 Change User Nick Name 之前 沒裝個任何外掛
## 可以用phpbb資料夾裡的檔案來取代 但記得要加入SQL語法喔
##
##############################################################
代碼: 選擇全部
#
#-----[ ADD SQL 加入SQL語法 ]------------------------------------------
#
ALTER TABLE phpbb_users ADD user_nickname VARCHAR(16) DEFAULT '我還沒有暱稱';
#
#-----[ OPEN 打開 ]------------------------------------------
#
language/lang_xxx/lang_main.php
#
#-----[ FIND 尋找 ]------------------------------------------
#
//
// That's all Folks!
#
#-----[ BEFORE ADD 之前加上 ]------------------------------------------
#
//
// Change User Nick Name
$lang['NickName'] = "會員暱稱";
$lang['NickName_Explain'] = "輸入暱稱將可使大家更容易記住你!";
$lang['Nickname_too_long'] = "您的暱稱超過指定(16)字數";
// Change User Nick Name END
//
#
#-----[ OPEN 打開 ]------------------------------------------
#
language/lang_xxx/lang_admin.php
#
#-----[ FIND 尋找 ]------------------------------------------
#
//
// That's all Folks!
#
#-----[ BEFORE ADD 之前加上 ]------------------------------------------
#
//
// Change User Nick Name
$lang['NickName'] = "會員暱稱";
// Change User Nick Name END
//
#
#-----[ OPEN 打開 ]------------------------------------------
#
includes/usercp_viewprofile.php
#
#-----[ FIND 尋找 ]------------------------------------------
#
$poster_rank = '';
$rank_image = '';
#
#-----[ BEFORE ADD 之前加上 ]------------------------------------------
#
//
// Change User Nick Name
$poster_nickname = ( $profiledata['user_nickname'] ) ? $profiledata['user_nickname'] : ' ';
// Change User Nick Name END
//
#
#-----[ FIND 尋找 ]------------------------------------------
#
'INTERESTS' => ( $profiledata['user_interests'] ) ? $profiledata['user_interests'] : ' ',
#
#-----[ BEFORE ADD 之前加上 ]------------------------------------------
#
//
// Change User Nick Name
'NICKNAME' => $poster_nickname,
// Change User Nick Name END
//
#
#-----[ OPEN 打開 ]------------------------------------------
#
includes/usercp_register.php
#
#-----[ FIND 尋找 ]------------------------------------------
#
$strip_var_list = array(
#
#-----[ IN LINE FIND 繼續在這一行尋找 ]------------------------------------------
#
'interests' => 'interests'
#
#-----[ IN LINE AFTER, ADD 在指定之後加上 ]------------------------------------------
#
, 'nickname' => 'nickname'
#
#-----[ FIND 尋找 ]------------------------------------------
#
validate_optional_fields
#
#-----[ IN LINE FIND 繼續在這一行尋找 ]------------------------------------------
#
$interests,
#
#-----[ IN LINE AFTER, ADD 在指定之後加上 ]------------------------------------------
#
$nickname,
#
#-----[ FIND 尋找 ]------------------------------------------
#
if ( $signature != '' )
#
#-----[ BEFORE ADD 之前加上 ]------------------------------------------
#
//
// Change User Nick Name
if ( strlen($nickname) > 16 )
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Nickname_too_long'];
}
// Change User Nick Name END
//
#
#-----[ FIND 尋找 ]------------------------------------------
#
$sql = "INSERT INTO " . USERS_TABLE .
#
#-----[ IN LINE FIND 繼續在這一行尋找 ]------------------------------------------
#
user_timezone, user_dateformat, user_lang,
#
#-----[ IN LINE AFTER, ADD 在指定之後加上 ]------------------------------------------
#
user_nickname,
#
#-----[ FIND 尋找 ]------------------------------------------
#
VALUES ($user_id, '" . str_replace("\'", "''", $username)
#
#-----[ IN LINE FIND 繼續在這一行尋找 ]------------------------------------------
#
, '" . str_replace("\'", "''", $user_lang)
#
#-----[ IN LINE AFTER, ADD 在指定之後加上 ]------------------------------------------
#
. "', '" . str_replace("\'", "''", $nickname)
#
#-----[ FIND 尋找 ]------------------------------------------
#
SET " . $username_sql . $passwd_sql . "user_email = '" . str_replace("\'", "''", $email)
#
#-----[ IN LINE FIND 繼續在這一行尋找 ]------------------------------------------
#
user_sig = '" . str_replace("\'", "''", $signature) . "',
#
#-----[ IN LINE AFTER, ADD 在指定之後加上 ]------------------------------------------
#
user_nickname = '" . str_replace("\'", "''", $nickname) . "',
#
#-----[ FIND 尋找 ]------------------------------------------
#
# 註:共有兩處都要改\r
#
$interests = stripslashes($interests);
#
#-----[ BEFORE ADD 之前加上 ]------------------------------------------
#
//
// Change User Nick Name
$nickname = stripslashes($nickname);
// Change User Nick Name END
//
#
#-----[ FIND 尋找 ]------------------------------------------
#
# 註:共有兩處都要改\r
#
'INTERESTS' => $interests,
#
#-----[ BEFORE ADD 之前加上 ]------------------------------------------
#
//
// Change User Nick Name
'NICKNAME' => $nickname,
// Change User Nick Name END
//
#
#-----[ FIND 尋找 ]------------------------------------------
#
$interests = $userdata['user_interests'];
#
#-----[ BEFORE ADD 之前加上 ]------------------------------------------
#
//
// Change User Nick Name
$nickname = $userdata['user_nickname'];
// Change User Nick Name END
//
#
#-----[ FIND 尋找 ]------------------------------------------
#
display_avatar_gallery(
#
#-----[ IN LINE FIND 繼續在這一行尋找 ]------------------------------------------
#
$location, $occupation,
#
#-----[ IN LINE AFTER, ADD 在指定之後加上 ]------------------------------------------
#
$nickname,
#
#-----[ FIND 尋找 ]------------------------------------------
#
'L_INTERESTS' => $lang['Interests'],
#
#-----[ BEFORE ADD 之前加上 ]------------------------------------------
#
//
// Change User Nick Name
'L_NICKNAME' => $lang['NickName'],
'L_CUSTOM_NICKNAME_EXPLAIN' => $lang['NickName_Explain'],
// Change User Nick Name END
//
#
#-----[ OPEN 打開 ]------------------------------------------
#
includes/usercp_avatar.php
#
#-----[ FIND 尋找 ]------------------------------------------
#
function display_avatar_gallery
#
#-----[ IN LINE FIND 繼續在這一行尋找 ]------------------------------------------
#
&$location, &$occupation,
#
#-----[ IN LINE AFTER, ADD 在指定之後加上 ]------------------------------------------
#
&$nickname,
#
#-----[ FIND 尋找 ]------------------------------------------
#
$params = array
#
#-----[ IN LINE FIND 繼續在這一行尋找 ]------------------------------------------
#
, 'occupation',
#
#-----[ IN LINE AFTER, ADD 在指定之後加上 ]------------------------------------------
#
'nickname',
#
#-----[ OPEN 打開 ]------------------------------------------
#
viewtopic.php
#
#-----[ FIND 尋找 ]------------------------------------------
#
p.*
#
#-----[ IN LINE FIND 繼續在這一行尋找 ]------------------------------------------
#
# 註:往上尋找\r
#
u.user_from,
#
#-----[ IN LINE AFTER, ADD 在指定之後加上 ]------------------------------------------
#
u.user_nickname,
#
#-----[ FIND 尋找 ]------------------------------------------
#
$row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
$row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
#
#-----[ BEFORE ADD 之前加上 ]------------------------------------------
#
//
// Change User Nick Name
$poster_nickname = ( $postrow[$i]['user_nickname'] && $postrow[$i]['user_id'] != ANONYMOUS ) ? $postrow[$i]['user_nickname'] : '';
// Change User Nick Name END
//
#
#-----[ FIND 尋找 ]------------------------------------------
#
'RANK_IMAGE' => $rank_image,
#
#-----[ BEFORE ADD 之前加上 ]------------------------------------------
#
//
// Change User Nick Name
'NICKNAME' => $poster_nickname,
// Change User Nick Name END
//
#
#-----[ OPEN 打開 ]------------------------------------------
#
admin/admin_users.php
#
#-----[ FIND 尋找 ]------------------------------------------
#
$interests = ( !empty($HTTP_POST_VARS['interests']) ) ? trim(strip_tags( $HTTP_POST_VARS['interests'] ) ) : '';
#
#-----[ BEFORE ADD 之前加上 ]------------------------------------------
#
//
// Change User Nick Name
$nickname = ( !empty($HTTP_POST_VARS['nickname']) ) ? trim(strip_tags( $HTTP_POST_VARS['nickname'] ) ) : '';
// Change User Nick Name END
//
#
#-----[ FIND 尋找 ]------------------------------------------
#
validate_optional_fields
#
#-----[ IN LINE FIND 繼續在這一行尋找 ]------------------------------------------
#
$interests,
#
#-----[ IN LINE AFTER, ADD 在指定之後加上 ]------------------------------------------
#
$nickname,
#
#-----[ FIND 尋找 ]------------------------------------------
#
# 註:有安裝多國語言修正請跳過,共有兩處都要改\r
#
$interests = htmlspecialchars(stripslashes($interests));
#
#-----[ BEFORE ADD 之前加上 ]------------------------------------------
#
# 註:有安裝多國語言修正請跳過,共有兩處都要改\r
#
//
// Change User Nick Name
$nickname = htmlspecialchars(stripslashes($nickname));
// Change User Nick Name END
//
#
#-----[ FIND 尋找 ]------------------------------------------
#
# 註:無安裝多國語言修正請跳過,共有兩處都要改\r
#
$interests = ereg_replace("&","&",htmlspecialchars(stripslashes($interests)));
#
#-----[ BEFORE ADD 之前加上 ]------------------------------------------
#
# 註:無安裝多國語言修正請跳過,共有兩處都要改\r
#
//
// Change User Nick Name
$nickname = ereg_replace("&","&",htmlspecialchars($this_userdata['user_nickname']));
// Change User Nick Name END
//
#
#-----[ FIND 尋找 ]------------------------------------------
#
$sql = "UPDATE " . USERS_TABLE . "
#
#-----[ IN LINE FIND 繼續在這一行尋找 ]------------------------------------------
#
str_replace("\'", "''", $interests) . "',
#
#-----[ IN LINE AFTER, ADD 在指定之後加上 ]------------------------------------------
#
user_nickname = '" . str_replace("\'", "''", $nickname) . "',
#
#-----[ FIND 尋找 ]------------------------------------------
#
# 註:有安裝多國語言修正請跳過
#
$interests = htmlspecialchars($this_userdata['user_interests']);
#
#-----[ BEFORE ADD 之前加上 ]------------------------------------------
#
# 註:有安裝多國語言修正請跳過
#
//
// Change User Nick Name
$nickname = htmlspecialchars($this_userdata['user_nickname']);
// Change User Nick Name END
//
#
#-----[ FIND 尋找 ]------------------------------------------
#
# 註:無安裝多國語言修正請跳過
#
$interests = ereg_replace("&","&",htmlspecialchars($this_userdata['user_interests']));
#
#-----[ BEFORE ADD 之前加上 ]------------------------------------------
#
# 註:無安裝多國語言修正請跳過
#
//
// Change User Nick Name
$nickname = ereg_replace("&","&",htmlspecialchars($this_userdata['user_nickname']));
// Change User Nick Name END
//
#
#-----[ FIND 尋找 ]------------------------------------------
#
$s_hidden_fields .= '<input type="hidden" name="interests" value="' . str_replace("\"", """, $interests) . '" />';
#
#-----[ BEFORE ADD 之前加上 ]------------------------------------------
#
//
// Change User Nick Name
$s_hidden_fields .= '<input type="hidden" name="nickname" value="' . str_replace("\"", "&", $nickname) . '" />';
// Change User Nick Name END
//
#
#-----[ FIND 尋找 ]------------------------------------------
#
'INTERESTS' => $interests,
#
#-----[ BEFORE ADD 之前加上 ]------------------------------------------
#
//
// Change User Nick Name
'NICKNAME' => $nickname,
// Change User Nick Name END
//
#
#-----[ FIND 尋找 ]------------------------------------------
#
'L_INTERESTS' => $lang['Interests'],
#
#-----[ BEFORE ADD 之前加上 ]------------------------------------------
#
//
// Change User Nick Name
'L_NICKNAME' => $lang['NickName'],
// Change User Nick Name END
//
#
#-----[ OPEN 打開 ]------------------------------------------
#
templates/YOUR_TEMPLATE/profile_add_body.tpl
#
#-----[ FIND 尋找 ]------------------------------------------
#
<!-- BEGIN switch_namechange_allowed -->
<tr>
<td class="row1" width="38%"><span class="gen">{L_USERNAME}: *</span></td>
<td class="row2"><input type="text" class="post" style="width:200px" name="username" size="25" maxlength="25" value="{USERNAME}" /></td>
</tr>
<!-- END switch_namechange_allowed -->
#
#-----[ BELOW, ADD 下面加上 ]------------------------------------------
#
<tr>
<td class="row1" width="38%"><span class="gen">{L_NICKNAME}:</span><br /><span class="gensmall">{L_CUSTOM_NICKNAME_EXPLAIN}<br /></td>
<td class="row2"><input type="text" class="post"style="width: 200px" name="nickname" size="25" maxlength="25" value="{NICKNAME}" /></td>
</tr>
#
#-----[ OPEN 打開 ]------------------------------------------
#
templates/YOUR_TEMPLATE/admin/user_edit_body.tpl
#
#-----[ FIND 尋找 ]------------------------------------------
#
<input class="post" type="text" name="username" size="35" maxlength="40" value="{USERNAME}" />
</td>
</tr>
#
#-----[ AFTER, ADD 之後加上 ]------------------------------------------
#
<tr>
<td class="row1" width="38%"><span class="gen">{L_NICKNAME}:</span></td>
<td class="row2"><input type="text" name="nickname" size="35" maxlength="40" value="{NICKNAME}" /></td>
</tr>
#
#-----[ OPEN 打開 ]------------------------------------------
#
templates/YOUR_TEMPLATE/profile_view_body.tpl
#
#-----[ FIND 尋找 ]------------------------------------------
#
<span class="gen">{L_CONTACT} {USERNAME} </span>
#
#-----[ REPLACE WITH 替換 ]----------------------------------------
#
<span class="gen">{L_CONTACT} {NICKNAME} </span><span class="gensmall">{USERNAME}</span>
#
#-----[ OPEN 打開 ]------------------------------------------
#
templates/YOUR_TEMPLATE/viewtopic_body.tpl
#
#-----[ FIND 尋找 ]------------------------------------------
#
# 註:有安裝閃光會員名稱請跳過
#
<span class="name"><a name="{postrow.U_POST_ID}"></a><b>{postrow.POSTER_NAME}</b></span>
#
#-----[ REPLACE WITH 替換 ]----------------------------------------
#
# 註:有安裝閃光會員名稱請跳過
#
<span class="gensmall">{postrow.POSTER_NAME}</span><br /><span class="name"><a name="{postrow.U_POST_ID}"></a><b>{postrow.NICKNAME}</b></span>
#
#-----[ FIND 尋找 ]------------------------------------------
#
# 註:無安裝閃光會員名稱請跳過
#
<a name="{postrow.U_POST_ID}"></a><b>{postrow.POSTER_NAME}</b></span>
#
#-----[ REPLACE WITH 替換 ]----------------------------------------
#
# 註:無安裝閃光會員名稱請跳過
#
{postrow.POSTER_NAME}</span><br /><span class="name"><a name="{postrow.U_POST_ID}"></a><b>{postrow.NICKNAME}</b></span>
#
#-----[ SAVE/CLOSE ALL FILES 儲存並且關閉所有檔案 ]------------------------------------------
#
########################################################
##
## 以下的步驟是在會員列表加上會員暱稱的欄位 並且對應 Filter member list MOD(強化會員列表查詢功能)的指定查詢條件\r
## 註:以下的步驟為非必要 你可選擇裝與不裝
##
########################################################
#
#-----[ OPEN 打開 ]------------------------------------------
#
memberlist.php
#
#-----[ FIND 尋找 ]------------------------------------------
#
$lang['Sort_Username']
#
#-----[ AFTER, ADD 之後加上 ]------------------------------------------
#
, $lang['Sort_Nickname']
#
#-----[ FIND 尋找 ]------------------------------------------
#
# 註:無安裝Filter member list MOD(強化會員列表查詢功能)請跳過
#
$lang['Sort_Username']
#
#-----[ AFTER, ADD 之後加上 ]------------------------------------------
#
# 註:無安裝Filter member list MOD(強化會員列表查詢功能)請跳過
#
, $lang['Sort_Nickname']
#
#-----[ FIND 尋找 ]------------------------------------------
#
# 註:無安裝Filter member list MOD(強化會員列表查詢功能)請跳過
#
$filter_mode_types = array('username'
#
#-----[ AFTER, ADD 之後加上 ]------------------------------------------
#
# 註:無安裝Filter member list MOD(強化會員列表查詢功能)請跳過
#
, 'nickname'
#
#-----[ FIND 尋找 ]------------------------------------------
#
$mode_types = array('joindate', 'username'
#
#-----[ AFTER, ADD 之後加上 ]------------------------------------------
#
, 'nickname'
#
#-----[ FIND 尋找 ]------------------------------------------
#
# 註:無安裝Filter member list MOD(強化會員列表查詢功能)請跳過\r
#
case 'username':
$sql_filter = " AND username LIKE '" . str_replace("\'", "''", $username_filter) . "'";
break;
#
#-----[ AFTER, ADD 之後加上 ]------------------------------------------
#
# 註:無安裝Filter member list MOD(強化會員列表查詢功能)請跳過
#
case 'nickname':
$sql_filter = " AND user_nickname LIKE '" . str_replace("\'", "''", $username_filter) . "'";
break;
#
#-----[ FIND 尋找 ]------------------------------------------
#
'L_PM' => $lang['Private_Message'],
#
#-----[ AFTER, ADD 之後加上 ]------------------------------------------
#
'L_NICKNAME' => $lang['NickName'],
#
#-----[ FIND 尋找 ]------------------------------------------
#
case 'username':
$order_by = "username $sort_order LIMIT $start, " . $board_config['topics_per_page'];
break;
#
#-----[ AFTER, ADD 之後加上 ]------------------------------------------
#
case 'nickname':
$order_by = "user_nickname $sort_order LIMIT $start, " . $board_config['topics_per_page'];
break;
#
#-----[ FIND 尋找 ]------------------------------------------
#
$sql = "SELECT username
#
#-----[ AFTER, ADD 之後加上 ]------------------------------------------
#
, user_nickname
#
#-----[ FIND 尋找 ]------------------------------------------
#
$username = $row['username'];
#
#-----[ AFTER, ADD 之後加上 ]------------------------------------------
#
$nickname = $row['user_nickname'];
#
#-----[ FIND 尋找 ]------------------------------------------
#
'USERNAME' => $username,
#
#-----[ AFTER, ADD 之後加上 ]------------------------------------------
#
'NICKNAME' => $nickname,
#
#-----[ OPEN 打開 ]------------------------------------------
#
templates\subSilver\memberlist_body.tpl
#
#-----[ FIND 尋找 ]------------------------------------------
#
<th class="thTop" nowrap="nowrap">{L_USERNAME}</th>
#
#-----[ AFTER, ADD 之後加上 ]------------------------------------------
#
<th class="thTop" nowrap="nowrap">{L_NICKNAME}</th>
#
#-----[ FIND 尋找 ]------------------------------------------
#
<td class="{memberrow.ROW_CLASS}" align="center"><span class="gen"><a href="{memberrow.U_VIEWPROFILE}" class="gen">{memberrow.USERNAME}</a></span></td>
#
#-----[ AFTER, ADD 之後加上 ]------------------------------------------
#
<td class="{memberrow.ROW_CLASS}" align="center"><span class="gen"><a href="{memberrow.U_VIEWPROFILE}" class="gen">{memberrow.NICKNAME}</a></span></td>
#
#-----[ FIND 尋找 ]------------------------------------------
#
<td class="catbottom" colspan="X" height="28">
#
#-----[ REPLACE WITH 替換 ]----------------------------------------
#
# 註:把 X 的數字加 1 ;例如原來是 8 ,就變成 9 。
#
<td class="catbottom" colspan="X" height="28">
#
#-----[ OPEN 打開 ]------------------------------------------
#
lang_main.php
#
#-----[ FIND 尋找 ]------------------------------------------
#
$lang['Sort_Username'] = '會員名稱';
#
#-----[ AFTER, ADD 之後加上 ]------------------------------------------
#
$lang['Sort_Nickname'] = '會員暱稱';
#
#-----[ SAVE/CLOSE ALL FILES 儲存並且關閉所有檔案 ]------------------------------------------
#
# EoM
# 外掛結束