[原創]會員暱稱(for 2.0.4)

MODs Released by Other phpbb Sites
非官方認證通過之 MOD ,或許有安全性之疑慮,所有問題由原發表者回覆!

版主: 版主管理群

主題已鎖定
動機不明
喝咖啡的綠皮猴
喝咖啡的綠皮猴
文章: 1179
註冊時間: 2002-03-06 20:37
來自: GOP (重啟)

[原創]會員暱稱(for 2.0.4)

文章 動機不明 »

前言:
由於大家平常習慣使用英文id註冊,因此就會有很多人想稱呼卻叫不出個名堂來
而使用暱稱可以幫助大家互相認識,至少我站上因此多了很多樂趣... ;)

這個mod我自認為還不是很完全,且要修改的地方蠻多的,新手不建議安裝喔~ ;-)

p.s 修改前請先備份所有檔案,避免出現問題後無法還原
  本外掛僅適用於 phpbb 2.0.4 , 其他版本請勿嘗試安裝(除非您很有把握)


MOD 需要動到的檔案:(11)
## 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

先加入下列 SQL 語法:

代碼: 選擇全部

ALTER TABLE phpbb_users ADD user_nickname VARCHAR(16) DEFAULT '我還沒有暱稱';
(16) 代表字元限制,預設字串為:我還沒有暱稱

開啟: language/lang_xxx/lang_main.php

尋找:

代碼: 選擇全部

//
// That's all Folks!
前面加入:

代碼: 選擇全部

// Change User Nick Name
$lang['NickName'] = "暱稱";
$lang['NickName_Explain'] = "輸入暱稱將可使大家更容易記住你!";
$lang['Nickname_too_long'] = "您的暱稱超過指定(16)字數";
開啟: language/lang_xxx/lang_admin.php

尋找:

代碼: 選擇全部

//
// That's all Folks!
前面加入:

代碼: 選擇全部

// Change User Nick Name Mod
$lang['NickName'] = "暱稱";
開啟: includes/usercp_viewprofile.php

尋找:

代碼: 選擇全部

$poster_rank = '';
$rank_image = '';
前面加入:

代碼: 選擇全部

$poster_nickname = ( $profiledata['user_nickname'] ) ? $profiledata['user_nickname'] : ' ';
尋找:

代碼: 選擇全部

'INTERESTS' => ( $profiledata['user_interests'] ) ? $profiledata['user_interests'] : ' ',
前面加入:

代碼: 選擇全部

'NICKNAME' => $poster_nickname,
開啟: includes/usercp_register.php

尋找:

代碼: 選擇全部

$strip_var_list = array('username' => 'username', 'email' => 'email', 'icq' => 'icq', 'aim' => 'aim', 'msn' => 'msn', 'yim' => 'yim', 'website' => 'website', 'location' => 'location', 'occupation' => 'occupation', 'interests' => 'interests');
取代為:

代碼: 選擇全部

$strip_var_list = array('username' => 'username', 'email' => 'email', 'icq' => 'icq', 'aim' => 'aim', 'msn' => 'msn', 'yim' => 'yim', 'website' => 'website', 'location' => 'location', 'occupation' => 'occupation', 'interests' => 'interests', 'nickname' => 'nickname');
尋找:

代碼: 選擇全部

	validate_optional_fields($icq, $aim, $msn, $yim, $website, $location, $occupation, $interests, $signature);
取代為:

代碼: 選擇全部

	validate_optional_fields($icq, $aim, $msn, $yim, $website, $location, $occupation, $interests, $nickname, $signature);
尋找:

代碼: 選擇全部

$interests = stripslashes($interests);
前面加入:

代碼: 選擇全部

$nickname = stripslashes($nickname);
尋找:

代碼: 選擇全部

	if ( $signature != '' )
	{
		if ( strlen($signature) > $board_config['max_sig_chars'] )
		{
			$error = TRUE;
			$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Signature_too_long'];
		}
前面加上

代碼: 選擇全部

	if ( strlen($nickname) > 16 )
	{
		$error = TRUE;
		$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Nickname_too_long'];
	}
尋找:

代碼: 選擇全部

$sql = "UPDATE " . USERS_TABLE . "
SET " . $username_sql . $passwd_sql . "user_email = '" . str_replace("\'", "''", $email) ."', user_icq = '" . str_replace("\'", "''", $icq) . "', user_website = '" . str_replace("\'", "''", $website) . "', user_occ = '" . str_replace("\'", "''", $occupation) . "', user_from = '" . str_replace("\'", "''", $location) . "', user_interests = '" . str_replace("\'", "''", $interests) . "', user_sig = '" . str_replace("\'", "''", $signature) . "', user_sig_bbcode_uid = '$signature_bbcode_uid', user_viewemail = $viewemail, user_aim = '" . str_replace("\'", "''", str_replace(' ', '+', $aim)) . "', user_yim = '" . str_replace("\'", "''", $yim) . "', user_msnm = '" . str_replace("\'", "''", $msn) . "', user_attachsig = $attachsig, user_allowsmile = $allowsmilies, user_allowhtml = $allowhtml, user_allowbbcode = $allowbbcode, user_allow_viewonline = $allowviewonline, user_notify = $notifyreply, user_notify_pm = $notifypm, user_popup_pm = $popuppm, user_timezone = $user_timezone, user_dateformat = '" . str_replace("\'", "''", $user_dateformat) . "', user_lang = '" . str_replace("\'", "''", $user_lang) . "', user_style = $user_style, user_active = $user_active, user_actkey = '" . str_replace("\'", "''", $user_actkey) . "'" . $avatar_sql . "
取代為:

代碼: 選擇全部

$sql = "UPDATE " . USERS_TABLE . "
SET " . $username_sql . $passwd_sql . "user_email = '" . str_replace("\'", "''", $email) ."', user_icq = '" . str_replace("\'", "''", $icq) . "', user_website = '" . str_replace("\'", "''", $website) . "', user_occ = '" . str_replace("\'", "''", $occupation) . "', user_from = '" . str_replace("\'", "''", $location) . "', user_interests = '" . str_replace("\'", "''", $interests) . "', user_sig = '" . str_replace("\'", "''", $signature) . "', user_nickname = '" . str_replace("\'", "''", $nickname) . "', user_sig_bbcode_uid = '$signature_bbcode_uid', user_viewemail = $viewemail, user_aim = '" . str_replace("\'", "''", str_replace(' ', '+', $aim)) . "', user_yim = '" . str_replace("\'", "''", $yim) . "', user_msnm = '" . str_replace("\'", "''", $msn) . "', user_attachsig = $attachsig, user_allowsmile = $allowsmilies, user_allowhtml = $allowhtml, user_allowbbcode = $allowbbcode, user_allow_viewonline = $allowviewonline, user_notify = $notifyreply, user_notify_pm = $notifypm, user_popup_pm = $popuppm, user_timezone = $user_timezone, user_dateformat = '" . str_replace("\'", "''", $user_dateformat) . "', user_lang = '" . str_replace("\'", "''", $user_lang) . "', user_style = $user_style, user_active = $user_active, user_actkey = '" . str_replace("\'", "''", $user_actkey) . "'" . $avatar_sql . "
尋找:

代碼: 選擇全部

$sql = "INSERT INTO " . USERS_TABLE . "	(user_id, username, user_regdate, user_password, user_email, user_icq, user_website, user_occ, user_from, user_interests, user_sig, user_sig_bbcode_uid, user_avatar, user_avatar_type, user_viewemail, user_aim, user_yim, user_msnm, user_attachsig, user_allowsmile, user_allowhtml, user_allowbbcode, user_allow_viewonline, user_notify, user_notify_pm, user_popup_pm, user_timezone, user_dateformat, user_lang, user_style, user_level, user_allow_pm, user_active, user_actkey)
				VALUES ($user_id, '" . str_replace("\'", "''", $username) . "', " . time() . ", '" . str_replace("\'", "''", $new_password) . "', '" . str_replace("\'", "''", $email) . "', '" . str_replace("\'", "''", $icq) . "', '" . str_replace("\'", "''", $website) . "', '" . str_replace("\'", "''", $occupation) . "', '" . str_replace("\'", "''", $location) . "', '" . str_replace("\'", "''", $interests) . "', '" . str_replace("\'", "''", $signature) . "', '$signature_bbcode_uid', $avatar_sql, $viewemail, '" . str_replace("\'", "''", str_replace(' ', '+', $aim)) . "', '" . str_replace("\'", "''", $yim) . "', '" . str_replace("\'", "''", $msn) . "', $attachsig, $allowsmilies, $allowhtml, $allowbbcode, $allowviewonline, $notifyreply, $notifypm, $popuppm, $user_timezone, '" . str_replace("\'", "''", $user_dateformat) . "', '" . str_replace("\'", "''", $user_lang) . "', $user_style, 0, 1, ";
取代為:

代碼: 選擇全部

$sql = "INSERT INTO " . USERS_TABLE . "	(user_id, username, user_regdate, user_password, user_email, user_icq, user_website, user_occ, user_from, user_interests, user_sig, user_sig_bbcode_uid, user_avatar, user_avatar_type, user_viewemail, user_aim, user_yim, user_msnm, user_attachsig, user_allowsmile, user_allowhtml, user_allowbbcode, user_allow_viewonline, user_notify, user_notify_pm, user_popup_pm, user_timezone, user_dateformat, user_lang, user_nickname, user_style, user_level, user_allow_pm, user_active, user_actkey)
				VALUES ($user_id, '" . str_replace("\'", "''", $username) . "', " . time() . ", '" . str_replace("\'", "''", $new_password) . "', '" . str_replace("\'", "''", $email) . "', '" . str_replace("\'", "''", $icq) . "', '" . str_replace("\'", "''", $website) . "', '" . str_replace("\'", "''", $occupation) . "', '" . str_replace("\'", "''", $location) . "', '" . str_replace("\'", "''", $interests) . "', '" . str_replace("\'", "''", $signature) . "', '$signature_bbcode_uid', $avatar_sql, $viewemail, '" . str_replace("\'", "''", str_replace(' ', '+', $aim)) . "', '" . str_replace("\'", "''", $yim) . "', '" . str_replace("\'", "''", $msn) . "', $attachsig, $allowsmilies, $allowhtml, $allowbbcode, $allowviewonline, $notifyreply, $notifypm, $popuppm, $user_timezone, '" . str_replace("\'", "''", $user_dateformat) . "', '" . str_replace("\'", "''", $user_lang) . "', '" . str_replace("\'", "''", $nickname) . "', $user_style, 0, 1, ";
尋找:

代碼: 選擇全部

$interests = stripslashes($interests);
前面加入:

代碼: 選擇全部

$nickname = stripslashes($nickname);
尋找:

代碼: 選擇全部

'INTERESTS' => $interests,
前面加入:

代碼: 選擇全部

'NICKNAME' => $nickname,
尋找:

代碼: 選擇全部

$interests = $userdata['user_interests'];
前面加入:

代碼: 選擇全部

$nickname = $userdata['user_nickname'];
尋找:

代碼: 選擇全部

display_avatar_gallery($mode, $avatar_category, $user_id, $email, $current_email, $coppa, $username, $email, &$new_password, &$cur_password, $password_confirm, $icq, $aim, $msn, $yim, $website, $location, $occupation, $interests, $signature, $viewemail, $notifypm, $popuppm, $notifyreply, $attachsig, $allowhtml, $allowbbcode, $allowsmilies, $allowviewonline, $user_style, $user_lang, $user_timezone, $user_dateformat, $userdata['session_id']);
取代為:

代碼: 選擇全部

display_avatar_gallery($mode, $avatar_category, $user_id, $email, $current_email, $coppa, $username, $email, &$new_password, &$cur_password, $password_confirm, $icq, $aim, $msn, $yim, $website, $location, $occupation, $nickname, $interests, $signature, $viewemail, $notifypm, $popuppm, $notifyreply, $attachsig, $allowhtml, $allowbbcode, $allowsmilies, $allowviewonline, $user_style, $user_lang, $user_timezone, $user_dateformat, $userdata['session_id']);
尋找:

代碼: 選擇全部

'INTERESTS' => $interests,
前面加入:

代碼: 選擇全部

'NICKNAME' => $nickname,
尋找:

代碼: 選擇全部

		'L_INTERESTS' => $lang['Interests'],
前面加入:

代碼: 選擇全部

		'L_NICKNAME' => $lang['NickName'],
		'L_CUSTOM_NICKNAME_EXPLAIN' => $lang['NickName_Explain'],
開啟: includes/usercp_avatar.php

尋找:

代碼: 選擇全部

function display_avatar_gallery($mode, &$category, &$user_id, &$email, &$current_email, &$coppa, &$username, &$email, &$new_password, &$cur_password, &$password_confirm, &$icq, &$aim, &$msn, &$yim, &$website, &$location, &$occupation, &$interests, &$signature, &$viewemail, &$notifypm, &$popuppm, &$notifyreply, &$attachsig, &$allowhtml, &$allowbbcode, &$allowsmilies, &$hideonline, &$style, &$language, &$timezone, &$dateformat, &$session_id)
取代為:

代碼: 選擇全部

function display_avatar_gallery($mode, &$category, &$user_id, &$email, &$current_email, &$coppa, &$username, &$email, &$new_password, &$cur_password, &$password_confirm, &$icq, &$aim, &$msn, &$yim, &$website, &$location, &$occupation, &$nickname, &$interests, &$signature, &$viewemail, &$notifypm, &$popuppm, &$notifyreply, &$attachsig, &$allowhtml, &$allowbbcode, &$allowsmilies, &$hideonline, &$style, &$language, &$timezone, &$dateformat, &$session_id)
尋找:

代碼: 選擇全部

	$params = array('coppa', 'user_id', 'username', 'email', 'current_email', 'cur_password', 'new_password', 'password_confirm', 'icq', 'aim', 'msn', 'yim', 'website', 'location', 'occupation', 'interests', 'signature', 'viewemail', 'notifypm', 'popuppm', 'notifyreply', 'attachsig', 'allowhtml', 'allowbbcode', 'allowsmilies', 'hideonline', 'style', 'language', 'timezone', 'dateformat');
取代為:

代碼: 選擇全部

	$params = array('coppa', 'user_id', 'username', 'email', 'current_email', 'cur_password', 'new_password', 'password_confirm', 'icq', 'aim', 'msn', 'yim', 'website', 'location', 'occupation', 'nickname', 'interests', 'signature', 'viewemail', 'notifypm', 'popuppm', 'notifyreply', 'attachsig', 'allowhtml', 'allowbbcode', 'allowsmilies', 'hideonline', 'style', 'language', 'timezone', 'dateformat');
開啟: viewtopic.php

尋找:

代碼: 選擇全部

$sql = "SELECT u.username, u.user_id, u.user_posts, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_regdate, u.user_msnm, u.user_viewemail, u.user_rank, u.user_sig, u.user_sig_bbcode_uid, u.user_avatar, u.user_avatar_type, u.user_allowavatar, u.user_allowsmile, p.*,  pt.post_text, pt.post_subject, pt.bbcode_uid
取代為:

代碼: 選擇全部

$sql = "SELECT u.username, u.user_id, u.user_posts, u.user_from, u.user_nickname, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_regdate, u.user_msnm, u.user_viewemail, u.user_rank, u.user_sig, u.user_sig_bbcode_uid, u.user_avatar, u.user_avatar_type, u.user_allowavatar, u.user_allowsmile, p.*,  pt.post_text, pt.post_subject, pt.bbcode_uid
尋找:

代碼: 選擇全部

	$row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
	$row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
前面加入:

代碼: 選擇全部

	$poster_nickname = ( $postrow[$i]['user_nickname'] && $postrow[$i]['user_id'] != ANONYMOUS ) ? $postrow[$i]['user_nickname'] : '';
尋找:

代碼: 選擇全部

'RANK_IMAGE' => $rank_image,
前面加入:

代碼: 選擇全部

'NICKNAME' => $poster_nickname,
開啟: admin/admin_users.php

尋找:

代碼: 選擇全部

$interests = ( !empty($HTTP_POST_VARS['interests']) ) ? trim(strip_tags( $HTTP_POST_VARS['interests'] ) ) : '';
前面加入:

代碼: 選擇全部

$nickname = ( !empty($HTTP_POST_VARS['nickname']) ) ? trim(strip_tags( $HTTP_POST_VARS['nickname'] ) ) : '';
\n
尋找:

代碼: 選擇全部

validate_optional_fields($icq, $aim, $msn, $yim, $website, $location, $occupation, $interests, $signature);
取代為:

代碼: 選擇全部

validate_optional_fields($icq, $aim, $msn, $yim, $website, $location, $occupation, $interests, $nickname, $signature);
尋找:(共有兩處都要改)

代碼: 選擇全部

			$interests = htmlspecialchars(stripslashes($interests));
前面加入:

代碼: 選擇全部

			$nickname = htmlspecialchars(stripslashes($nickname));
尋找:

代碼: 選擇全部

			$sql = "UPDATE " . USERS_TABLE . "
				SET " . $username_sql . $passwd_sql . "user_email = '" . str_replace("\'", "''", $email) . "', user_icq = '" . str_replace("\'", "''", $icq) . "', user_website = '" . str_replace("\'", "''", $website) . "', user_occ = '" . str_replace("\'", "''", $occupation) . "', user_from = '" . str_replace("\'", "''", $location) . "', user_interests = '" . str_replace("\'", "''", $interests) . "', user_sig = '" . str_replace("\'", "''", $signature) . "', user_viewemail = $viewemail, user_aim = '" . str_replace("\'", "''", $aim) . "', user_yim = '" . str_replace("\'", "''", $yim) . "', user_msnm = '" . str_replace("\'", "''", $msn) . "', user_attachsig = $attachsig, user_sig_bbcode_uid = '$signature_bbcode_uid', user_allowsmile = $allowsmilies, user_allowhtml = $allowhtml, user_allowavatar = $user_allowavatar, user_allowbbcode = $allowbbcode, user_allow_viewonline = $allowviewonline, user_notify = $notifyreply, user_allow_pm = $user_allowpm, user_notify_pm = $notifypm, user_popup_pm = $popuppm, user_lang = '" . str_replace("\'", "''", $user_lang) . "', user_style = $user_style, user_timezone = $user_timezone, user_dateformat = '" . str_replace("\'", "''", $user_dateformat) . "', user_active = $user_status, user_rank = $user_rank" . $avatar_sql . "
取代為:

代碼: 選擇全部

			$sql = "UPDATE " . USERS_TABLE . "
				SET " . $username_sql . $passwd_sql . "user_email = '" . str_replace("\'", "''", $email) . "', user_icq = '" . str_replace("\'", "''", $icq) . "', user_website = '" . str_replace("\'", "''", $website) . "', user_occ = '" . str_replace("\'", "''", $occupation) . "', user_from = '" . str_replace("\'", "''", $location) . "', user_interests = '" . str_replace("\'", "''", $interests) . "', user_nickname = '" . str_replace("\'", "''", $nickname) . "', user_sig = '" . str_replace("\'", "''", $signature) . "', user_viewemail = $viewemail, user_aim = '" . str_replace("\'", "''", $aim) . "', user_yim = '" . str_replace("\'", "''", $yim) . "', user_msnm = '" . str_replace("\'", "''", $msn) . "', user_attachsig = $attachsig, user_sig_bbcode_uid = '$signature_bbcode_uid', user_allowsmile = $allowsmilies, user_allowhtml = $allowhtml, user_allowavatar = $user_allowavatar, user_allowbbcode = $allowbbcode, user_allow_viewonline = $allowviewonline, user_notify = $notifyreply, user_allow_pm = $user_allowpm, user_notify_pm = $notifypm, user_popup_pm = $popuppm, user_lang = '" . str_replace("\'", "''", $user_lang) . "', user_style = $user_style, user_timezone = $user_timezone, user_dateformat = '" . str_replace("\'", "''", $user_dateformat) . "', user_active = $user_status, user_rank = $user_rank" . $avatar_sql . "
尋找:

代碼: 選擇全部

		$interests = htmlspecialchars($this_userdata['user_interests']);
前面加入:

代碼: 選擇全部

		$nickname = htmlspecialchars($this_userdata['user_nickname']);
尋找:

代碼: 選擇全部

			$s_hidden_fields .= '<input type="hidden" name="interests" value="' . str_replace("\"", "&", $interests) . '" />';
前面加入:

代碼: 選擇全部

			$s_hidden_fields .= '<input type="hidden" name="nickname" value="' . str_replace("\"", "&", $nickname) . '" />';
尋找:

代碼: 選擇全部

'INTERESTS' => $interests,
前面加入:

代碼: 選擇全部

'NICKNAME' => $nickname,
尋找:

代碼: 選擇全部

'L_INTERESTS' => $lang['Interests'],
前面加入:

代碼: 選擇全部

'L_NICKNAME' => $lang['NickName'],
開啟: templates/YOUR_TEMPLATE/profile_add_body.tpl

尋找:

代碼: 選擇全部

	<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="40" value="{USERNAME}" /></td>
	</tr>

後面加入:

代碼: 選擇全部

	<tr>
		<td class="row1"><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="40" value="{NICKNAME}" /></td>
	</tr>
開啟: templates/YOUR_TEMPLATE/admin/user_edit_body.tpl

尋找:

代碼: 選擇全部

	<tr> 
	  <td class="row1" width="38%"><span class="gen">{L_USERNAME}: *</span></td>
	  <td class="row2"> 
		<input class="post" type="text" name="username" size="35" maxlength="40" value="{USERNAME}" />
	  </td>
	</tr>
後面加入:

代碼: 選擇全部

	<tr>
	  <td class="row1"><span class="gen">{L_NICKNAME}</span></td>
	  <td class="row2"><input type="text" name="nickname" size="35" maxlength="50" value="{NICKNAME}" /></td>
	</tr>
開啟: templates/YOUR_TEMPLATE/profile_view_body.tpl

尋找:

代碼: 選擇全部

<span class="gen">{L_CONTACT} {USERNAME} </span>
取代為:

代碼: 選擇全部

<span class="gen">{L_CONTACT} {NICKNAME} </span><span class="gensmall">{USERNAME}</span>
開啟: templates/YOUR_TEMPLATE/viewtopic_body.tpl

尋找:

代碼: 選擇全部

<span class="name"><a name="{postrow.U_POST_ID}"></a><b>{postrow.POSTER_NAME}</b></span>
取代為:

代碼: 選擇全部

<span class="gensmall">{postrow.POSTER_NAME}</span><br /><span class="name"><a name="{postrow.U_POST_ID}"></a><b>{postrow.NICKNAME}</b></span>
儲存所有檔案!完工!(呼~~) ^^bb

demo : http://gop.pda.com.tw
主題已鎖定

回到「非官方認證外掛」