[問題]模仿暱稱MOD而自行新增一個欄位,但失敗.

phpBB Installation & Usage Support
phpBB 2 安裝於各類型作業平台之問題討論;外掛問題,請到相關版面依發問格式發表!
(發表文章請按照公告格式發表,違者砍文)

版主: 版主管理群

版面規則
本區是討論關於 phpBB 2.0.X 架設安裝上的問題,只要有安裝任何外掛,請到外掛討論相關版面按照公告格式發表。
(發表文章請按照公告格式發表,違者砍文)
主題已鎖定
Flashdes
星球普通子民
星球普通子民
文章: 29
註冊時間: 2004-11-08 11:28

[問題]模仿暱稱MOD而自行新增一個欄位,但失敗.

文章 Flashdes »

如上, 小弟嘗試自行在會員資料表中新增一個user_like23 的Varchar 欄位,也參考nickname MOD 上的Code 作修改..但終究還是顯示不出來... 即使參考MOD,但能完全了解該段Code的部分少之又少,出錯的地方一定很多, 我貼出來麻煩有經驗者能幫小弟解惑,感謝!!


1. 我想在註冊時能填寫user_like23 以及檢視修改都會有該欄位出現供修改.所以我修改下列這幾支程式不知道正不正確?

admin/admin_users.php
includes/usercp_avatar.php
includes/usercp_register.php
includes/usercp_viewprofile.php
language/..../lang_main.php
templates/..../profile_add_body.tpl
templates/..../profile_view_body.tpl
templates/..../admin/user_edit_body.tpl

2.在MOD 中常常看到<!-- BEGIN switch_namechange_allowed -->類似的注解,請教這是否有其他涵義,不能一樣也不能亂填..好像跟某個變數有關??


3.因有很多小弟並不太能了解該段Code用意, 故小弟列出修改的步驟期望曾經成功的大大幫小弟檢視一下..(貼的方式如有錯請見諒~~)





#
#-----[OPEN 開啟]-------------------------------------------
\n#
admin/admin_users.php

#
#-----[FIND 尋找]-------------------------------------------
#

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

#
#-----[BEFORE, ADD 在前面加入]-------------------------------------------
#

// Start add - Add Settv User Field
$user_like23 = ( !empty($HTTP_POST_VARS['user_like23']) ) ? trim(strip_tags( $HTTP_POST_VARS['user_like23'] ) ) : '';
// End add - Add Settv User Field

#
#-----[FIND 尋找]-------------------------------------------
#

validate_optional_fields

#
#-----[IN LINE FIND 在這行繼續往下尋找]-------------------------------------------
#

$nickname,

#
#-----[AFTER ADD 之後增加]-------------------------------------------
#

$user_like23,

#
#-----[FIND 尋找上半部]-------------------------------------------
#

$interests = htmlspecialchars(stripslashes($interests));

#
#-----[BEFORE, ADD 在前面加入]-------------------------------------------
#

// Start add - Add Settv User Field
$user_like23 = htmlspecialchars(stripslashes($user_like23));
// End add - Add Settv User Field

#
#-----[FIND 尋找]-------------------------------------------
#

user_nickname = '" . str_replace("\'", "''", $nickname) . "',


#
#-----[AFTER ADD 之後增加]-------------------------------------------
#

user_like23 = '" . str_replace("\'", "''", $user_like23) . "' ,

#
#-----[FIND 尋找下半部]-------------------------------------------
#

$interests = htmlspecialchars(stripslashes($interests));

#
#-----[BEFORE, ADD 在前面加入]-------------------------------------------
#

// Start add - Add Settv User Field
$user_like23 = htmlspecialchars(stripslashes($user_like23));
// End add - Add Settv User Field

#
#-----[FIND 尋找]-------------------------------------------
#

$interests = htmlspecialchars($this_userdata['user_interests']);

#
#-----[BEFORE, ADD 在前面加入]-------------------------------------------
#

// Start add - Add Settv User Field
$user_like23 = htmlspecialchars(stripslashes($this_userdata['user_like23']));
// End add - Add Settv User Field

#
#-----[FIND 尋找]-------------------------------------------
#

$s_hidden_fields .= '<input type="hidden" name="interests" value="' . str_replace("\"", """, $interests) . '" />';

#
#-----[BEFORE, ADD 在前面加入]-------------------------------------------
#

// Start add - Add Settv User Field
$s_hidden_fields .= '<input type="hidden" name="user_like23" value="' . str_replace("\"", """, $user_like23) . '" />';
// End add - Add Settv User Field

#
#-----[FIND 尋找]-------------------------------------------
#

'INTERESTS' => $interests,

#
#-----[BEFORE, ADD 在前面加入]-------------------------------------------
#

// Start add - Add Settv User Field
'USER_LIKE23' => $user_like23,
// End add - Add Settv User Field

#
#-----[FIND 尋找]-------------------------------------------
#

'L_INTERESTS' => $lang['Interests'],

#
#-----[BEFORE, ADD 在前面加入]-------------------------------------------
#

// Start add - Add Settv User Field
'L_USER_LIKE23' => $lang['User_like23'],
// End add - Add Settv User Field

#
#-----[OPEN 打開]-------------------------------------------
#

includes/usercp_avatar.php

#
#-----[FIND 尋找]-------------------------------------------
#

function display_avatar_gallery

#
#-----[IN LINE FIND 繼續在這一行尋找]-------------------------------------------
#

&$interests,

#
#-----[BEFORE, ADD 在前面加入]-------------------------------------------
#

&$user_like23,

#
#-----[FIND 尋找]-------------------------------------------
#

$params =array(

#
#-----[IN LINE FIND 繼續在這一行尋找]-------------------------------------------
#

'interests'

#
#-----[BEFORE, ADD 在前面加入]-------------------------------------------
#

'user_like23',

#
#-----[OPEN 打開]-------------------------------------------
#

includes/usercp_register.php

#
#-----[FIND 尋找]-------------------------------------------
#

$strip_var_list = array(

#
#-----[IN LINE FIND 繼續在這一行尋找]-------------------------------------------
#

'interests' => 'interests'

#
#-----[BEFORE, ADD 在前面加入]-------------------------------------------
#

'user_like23' => 'user_like23'

#
#-----[FIND 尋找]-------------------------------------------
#

validate_optional_fields

#
#-----[IN LINE FIND 繼續在這一行尋找]-------------------------------------------
#

$interests,

#
#-----[BEFORE, ADD 在前面加入]-------------------------------------------
#

$user_like23,

#
#-----[ FIND 尋找,找到2個,這是第1個 ]-------------------------------------------
#

$interests = stripslashes($interests);
$signature = stripslashes($signature);

#
#-----[BEFORE, ADD 在前面加入]-------------------------------------------
#

// Start add - Add Settv User Field
$user_like23 = stripslashes($user_like23);
// End add - Add Settv User Field

#
#-----[FIND 尋找]-------------------------------------------
#

SET " . $username_sql .

#
#-----[IN LINE FIND 繼續在這一行尋找]-------------------------------------------
#

user_sig = '" . str_replace("\'", "''", $signature) . "',

#
#-----[AFTER, ADD 在後面加入]-------------------------------------------
#

user_like23 = '" . str_replace("\'", "''", $user_like23) . "',

#
#-----[FIND 尋找]-------------------------------------------
#

$sql = "INSERT INTO " . USERS_TABLE

#
#-----[IN LINE FIND 繼續在這一行尋找]-------------------------------------------
#

user_dateformat, user_lang,

#
#-----[AFTER, ADD 在後面加入]-------------------------------------------
#

user_like23,

#
#-----[FIND 尋找]-------------------------------------------
#

VALUES ($user_id, '" . str_replace("\'", "''", $username)

#
#-----[IN LINE FIND 繼續在這一行尋找]-------------------------------------------
#

, '" . str_replace("\'", "''", $user_lang)

#
#-----[AFTER, ADD 在後面加入]-------------------------------------------
#

. "', '" . str_replace("\'", "''", $user_like23)

#
#-----[FIND 尋找]-------------------------------------------
#

'INTERESTS' => $interests,
\n'SITENAME' => $board_config['sitename']));

#
#-----[BEFORE, ADD 在前面加入]-------------------------------------------
#

// Start add - Add Settv User Field
'USER_LIKE23' => $user_like23,
// End add - Add Settv User Field

#
#-----[FIND 尋找]-------------------------------------------
#

$interests = stripslashes($interests);
$signature = stripslashes($signature);
$signature = ($signature_bbcode_uid != '') ? preg_replace("/:(([a-z0-9]+:)?)$signature_bbcode_uid(=|\])/si", '\\\3', $signature) : $signature;

#
#-----[BEFORE, ADD 在前面加入]-------------------------------------------
#

// Start add - Add Settv User Field
$user_like23 = stripslashes($user_like23);
// End add - Add Settv User Field

#
#-----[FIND 尋找]-------------------------------------------
#

$interests = $userdata['user_interests'];

#
#-----[BEFORE, ADD 在前面加入]-------------------------------------------
#

// Start add - Add Settv User Field
$user_like23 = $userdata['user_like23'];
// End add - Add Settv User Field

#
#-----[FIND 尋找]-------------------------------------------
#

display_avatar_gallery(

#
#-----[IN LINE FIND 繼續在這一行尋找]-------------------------------------------
#

$interests,

#
#-----[BEFORE, ADD 在前面加入]-------------------------------------------
#

$user_like23,

#
#-----[FIND 尋找]-------------------------------------------
#

'INTERESTS' => $interests,
'SITENAME' => $board_config['sitename']));

#
#-----[BEFORE, ADD 在前面加入]-------------------------------------------
#

// Start add - Add Settv User Field
'USER_LIKE23' => $user_like23,
// End add - Add Settv User Field

#
#-----[FIND 尋找]-------------------------------------------
#

'L_INTERESTS' => $lang['Interests'],

#
#-----[BEFORE, ADD 在前面加入]-------------------------------------------
#

// Start add - Add Settv User Field
'L_USER_LIKE23' => $lang['User_like23'],
// End add - Add Settv User Field

#
#-----[FIND 尋找]-------------------------------------------
#

// Start add - Change User Nick Name
if ( $userdata['user_allownickname'] || $mode == 'register' )
{
$template->assign_block_vars('switch_nicknamenature_block', array() );
}
// End add - Change User Nick Name


#
#-----[afterE, ADD 在後面加入]-------------------------------------------
#

// Start add - Add Settv User Field
if ( $userdata['user_like23'] || $mode == 'register' )
{
$template->assign_block_vars('switch_userlike23_block', array() );
}
// End add - Add Settv User Field

#
#-----[OPEN 打開]-------------------------------------------
#

includes/usercp_viewprofile.php

#
#-----[FIND 尋找]-------------------------------------------
#

$poster_rank = '';
$rank_image = '';

#
#-----[BEFORE, ADD 在前面加入]-------------------------------------------
#

此段小弟搞不清楚,所以並沒有加入,原nickname的Code 如下 :

// Start add - Change User Nick Name
$poster_nickname = ( $profiledata['user_nickname'] && $profiledata['user_allownickname'] ) ? '(' . $profiledata['user_nickname'] . ')' : '';
// End add - Change User Nick Name


#
#-----[FIND 尋找]-------------------------------------------
#

'INTERESTS' => ( $profiledata['user_interests'] ) ? $profiledata['user_interests'] : ' ',

#
#-----[BEFORE, ADD 在前面加入]-------------------------------------------
#

// Start add - Add Settv User Field
'USER_LIKE23' => $profiledata['user_like23'],
// End add - Add Settv User Field

#
#-----[OPEN 打開]-------------------------------------------
#

language/lang_chinese_traditational_taiwan/lang_main.php

#
#-----[FIND 尋找]-------------------------------------------
#

// That's all Folks!

#
#-----[BEFORE, ADD 在前面加入]-------------------------------------------
#

// Start add - Add Settv User Field
$lang['User_Like23'] = "其他纇";
// End add - Add Settv User Field

#
#-----[OPEN 打開]-------------------------------------------
#

viewtopic.php

#
#-----[FIND 尋找]-------------------------------------------
#

//
// Go ahead and pull all data for this topic
//
$sql = "SELECT u.username,

#
#-----[IN LINE FIND 繼續在這一行尋找]-------------------------------------------
#

u.user_from

#
#-----[AFTER, ADD 在之後加入]-------------------------------------------
#
\r
u.user_like23

#
#-----[OPEN 打開]-------------------------------------------
#

templates/..../admin/user_edit_body.tpl

#
#-----[FIND 尋找]-------------------------------------------
#

<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>

#
#-----[AFTER, ADD 在之後加入]-------------------------------------------
#

<tr>
<td class="row1" width="38%"><span class="gen">{L_USER_LIKE23}: *</span></td>
<td class="row2">
<input class="post" type="text" name="user_like23" size="35" maxlength="40" value="{USER_LIKE23}" />
</td>
</tr>

#
#-----[OPEN 打開]-------------------------------------------
#

templates/..../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="maxlength="{NICKNAME_MAXLENGTH}"" value="{USERNAME}" /></td>
</tr>
<!-- END switch_namechange_allowed -->

#
#-----[AFTER, ADD 在之後加入]-------------------------------------------
#

<!-- BEGIN switch_userlike23_block -->
<tr>
<td class="row1" width="38%"><span class="gen">{L_USER_LIKE23}: *</span></td>
<td class="row2"><input type="text" class="post" style="width:200px" name="user_like23" size="25" maxlength="maxlength="{NICKNAME_MAXLENGTH}"" value="{USER_LIKE23}" /></td>
</tr>
<!-- END switch_userlike23_block -->

#
#-----[SAVE/CLOSE ALL FILES 儲存並關閉所有檔案]---------------------------
#






------------------------------------------------------------------------------------
●架設主機作業系統:FreeBSD
●您的上網方式:ADSL
●您安裝的程式:Apache + php + MySql
●您的 phpBB2 版本:phpBB (2.0.11)
最後由 Flashdes 於 2004-12-06 16:47 編輯,總共編輯了 2 次。
Flashdes
星球普通子民
星球普通子民
文章: 29
註冊時間: 2004-11-08 11:28

文章 Flashdes »

問題又出現一個,之前是在註冊以及檢視頁面無法出現該欄位,現在則發現進入註冊頁面時..出現此錯誤訊息!!

Parse error: parse error in E:\Project\set-forum\includes\template.php(127) : eval()'d code on line 357

這是我改了profile_add_body.tpl 裡面的註解
<!-- BEGIN switch_userlike23_block -->

<!-- END switch_userlike23_block -->

以跟usercp_register.php 的
$template->assign_block_vars('switch_userlike23_block', array() ); 相同

之後所發生的錯誤訊息!
最後由 Flashdes 於 2004-12-06 17:02 編輯,總共編輯了 3 次。
.::藍色的天空::.
竹貓忠實會員
竹貓忠實會員
文章: 587
註冊時間: 2003-09-14 17:29
來自: 我不知道
聯繫:

文章 .::藍色的天空::. »

$template->assign_block_vars('switch_userlike23_block', array() );

改為\r

$template->assign_block_vars('switch_userlike23_block');
i-Web System 隨坊出來耶

新聞:
遊戲區開幕啦! 打造隨城最強的遊戲王國!
宣傳車出動! 賣力宣傳隨坊吧!
版主召募!版主魂激發!
中文好好學,不要方言通天飛
i-Web System 正式版上架測試!
Flashdes
星球普通子民
星球普通子民
文章: 29
註冊時間: 2004-11-08 11:28

文章 Flashdes »

哇哇~

還是一樣的錯誤訊息!!?

我在這個地方完整的Code 為 :

// Start add - Add Set User Field
if ( $userdata['user_like23'] || $mode == 'register' )
{
$template->assign_block_vars('switch_userlike23_block');
}
// End add - Add Set User Field


是否有錯誤呢??

小弟想說會不會是這個判斷出了問題??

if ( $userdata['user_like23'] || $mode == 'register' )

麻煩在幫小弟看看好嗎??
Flashdes
星球普通子民
星球普通子民
文章: 29
註冊時間: 2004-11-08 11:28

文章 Flashdes »

小弟發現問題出在 profile_add_body.tpl 這裡ㄟ

小弟列出來新增欄位 user_like23 的Code ,有經驗的大大幫小弟看看問題出在那兒??


<!-- BEGIN switch_userlike23_block -->
<tr>
<td class="row1" width="38%"><span class="gen">{L_USER_LIKE23}: *</span></td>
<td class="row2"><input type="text" class="post" style="width:200px" name="user_like23" size="25" value="{USER_LIKE23}" /></td>
</tr>
<!-- END switch_userlike23_block-->



我是放在 nickname 下方的...列出來參考:

<!-- BEGIN switch_nicknamenature_block -->
<tr>
<td class="row1" width="38%"><span class="gen">{L_NICKNAME}: </span><br /><span class="gensmall">{L_CUSTOM_NICKNAME_EXPLAIN}</td>
<td class="row2"><input type="text" class="post"style="width: 200px" name="nickname" size="25" maxlength="25" value="{NICKNAME}" /></td>
</tr>
<!-- END switch_nicknamenature_block -->




只要把最前面的那一段拿掉註冊頁面就OK, 不然就會註冊頁以及檢視個人資料頁都出現錯誤訊息!!
Flashdes
星球普通子民
星球普通子民
文章: 29
註冊時間: 2004-11-08 11:28

文章 Flashdes »

最後把

<!-- BEGIN switch_userlike23_block -->


<!-- END switch_userlike23_block-->

拿掉就可以了...但有一個狀況會出現錯誤訊息 ...

就是再註冊的時候把 user_like23 這個欄位填入資料後(沒問題),登入檢視個人資料時一樣能顯示,但是會出現錯誤訊息,如果你再註冊時沒有把這個欄位填入資料,就不會出現錯誤訊息!!


搞不清楚問題發生在哪支程式??


錯誤訊息如下 :

Warning: Missing argument 2 for assign_block_vars() in E:\Project\set-forum\includes\template.php on line 163


該怎麼解決呢??或者可以讓欄位不在檢視個人資料的時候顯示??
-----------------------------------
●架設主機作業系統:FreeBSD
●您的上網方式:ADSL
●您安裝的程式:Apache + php + MySql
●您的 phpBB2 版本:phpBB (2.0.13)
●安裝的外掛 : Nickname + Birthday + Gender + DIY(自行新增欄位)
hpo14
竹貓忠實會員
竹貓忠實會員
文章: 414
註冊時間: 2003-05-10 16:37
來自: M Starbucks

文章 hpo14 »

開啟~ templates/你的風格/profile_view_body.tpl

搜尋

代碼: 選擇全部

{L_CONTACT} {USERNAME}
把後面的

代碼: 選擇全部

{NICKNAME}
移除試試看!
非官方外掛問題區公告: [必看]請配合發問格式及明確主題發問(2004 02/16更新)

竹貓星球發問規則:
http://phpbb-tw.net/phpbb/viewtopic.php?t=16149

請不要濫用 私人訊息 或是 MSN 問問題...你以為竹貓是架好看的阿
Flashdes
星球普通子民
星球普通子民
文章: 29
註冊時間: 2004-11-08 11:28

文章 Flashdes »

感謝感謝~

後來小弟把 usercp_register.php 內的

$template->assign_block_vars('switch_userlike23_block');

拿掉之後就正常了... (但什麼原因還是不了..)

目前這樣就可以完成了一個文字欄位的新增了~
-----------------------------------
●架設主機作業系統:FreeBSD
●您的上網方式:ADSL
●您安裝的程式:Apache + php + MySql
●您的 phpBB2 版本:phpBB (2.0.13)
●安裝的外掛 : Nickname + Birthday + Gender + DIY(自行新增欄位)
hpo14
竹貓忠實會員
竹貓忠實會員
文章: 414
註冊時間: 2003-05-10 16:37
來自: M Starbucks

文章 hpo14 »

可是nickname mod 我有裝~~
並不會發生你說的問題~~~

也就是\r
登入檢視個人資料時一樣能顯示,但是會出現錯誤訊息,如果你再註冊時沒有把這個欄位填入資料,就不會出現錯誤訊息!!
此問題... 在我論壇上沒有發生過~~

補充:能否說說是怎麼樣的問題?
非官方外掛問題區公告: [必看]請配合發問格式及明確主題發問(2004 02/16更新)

竹貓星球發問規則:
http://phpbb-tw.net/phpbb/viewtopic.php?t=16149

請不要濫用 私人訊息 或是 MSN 問問題...你以為竹貓是架好看的阿
Flashdes
星球普通子民
星球普通子民
文章: 29
註冊時間: 2004-11-08 11:28

文章 Flashdes »

喔~ 這個問題已經解決了,問題出在\r

$template->assign_block_vars('switch_userlike23_block');

身上!!

不過還有些小問題還沒解決呢
主題已鎖定

回到「phpBB 2 安裝與使用」