[閒聊]有人看的懂這段code的值是傳回哪嗎?

phpBB 2 MOD Support
無論是官方或非官方認證之外掛,安裝與使用問題討論。
(發表文章請按照公告格式發表,違者砍文)

版主: 版主管理群

竹貓忠實會員
竹貓忠實會員
文章: 1058
註冊時間: 2003-05-15 00:30
來自: Game.Hack-遊戲駭客
聯繫:

文章 »

Martinet 寫:剛剛仔細看過之後...發現...= =|||

寫法跟我的 後台SQL很像..只是複雜很多一一||

不是很確定行不行...但先試試看這樣囉

ps.我猜你想改的東西是這個吧^^"||...不是再說囉XD
------------------------------------

找到類似這種的你想改的

代碼: 選擇全部

 <input type="checkbox" name="field_ids[]" value="[color=red]0[/color]"  checked="checked" /> 
好友 
如果你不想要他被使用者改且 「預設值為已勾選的話」

(使用者會看不到這個欄位喔XD)

取代為\r

代碼: 選擇全部

 <input type="hidden" name="field_ids[]" value="[color=red]0[/color]" /> 
如果要「預設值為非勾選的話」...直接把那段刪除吧一一||

如果不放心 , 這樣也行:
取代為\r

代碼: 選擇全部

 <input type="hidden" name="field_ids[]" /> 


註: 紅色字每個欄位都不同 , 請依照每個欄位原本的值改下去^^
buddy的tpl不是第一篇的那篇,那篇是顯示後的原始檔!
tpl在前幾篇!你看一下...
有事問問題,沒事答問題。
廣告不是這樣打滴!遊戲駭客
Martinet
竹貓忠實會員
竹貓忠實會員
文章: 850
註冊時間: 2003-06-09 21:58
聯繫:

文章 Martinet »

瞭解..再看一下...

ps.那第一篇是啥@@?

---

看懂了= =||

要改 .php ...tpl無法下手 一一||

他的那部分是用 block來作的 = =|||
竹貓忠實會員
竹貓忠實會員
文章: 1058
註冊時間: 2003-05-15 00:30
來自: Game.Hack-遊戲駭客
聯繫:

文章 »

所以我根本看不懂@@||...
我只會HTML+一些簡單的CSS...
過幾天去買本書來看看好了...這樣不是辦法~"~
有事問問題,沒事答問題。
廣告不是這樣打滴!遊戲駭客
Martinet
竹貓忠實會員
竹貓忠實會員
文章: 850
註冊時間: 2003-06-09 21:58
聯繫:

文章 Martinet »

我剛大概看到解決辦法了...但....

容我小睡一下@___@||

昨天4點多睡...今天7點就被叫起來了XD

這種情況下會改錯的(在沒辦法實際測試的情況XD)..

所以..先睡去了...zzZZZZZZ
aiken
竹貓忠實會員
竹貓忠實會員
文章: 1514
註冊時間: 2003-11-09 11:02
來自: 大頭真論壇
聯繫:

文章 aiken »

Martinet 寫:我剛大概看到解決辦法了...但....

容我小睡一下@___@||

昨天4點多睡...今天7點就被叫起來了XD

這種情況下會改錯的(在沒辦法實際測試的情況XD)..

所以..先睡去了...zzZZZZZZ
挖~~好會掉人胃口啊~~
哈哈哈~~
Martinet
竹貓忠實會員
竹貓忠實會員
文章: 850
註冊時間: 2003-06-09 21:58
聯繫:

文章 Martinet »

這樣試試看...然後把
藍色的部分改成你要的 欄位ID
紅色的部分改成你不要的 欄位ID (請看最後面XD)

-----------
找到\r

if ($offset <= $count)
{
$template->assign_block_vars('userfields_row.userfields_cell', array(
'CLASS' => $class,
'FIELD_ID' => $ordfields[$offset]['ind'],
'FIELDS' => $ordfields[$offset]['leg'],
'CHECKED' => (intval($view_userdata['user_list_option'][$ordfields[$offset]['ind']]) ) ? ' checked="checked"' : '',
)
);
}


改成

if ($offset <= $count)
{
if( $ordfields[$offset]['ind']==1 || $ordfields[$offset]['ind'] == 2 )
{
$template->assign_block_vars('userfields_row.userfields_cell_hidden_yes', array(
'CLASS' => $class,
'FIELD_ID' => $ordfields[$offset]['ind'],
'FIELDS' => $ordfields[$offset]['leg'],
)
);

}
elseif($ordfields[$offset]['ind']==3 || $ordfields[$offset]['ind']==4)
{
//不要的就這樣空著吧XD
}
else
{
$template->assign_block_vars('userfields_row.userfields_cell', array(
'CLASS' => $class,
'FIELD_ID' => $ordfields[$offset]['ind'],
'FIELDS' => $ordfields[$offset]['leg'],
'CHECKED' => (intval($view_userdata['user_list_option'][$ordfields[$offset]['ind']]) ) ? ' checked="checked"' : '',
)
);
}


}


找到\r

<!-- BEGIN userfields_cell -->
<td class="{userfields_row.userfields_cell.CLASS}" nowrap="nowrap">
<span class="genmed">
<input type="checkbox" name="field_ids[]" value="{userfields_row.userfields_cell.FIELD_ID}" {userfields_row.userfields_cell.CHECKED} />
{userfields_row.userfields_cell.FIELDS}
</span>
</td>
<!-- END userfields_cell -->


後面加上


<!-- BEGIN userfields_cell_hidden_yes -->
<td class="{userfields_row.userfields_cell_hidden_yes.CLASS}" nowrap="nowrap">
<span class="genmed">
<input type="hidden" name="field_ids[]" value="{userfields_row.userfields_cell_hidden_yes.FIELD_ID}" />
</span>
</td>
<!-- END userfields_cell_hidden_yes -->

-----------

應該看的懂吧XD

// generic info
'user_my_friend' => array( 'leg' => $lang['Friend'], 'ind' => 0, 'class' => 'special', 'type' => 'TINYINT' ),
'user_online' => array( 'leg' => $lang['Online'], 'ind' => 1, 'class' => 'special', 'type' => 'TINYINT' ),
'username' => array( 'leg' => $lang['Username'], 'ind' => 2, 'class' => 'generic', 'type' => 'VARCHAR' ),

// messangers
'user_pm' => array( 'leg' => $lang['Private_Message'], 'ind' => 3, 'class' => 'special', 'type' => 'TINYINT' ),
'user_email' => array( 'leg' => $lang['Email_address'], 'ind' => 4, 'class' => 'email', 'type' => 'VARCHAR' ),
'user_icq' => array( 'leg' => $lang['ICQ'], 'ind' => 5, 'class' => 'messangers', 'type' => 'VARCHAR' ),
'user_aim' => array( 'leg' => $lang['AIM'], 'ind' => 6, 'class' => 'messangers', 'type' => 'VARCHAR' ),
'user_yim' => array( 'leg' => $lang['YIM'], 'ind' => 7, 'class' => 'messangers', 'type' => 'VARCHAR' ),
'user_msnm' => array( 'leg' => $lang['MSNM'], 'ind' => 8, 'class' => 'messangers', 'type' => 'VARCHAR' ),

// online info
'user_regdate' => array( 'leg' => $lang['Joined'], 'ind' => 9, 'class' => 'viewonline', 'type' => 'MEDIUMINT' ),
'user_lastvisit' => array( 'leg' => $lang['Last_visit'], 'ind' => 10, 'class' => 'viewonline', 'type' => 'MEDIUMINT' ),
'user_posts' => array( 'leg' => $lang['Total_posts'], 'ind' => 11, 'class' => 'viewonline', 'type' => 'MEDIUMINT' ),

// web info
'user_rank_title' => array( 'leg' => $lang['Poster_rank'], 'ind' => 27, 'class' => 'special', 'type' => 'VARCHAR' ),
'user_timezone' => array( 'leg' => $lang['Timezone'], 'ind' => 12, 'class' => 'webdisplay', 'type' => 'MEDIUMINT' ),
'user_lang' => array( 'leg' => $lang['Board_lang'], 'ind' => 13, 'class' => 'webdisplay', 'type' => 'VARCHAR' ),
'user_website' => array( 'leg' => $lang['Website'], 'ind' => 14, 'class' => 'webdisplay', 'type' => 'VARCHAR' ),

// real info
'user_realname' => array( 'leg' => $lang['Realname'], 'ind' => 15, 'class' => 'real', 'type' => 'VARCHAR' ),
'user_gender' => array( 'leg' => $lang['Gender'], 'ind' => 16, 'class' => 'real', 'type' => 'TINYINT' ),
'user_birthday' => array( 'leg' => $lang['Birthday'], 'ind' => 17, 'class' => 'real', 'type' => 'VARCHAR' ),
'user_from' => array( 'leg' => $lang['Location'], 'ind' => 18, 'class' => 'real', 'type' => 'VARCHAR' ),
'user_occ' => array( 'leg' => $lang['Occupation'], 'ind' => 19, 'class' => 'real', 'type' => 'VARCHAR' ),
'user_interests' => array( 'leg' => $lang['Interests'], 'ind' => 20, 'class' => 'real', 'type' => 'VARCHAR' ),
'user_home_phone' => array( 'leg' => $lang['Home_phone'], 'ind' => 21, 'class' => 'real', 'type' => 'VARCHAR' ),
'user_home_fax' => array( 'leg' => $lang['Home_fax'], 'ind' => 22, 'class' => 'real', 'type' => 'VARCHAR' ),
'user_work_phone' => array( 'leg' => $lang['Work_phone'], 'ind' => 23, 'class' => 'real', 'type' => 'VARCHAR' ),
'user_work_fax' => array( 'leg' => $lang['Work_fax'], 'ind' => 24, 'class' => 'real', 'type' => 'VARCHAR' ),
'user_cellular' => array( 'leg' => $lang['Cellular'], 'ind' => 25, 'class' => 'real', 'type' => 'VARCHAR' ),
'user_pager' => array( 'leg' => $lang['Pager'], 'ind' => 26, 'class' => 'real', 'type' => 'VARCHAR' ),
aiken
竹貓忠實會員
竹貓忠實會員
文章: 1514
註冊時間: 2003-11-09 11:02
來自: 大頭真論壇
聯繫:

文章 aiken »

嗯....
我又再一次傻眼......
竹貓忠實會員
竹貓忠實會員
文章: 1058
註冊時間: 2003-05-15 00:30
來自: Game.Hack-遊戲駭客
聯繫:

文章 »

Martinet 寫:這樣試試看...然後把
我大概了解了!那再請教一下,
我不要的欄位也需要每個都輸入一次嗎?

ps:輸入不要的欄位是指,那一欄開啟與否的選項
不會出現在使用者的面前?
有事問問題,沒事答問題。
廣告不是這樣打滴!遊戲駭客
竹貓忠實會員
竹貓忠實會員
文章: 1058
註冊時間: 2003-05-15 00:30
來自: Game.Hack-遊戲駭客
聯繫:

文章 »

再補充一下,剛小試了一下!似乎是把該選項給刪除?
那如果我現在要更改選項的預設值是哪?
(因為目前預設的選項多勾一個...造成結構扭曲...)
有事問問題,沒事答問題。
廣告不是這樣打滴!遊戲駭客
Martinet
竹貓忠實會員
竹貓忠實會員
文章: 850
註冊時間: 2003-06-09 21:58
聯繫:

文章 Martinet »

文 寫:
Martinet 寫:這樣試試看...然後把
我大概了解了!那再請教一下,
我不要的欄位也需要每個都輸入一次嗎?
是的 一一|| ..這就是麻煩之處= =
文 寫: ps:輸入不要的欄位是指,那一欄開啟與否的選項
不會出現在使用者的面前?
大致上是這樣...因為我想你大概是要這種形式的^^a

文 寫:再補充一下,剛小試了一下!似乎是把該選項給刪除?
那如果我現在要更改選項的預設值是哪?
(因為目前預設的選項多勾一個...造成結構扭曲...)
不太懂你說的意思哩...是把選項刪除沒有錯 , 這不會顯示在使用者面前 ..但..後面是?
竹貓忠實會員
竹貓忠實會員
文章: 1058
註冊時間: 2003-05-15 00:30
來自: Game.Hack-遊戲駭客
聯繫:

文章 »

我這樣講好了!本來有ABCDEFGH這八個選項
現在我照你的方式把ABCDEF的選項刪除\r
但是預設值還是ABCDEF,並沒有因為選項被刪除就沒顯示!

簡單來講,我目前是要改它預設勾選的選項!從ABCDEF改為GH
有事問問題,沒事答問題。
廣告不是這樣打滴!遊戲駭客
Martinet
竹貓忠實會員
竹貓忠實會員
文章: 850
註冊時間: 2003-06-09 21:58
聯繫:

文章 Martinet »

嗯...是不行是嗎@@?

能不能請你在改過的地方在那裡檢視原始檔丟給我看一下^^"

我可能不是說的很清楚XD....就是按到那個網頁然後按檢視原始檔XD

然後方便的話把改的那部分貼上來看一下^^"
竹貓忠實會員
竹貓忠實會員
文章: 1058
註冊時間: 2003-05-15 00:30
來自: Game.Hack-遊戲駭客
聯繫:

文章 »

我這樣講好了,我現在要把『註冊時間』、『生日』的選項預設開啟改為關閉!
你方便的話可以到我站上註冊測試看看!按『好友列表設定選項』左邊那個小圖示就會出現選項了!

圖片:http://home.pchome.com.tw/home/gamehack_test/s.gif

檢視原始檔

代碼: 選擇全部

<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
	<td nowrap="nowrap" align="center" width="13%" style="border-bottom : 1px solid Black;">
		<table cellpadding="1" cellspacing="0" border="0" width="100%" class="bodyline">
		<tr><td nowrap="nowrap" class="row3" align="center">
		<a href="profile.php?mode=viewprofile&u=378" class="gensmall">公開</a>
		</td></tr></table>
	</td>
	<td nowrap="nowrap" align="center" width="13%" style="border-bottom : 1px solid Black;">
		<table cellpadding="1" cellspacing="0" border="0" width="100%" class="bodyline">
		<tr><td nowrap="nowrap" class="row3" align="center">
		<a href="profile.php?mode=home&u=378" class="gensmall">首頁</a>
		</td></tr></table>
	</td>
	<td nowrap="nowrap" align="center" width="13%" style="border-bottom : 1px solid Black;">
		<table cellpadding="1" cellspacing="0" border="0" width="100%" class="bodyline">
		<tr><td nowrap="nowrap" class="row3" align="center">
		<a href="profile.php?mode=register&u=378" class="gensmall">註冊</a>
		</td></tr></table>
	</td>
	<td nowrap="nowrap" align="center" width="13%" style="border-bottom : 1px solid Black;">
		<table cellpadding="1" cellspacing="0" border="0" width="100%" class="bodyline">
		<tr><td nowrap="nowrap" class="row3" align="center">
		<a href="profile.php?mode=profil&u=378" class="gensmall">個人資料</a>
		</td></tr></table>
	</td>
	<td class="row1" nowrap="nowrap" align="center" width="13%" style="border-left : 1px solid Black; border-top : 1px solid Black; border-right : 1px solid Black; ">
		<span class="gensmall"><b>好友列表</b></span>
	</td>
	<td nowrap="nowrap" align="center" width="13%" style="border-bottom : 1px solid Black;">
		<table cellpadding="1" cellspacing="0" border="0" width="100%" class="bodyline">
		<tr><td nowrap="nowrap" class="row3" align="center">
		<a href="profile.php?mode=privmsg&u=378" class="gensmall">私人訊息</a>
		</td></tr></table>
	</td>
	<td nowrap="nowrap" align="center" width="22%" style="border-bottom : 1px solid Black;">
		 
	</td>
</tr>
<tr>
	<td colspan="8" class="row1" style="border-left : 1px solid Black; border-bottom : 1px solid Black; border-right : 1px solid Black;">
		<table cellpadding="0" cellspacing="10" width="100%" border="1">
		<tr>
			<td class="row3">
				<table cellpadding="10" cellspacing="0" border="0" width="100%">
				<tr>
					<td class="row2">
						<table cellpadding="0" cellspacing="0" border="0" width="100%">
						<tr>
							<td nowrap="nowrap" class="row1" align="center" width="13%" style="border-left : 1px solid Black; border-top : 1px solid Black; border-right : 1px solid Black; ">
								<span class="gensmall"><b>好友列表</b></span>
							</td>
							<td nowrap="nowrap" align="center" width="13%" style="border-bottom : 1px solid Black;">
								<table cellpadding="1" cellspacing="0" border="0" width="100%" class="bodyline">
								<tr><td nowrap="nowrap" class="row3" align="center">
								<a href="profile.php?mode=buddy&sub=ignore&u=378" class="gensmall">損友列表</a>
								</td></tr></table>
							</td>
							<td nowrap="nowrap" align="center" width="13%" style="border-bottom : 1px solid Black;">
								<table cellpadding="1" cellspacing="0" border="0" width="100%" class="bodyline">
								<tr><td nowrap="nowrap" class="row3" align="center">
								<a href="profile.php?mode=buddy&sub=memberlist&u=378" class="gensmall">全部會員</a>
								</td></tr></table>
							</td>
							<td nowrap="nowrap" align="center" width="61%" style="border-bottom : 1px solid Black;">
								 
							</td>
						</tr>
						<tr>
							<td	class="row1" colspan="8" style="border-left : 1px solid Black; border-bottom : 1px solid Black; border-right : 1px solid Black;">
								<table cellpadding="0" cellspacing="10" width="100%" border="1">
								<tr>
									<td class="row3">
<script language="JavaScript" type="text/javascript">
<!--
	function ref(object)
	{
		if (document.getElementById)
		{
			return document.getElementById(object);
		}
		else if (document.all)
		{
			return eval('document.all.' + object);
		}
		else
		{
			return false;
		}
	}

	function expand(object)
	{
		var object = ref(object);

		if( !object.style )
		{
			return false;
		}
		else
		{
			object.style.display = '';
		}

		if (window.event)
		{
			window.event.cancelBubble = true;
		}
	}

	function contract(object)
	{
		var object = ref(object);

		if( !object.style )
		{
			return false;
		}
		else
		{
			object.style.display = 'none';
		}

		if (window.event)
		{
			window.event.cancelBubble = true;
		}
	}

	function toggle(object, open_close)
	{
		object = ref(object);
		icone = ref(open_close);

		if( !object.style )
		{
			return false;
		}

		if( object.style.display == 'none' )
		{
			object.style.display = '';
			icone.src = "http://my.so-net.net.tw/stone51204/images/bbs/gamehackBlack/icon_up_arrow.gif";
		}
		else
		{
			object.style.display = 'none';
			icone.src = "http://my.so-net.net.tw/stone51204/images/bbs/gamehackBlack/icon_down_arrow.gif";
		}
	}
	//
	// checkbox selection management
	function check_uncheck_main()
	{
		var all_checked = true;
		for (i = 0; (i < document.post.elements.length) && all_checked; i++)
		{
			if (document.post.elements[i].name == 'user_ids[]')
			{
				all_checked =  document.post.elements[i].checked;
			}
		}
		document.post.all_mark.checked = all_checked;
	}

	function check_uncheck_all()
	{
		for (i = 0; i < document.post.length; i++)
		{
			if (document.post.elements[i].name == 'user_ids[]')
			{
				document.post.elements[i].checked = document.post.all_mark.checked;
			}
		}
	}
//-->
</script>

<table cellpadding="0" cellspacing="10" border="0" width="100%">
<form name="post" action="profile.php" method="post">
<tr>
	<td valign="top" align="center" colspan="2">
		<table cellpadding="4" cellspacing="1" border="0" class="forumline" width="100%">
		<tr>
			<th width="100%" colspan="5"><a href="#" onClick="toggle('fields_display','open_close'); return false;"><img src="http://my.so-net.net.tw/stone51204/images/bbs/gamehackBlack/icon_down_arrow.gif" id="open_close" border="0"></a>  好友列表設定選項</th>
		</tr>
		<tbody id="fields_display" style="display:none">
		<tr>
			<td class="row1" nowrap="nowrap">
				<span class="genmed">
					<input type="checkbox" name="field_ids[]" value="0"  checked="checked" />
					 好友
				</span>
			</td>
			<td class="row2" nowrap="nowrap">
				<span class="genmed">
					<input type="checkbox" name="field_ids[]" value="1"  checked="checked" />
					 Online
				</span>
			</td>
			<td class="row1" nowrap="nowrap">
				<span class="genmed">
					<input type="checkbox" name="field_ids[]" value="2"  checked="checked" />
					 會員名稱\r
				</span>
			</td>
			<td class="row2" nowrap="nowrap">
				<span class="genmed">
					<input type="checkbox" name="field_ids[]" value="3"  />
					 私人訊息\r
				</span>
			</td>
			<td class="row1" nowrap="nowrap">
				<span class="genmed">
					<input type="checkbox" name="field_ids[]" value="4"  />
					 電子郵件信箱
				</span>
			</td>
		</tr>
		<tr>
			<td class="row2" nowrap="nowrap">
				<span class="genmed">
					<input type="checkbox" name="field_ids[]" value="5"  />
					 ICQ 號碼\r
				</span>
			</td>
			<td class="row1" nowrap="nowrap">
				<span class="genmed">
					<input type="checkbox" name="field_ids[]" value="6"  />
					 AIM Address
				</span>
			</td>
			<td class="row2" nowrap="nowrap">
				<span class="genmed">
					<input type="checkbox" name="field_ids[]" value="7"  />
					 雅虎訊息通
				</span>
			</td>
			<td class="row1" nowrap="nowrap">
				<span class="genmed">
					<input type="checkbox" name="field_ids[]" value="8"  />
					 MSN Messenger
				</span>
			</td>
			<td class="row2" nowrap="nowrap">
				<span class="genmed">
					<input type="checkbox" name="field_ids[]" value="9"  checked="checked" />
					 註冊時間
				</span>
			</td>
		</tr>
		<tr>
			<td class="row1" nowrap="nowrap">
				<span class="genmed">
					<input type="checkbox" name="field_ids[]" value="10"  checked="checked" />
					 最後到訪
				</span>
			</td>
			<td class="row2" nowrap="nowrap">
				<span class="genmed">
					<input type="checkbox" name="field_ids[]" value="11"  checked="checked" />
					 總發表數\r
				</span>
			</td>
			<td class="row1" nowrap="nowrap">
				<span class="genmed">
					<input type="checkbox" name="field_ids[]" value="27"  />
					 等級
				</span>
			</td>
			<td class="row2" nowrap="nowrap">
				<span class="genmed">
					<input type="checkbox" name="field_ids[]" value="12"  />
					 時區設定
				</span>
			</td>
			<td class="row1" nowrap="nowrap">
				<span class="genmed">
					<input type="checkbox" name="field_ids[]" value="13"  />
					 語系設定
				</span>
			</td>
		</tr>
		<tr>
			<td class="row2" nowrap="nowrap">
				<span class="genmed">
					<input type="checkbox" name="field_ids[]" value="14"  />
					 個人網站
				</span>
			</td>
			<td class="row1" nowrap="nowrap">
				<span class="genmed">
					<input type="checkbox" name="field_ids[]" value="15"  />
					 真實姓名
				</span>
			</td>
			<td class="row2" nowrap="nowrap">
				<span class="genmed">
					<input type="checkbox" name="field_ids[]" value="16"  />
					 性別\r
				</span>
			</td>
			<td class="row1" nowrap="nowrap">
				<span class="genmed">
					<input type="checkbox" name="field_ids[]" value="17"  checked="checked" />
					 生日\r
				</span>
			</td>
			<td class="row2" nowrap="nowrap">
				<span class="genmed">
					<input type="checkbox" name="field_ids[]" value="18"  />
					 來自\r
				</span>
			</td>
		</tr>
		<tr>
			<td class="row1" nowrap="nowrap">
				<span class="genmed">
					<input type="checkbox" name="field_ids[]" value="19"  />
					 職業
				</span>
			</td>
			<td class="row2" nowrap="nowrap">
				<span class="genmed">
					<input type="checkbox" name="field_ids[]" value="20"  />
					 興趣\r
				</span>
			</td>
			<td class="row1" nowrap="nowrap">
				<span class="genmed">
					<input type="checkbox" name="field_ids[]" value="21"  />
					 最近在玩\r
				</span>
			</td>
			<td class="row2" nowrap="nowrap">
				<span class="genmed">
					<input type="checkbox" name="field_ids[]" value="22"  />
					 最近想玩\r
				</span>
			</td>
			<td class="row1" nowrap="nowrap">
				<span class="genmed">
					<input type="checkbox" name="field_ids[]" value="23"  />
					 最喜歡的遊戲\r
				</span>
			</td>
		</tr>
		<tr>
			<td class="row2" nowrap="nowrap">
				<span class="genmed">
					<input type="checkbox" name="field_ids[]" value="24"  />
					 最期待的遊戲\r
				</span>
			</td>
			<td class="row1" nowrap="nowrap">
				<span class="genmed">
					<input type="checkbox" name="field_ids[]" value="25"  />
					 行動電話
				</span>
			</td>
			<td class="row2" nowrap="nowrap">
				<span class="genmed">
					<input type="checkbox" name="field_ids[]" value="26"  />
					 PHS
				</span>
			</td>
			<td class="row1" nowrap="nowrap"><span class="gen"> </span></td>
			<td class="row2" nowrap="nowrap"><span class="gen"> </span></td>
		</tr>
		<tr>
			<td class="catBottom" colspan="5" align="center">
				<input type="hidden" name="mode" value="buddy"><input type="hidden" name="u" value="378"><input type="hidden" name="sid" value="22d373d826ef6a2da6eb07ebb4835726"><input type="hidden" name="sub" value="friend">
				<input type="submit" name="fields_choosen" value="送出" class="mainoption" />
			</td>
		</tr>
		</tbody>
		</table>
	</td>
</tr>
<tr>
	<td align="left" valign="bottom" nowrap="nowrap">
		<span class="gen">
			選擇:
			<select name="filter"><option value="user_my_friend">好友</option><option value="user_online">Online</option><option value="username" selected="selected">會員名稱</option><option value="user_regdate">註冊時間 (AAAAMMJJ)</option><option value="user_lastvisit">最後到訪 (AAAAMMJJ)</option><option value="user_posts">總發表數</option><option value="user_birthday">生日 (AAAAMMJJ)</option></select> 
			<select name="comp"><option value="LE">小於</option><option value="EQ">等於</option><option value="NE">不同於</option><option value="GE">大於</option><option value="IN" selected="selected">包含</option><option value="NI">不包含</option></select> 
			<input type="text" class="post" name="fvalue" size="20" maxlength="255" value="" /> 
			<input type="submit" name="filter_active" value="Go" class="liteoption" />
		</span>
	</td>
</tr>
<tr>
	<td valign="top" align="center" colspan="2">
		<table cellpadding="4" cellspacing="1" border="0" class="forumline" width="100%">
		<tr>
			<th width="1%" align="center"> # </th>
			<th nowrap="nowrap"> 好友 <a href="profile.php?mode=buddy&sub=friend&filter=username&comp=IN&order=user_my_friend&sort=ASC"><img src="http://my.so-net.net.tw/stone51204/images/bbs/gamehackBlack/next.gif" border="0" alt="未排列"></a></th>
			<th nowrap="nowrap"> Online <a href="profile.php?mode=buddy&sub=friend&filter=username&comp=IN&order=user_online&sort=ASC"><img src="http://my.so-net.net.tw/stone51204/images/bbs/gamehackBlack/next.gif" border="0" alt="未排列"></a></th>
			<th nowrap="nowrap"> 會員名稱 <a href="profile.php?mode=buddy&sub=friend&filter=username&comp=IN&order=username&sort=DESC"><img src="http://my.so-net.net.tw/stone51204/images/bbs/gamehackBlack/icon_down_arrow.gif" border="0" alt="依序遞增"></a></th>
			<th nowrap="nowrap"> 註冊時間 <a href="profile.php?mode=buddy&sub=friend&filter=username&comp=IN&order=user_regdate&sort=ASC"><img src="http://my.so-net.net.tw/stone51204/images/bbs/gamehackBlack/next.gif" border="0" alt="未排列"></a></th>
			<th nowrap="nowrap"> 最後到訪 <a href="profile.php?mode=buddy&sub=friend&filter=username&comp=IN&order=user_lastvisit&sort=ASC"><img src="http://my.so-net.net.tw/stone51204/images/bbs/gamehackBlack/next.gif" border="0" alt="未排列"></a></th>
			<th nowrap="nowrap"> 總發表數 <a href="profile.php?mode=buddy&sub=friend&filter=username&comp=IN&order=user_posts&sort=ASC"><img src="http://my.so-net.net.tw/stone51204/images/bbs/gamehackBlack/next.gif" border="0" alt="未排列"></a></th>
			<th nowrap="nowrap"> 生日 <a href="profile.php?mode=buddy&sub=friend&filter=username&comp=IN&order=user_birthday&sort=ASC"><img src="http://my.so-net.net.tw/stone51204/images/bbs/gamehackBlack/next.gif" border="0" alt="未排列"></a></th>
			<th nowrap="nowrap"> <input type="checkbox" name="all_mark" value="選擇" onClick="check_uncheck_all();"> </th>
		</tr>
		<tr>
			<td class="catBottom" colspan="9" align="left" valign="top" nowrap="nowrap">
				<span class="genmed">
					<input type="text" class="post" name="username" maxlength="50" size="20" /> 
					<input type="submit" name="adduser" value="增加成員" class="mainoption" /> 
					<input type="submit" name="usersubmit" value="尋找會員名稱" class="liteoption" onClick="window.open('search.php?mode=searchuser', '_phpbbsearch', 'HEIGHT=250,resizable=yes,WIDTH=400');return false;" />
					<input type="submit" name="remove" class="liteoption" value="移除選擇">
				</span>
			</td>
		</tr>
		</table>
	</td>
</tr>
<tr>
	<td align="right" valign="bottom" nowrap="nowrap" colspan="2"><span class="nav"><b>前往頁面 </b></span></td>
</tr>
</form>
</table>
									</td>
								</tr>
								</table>
							</td>
						</tr>
						</table>
					</td>
				</tr>
				</table>

			</td>
		</tr>
		</table>
	</td>
</tr>
</table>
程式原始檔

代碼: 選擇全部

<?php
/***************************************************************************
 *                            profilcp_buddy.php
 *                            ------------------
 *	begin				: 08/05/2003
 *	copyright			: Ptirhiik
 *	email				: admin@rpgnet-fr.com
 *
 *	version				: 1.1.6 - 22/06/2003
 *
 ***************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 *
 ***************************************************************************/

if ( !defined('IN_PHPBB') )
{
	die('Hacking attempt');
	exit;
}

if( !empty($setmodules) )
{
	$sub_modules = array();

	$sub_modules['mode'][] = 'friend';
	$sub_modules['shortcut'][] = $lang['profilcp_buddy_friend_shortcut'];
	$sub_modules['page_title'][] = $lang['profilcp_buddy_friend_pagetitle'];

	$sub_modules['mode'][] = 'ignore';
	$sub_modules['shortcut'][] = $lang['profilcp_buddy_ignore_shortcut'];
	$sub_modules['page_title'][] = $lang['profilcp_buddy_ignore_pagetitle'];

	$sub_modules['mode'][] = 'memberlist';
	$sub_modules['shortcut'][] = $lang['profilcp_buddy_list_shortcut'];
	$sub_modules['page_title'][] = $lang['profilcp_buddy_list_pagetitle'];

	$file = basename(__FILE__);
	$module['sort'][] = 70;
	$module['url'][] = $file;

	$module['mode'][] = 'buddy';
	$module['shortcut'][] = $lang['profilcp_buddy_shortcut'];
	$module['page_title'][] = $lang['profilcp_buddy_pagetitle'];
	$module['sub'][] = $sub_modules;

	return;
}

// check access
if ( ($userdata['user_id'] != $view_userdata['user_id']) && (!is_admin($userdata) || ($level_prior[get_user_level($userdata)] <= $level_prior[get_user_level($view_userdata)])) ) return;

// list of column
//--------------------------------------------------------------------------------------------------
//
// $max_option : the lenght of the user field user_list_option designed to get the option selected status
// $user_fields array
//		key = name of the field,
//		leg = legend,
//		ind = index in the user_list_option string
//		class = nature of the class field
//		type = type of the field
//
//  fields added :
//
//  last field pos = 27
//
//--------------------------------------------------------------------------------------------------
$max_option = 50;

$user_fields = array(

	// generic info
	'user_my_friend'	=> array( 'leg' => $lang['Friend'],				'ind' =>  0, 'class' => 'special',		'type' => 'TINYINT' ),
	'user_online'		=> array( 'leg' => $lang['Online'],				'ind' =>  1, 'class' => 'special',		'type' => 'TINYINT' ),
	'username'			=> array( 'leg' => $lang['Username'],			'ind' =>  2, 'class' => 'generic',		'type' => 'VARCHAR' ),

	// messangers
	'user_pm'			=> array( 'leg' => $lang['Private_Message'],	'ind' =>  3, 'class' => 'special',		'type' => 'TINYINT' ),
	'user_email'		=> array( 'leg' => $lang['Email_address'],		'ind' =>  4, 'class' => 'email',		'type' => 'VARCHAR' ),
	'user_icq'			=> array( 'leg' => $lang['ICQ'],				'ind' =>  5, 'class' => 'messangers',	'type' => 'VARCHAR' ),
	'user_aim'			=> array( 'leg' => $lang['AIM'],				'ind' =>  6, 'class' => 'messangers',	'type' => 'VARCHAR' ),
	'user_yim'			=> array( 'leg' => $lang['YIM'],				'ind' =>  7, 'class' => 'messangers',	'type' => 'VARCHAR' ),
	'user_msnm'			=> array( 'leg' => $lang['MSNM'],				'ind' =>  8, 'class' => 'messangers',	'type' => 'VARCHAR' ),

	// online info
	'user_regdate'		=> array( 'leg' => $lang['Joined'],				'ind' =>  9, 'class' => 'viewonline',	'type' => 'MEDIUMINT' ),
	'user_lastvisit'	=> array( 'leg' => $lang['Last_visit'],			'ind' => 10, 'class' => 'viewonline',	'type' => 'MEDIUMINT' ),
	'user_posts'		=> array( 'leg' => $lang['Total_posts'],		'ind' => 11, 'class' => 'viewonline',	'type' => 'MEDIUMINT' ),

	// web info
	'user_rank_title'	=> array( 'leg' => $lang['Poster_rank'],		'ind' => 27, 'class' => 'special',		'type' => 'VARCHAR' ),
	'user_timezone'		=> array( 'leg' => $lang['Timezone'],			'ind' => 12, 'class' => 'webdisplay',	'type' => 'MEDIUMINT' ),
	'user_lang'			=> array( 'leg' => $lang['Board_lang'],			'ind' => 13, 'class' => 'webdisplay',	'type' => 'VARCHAR' ),
	'user_website'		=> array( 'leg' => $lang['Website'],			'ind' => 14, 'class' => 'webdisplay',	'type' => 'VARCHAR' ),

	// real info
	'user_realname'		=> array( 'leg' => $lang['Realname'],			'ind' => 15, 'class' => 'real',			'type' => 'VARCHAR' ),
	'user_gender'		=> array( 'leg' => $lang['Gender'],				'ind' => 16, 'class' => 'real',			'type' => 'TINYINT' ),
	'user_birthday'		=> array( 'leg' => $lang['Birthday'],			'ind' => 17, 'class' => 'real',			'type' => 'VARCHAR' ),
	'user_from'			=> array( 'leg' => $lang['Location'],			'ind' => 18, 'class' => 'real',			'type' => 'VARCHAR' ),
	'user_occ'			=> array( 'leg' => $lang['Occupation'],			'ind' => 19, 'class' => 'real',			'type' => 'VARCHAR' ),
	'user_interests'	=> array( 'leg' => $lang['Interests'],			'ind' => 20, 'class' => 'real',			'type' => 'VARCHAR' ),
	'user_home_phone'	=> array( 'leg' => $lang['Home_phone'],			'ind' => 21, 'class' => 'real',			'type' => 'VARCHAR' ),
	'user_home_fax'		=> array( 'leg' => $lang['Home_fax'],			'ind' => 22, 'class' => 'real',			'type' => 'VARCHAR' ),
	'user_work_phone'	=> array( 'leg' => $lang['Work_phone'],			'ind' => 23, 'class' => 'real',			'type' => 'VARCHAR' ),
	'user_work_fax'		=> array( 'leg' => $lang['Work_fax'],			'ind' => 24, 'class' => 'real',			'type' => 'VARCHAR' ),
	'user_cellular'		=> array( 'leg' => $lang['Cellular'],			'ind' => 25, 'class' => 'real',			'type' => 'VARCHAR' ),
	'user_pager'		=> array( 'leg' => $lang['Pager'],				'ind' => 26, 'class' => 'real',			'type' => 'VARCHAR' ),
);

$operators = array(
	'LE' => $lang['Comp_LE'],
	'EQ' => $lang['Comp_EQ'],
	'NE' => $lang['Comp_NE'],
	'GE' => $lang['Comp_GE'],
	'IN' => $lang['Comp_IN'],
	'NI' => $lang['Comp_NI'],
);


// buddy id
$buddy_id = -1;
if ( isset($HTTP_POST_VARS['b']) || isset($HTTP_GET_VARS['b']) )
{
	$buddy_id = isset($HTTP_POST_VARS['b']) ? intval($HTTP_POST_VARS['b']) : intval($HTTP_GET_VARS['b']);
}

// action
$set = '';
if ( isset($HTTP_POST_VARS['set']) || isset($HTTP_GET_VARS['set']) )
{
	$set = isset($HTTP_POST_VARS['set']) ? $HTTP_POST_VARS['set'] : $HTTP_GET_VARS['set'];
}
if ( !in_array($set, array('inv', 'vis', 'add', 'remove')) || ($buddy_id < 0) ) 
{
	$set = '';
	$buddy_id = -1;
}

// check buddy_id
if ($buddy_id > 0)
{
	$sql = "SELECT * FROM " . USERS_TABLE . " WHERE user_id = $buddy_id";
	if ( !($result = $db->sql_query($sql)) ) message_die(GENERAL_ERROR, "Could not get user information", '', __LINE__, __FILE__, $sql);
	if ( !($userrow = $db->sql_fetchrow($result)) )
	{
		$set = '';
		$buddy_id = -1;
		message_die(GENERAL_ERROR, $lang['No_such_user']);
	}
}

// coming from
$from = '';
$l_from = '';
switch ($HTTP_GET_VARS['from'])
{
	case 'profil' :
		$from = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$buddy_id");
		$l_from = sprintf( $lang['Click_return_profilcp'], '<a href="' . $from . '">', '</a>' );
		break;
	case 'topic' :
		$topic_id = 0;
		if ( isset($HTTP_GET_VARS[POST_TOPICS_URL]) )
		{
			$from = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=" . intval($HTTP_GET_VARS[POST_TOPICS_URL]));
			$l_from = sprintf( $lang['Click_return_topic'], '<a href="' . $from . '">', '</a>' );
		}
		else if ( isset($HTTP_GET_VARS[POST_POST_URL]) )
		{
			$from = append_sid("viewtopic.$phpEx?" . POST_POST_URL . "=" . intval($HTTP_GET_VARS[POST_POST_URL]) . "#" . intval($HTTP_GET_VARS[POST_POST_URL]));\r
			$l_from = sprintf( $lang['Click_return_topic'], '<a href="' . $from . '">', '</a>' );
		}
		break;
	case 'privmsg' :
		$from = append_sid("privmsg.$phpEx?mode=read&" . POST_POST_URL . "=" . intval($HTTP_GET_VARS[POST_POST_URL]));
		$l_from = sprintf( $lang['Click_return_privmsg'], '<a href="' . $from . '">', '</a>' );
		break;
	default:
		$from = '';
		$l_from = '';
		break;
}

// module mode
$friend_list = ($sub=='friend');
$ignore_list = ($sub=='ignore');

// active/disable the always view option
if ( in_array($set, array('vis', 'inv')) )
{
	$buddy_visible = ($set=='vis') ? '1' : '0';
	$sql = "UPDATE " . BUDDYS_TABLE . " SET buddy_visible=$buddy_visible WHERE user_id=$view_user_id and buddy_id=$buddy_id";
	if ( !($result = $db->sql_query($sql)) ) message_die(GENERAL_ERROR, "Could not update buddy information", '', __LINE__, __FILE__, $sql);
}

if ( ($set == 'add') && ($buddy_id > 0) ) $adduser = true;
if ( ($set == 'remove') && ($buddy_id > 0) ) $remove = true;

// remove from list
if ($remove)
{
	$user_ids = ( $set == 'remove' ) ? array($buddy_id) : $HTTP_POST_VARS['user_ids'];
	if ( count($user_ids) > 0 )
	{
		$s_user_ids = implode(', ', $user_ids);
		$sql = "DELETE FROM " . BUDDYS_TABLE . " WHERE user_id = " . $view_userdata['user_id'] . " and buddy_id in ($s_user_ids)";
		if ( !($result = $db->sql_query($sql)) ) message_die(GENERAL_ERROR, "Could not delete buddy list entries", '', __LINE__, __FILE__, $sql);
	}
	$error = false;
	if ( ($set == 'remove') && ($l_from != '') )
	{
		$ret_link = $from;
		$template->assign_vars(array(
			'META' => '<meta http-equiv="refresh" content="3;url=' . $ret_link . '">')
		);
		$message = $lang['Profile_updated'] . '<br /><br />' . $l_from . '<br /><br />';
		message_die(GENERAL_MESSAGE, $message);
	}
}
else if ($adduser)
{
	if ($set != 'add')
	{
		$username = ( isset($HTTP_POST_VARS['username']) ) ? $HTTP_POST_VARS['username'] : '';
		$sql = "SELECT * FROM " . USERS_TABLE . " WHERE LOWER(username) = '" . strtolower(str_replace("\'", "''", $username)) . "'";
		if ( !($result = $db->sql_query($sql)) ) message_die(GENERAL_ERROR, "Could not get user information", '', __LINE__, __FILE__, $sql);
		if ( !($userrow = $db->sql_fetchrow($result)) )
		{
			$error = true;
			$error_msg = $lang['Could_not_add_user'];
		}
	}
	if ( !$error && ($userrow['user_id'] == $view_user_id) )
	{
		$error = true;
		$error_msg = $lang['profilcp_buddy_add_yourself'];
	}
	if ( !$error && ($userrow['user_id'] == ANONYMOUS) )
	{
		$error = true;
		$error_msg = $lang['Could_not_anon_user'];
	}
	// check if exist
	if ( !$error )
	{
		$sql = "SELECT * FROM " . BUDDYS_TABLE . " WHERE user_id = $view_user_id and buddy_id = " . $userrow['user_id'];
		if ( !($result = $db->sql_query($sql)) ) message_die(GENERAL_ERROR, "Could not get buddy information", '', __LINE__, __FILE__, $sql);
		if ( $row = $db->sql_fetchrow($result) )
		{
			$error = true;
			$error_msg = $lang['profilcp_buddy_already'];
		}
	}
	// check if the other ignore this one
	if (!$error && $friend_list)
	{
		$sql = "SELECT * FROM " . BUDDYS_TABLE . " WHERE buddy_id = $view_user_id and user_id = " . $userrow['user_id'] . " and buddy_ignore = 1";
		if ( !($result = $db->sql_query($sql)) ) message_die(GENERAL_ERROR, "Could not get buddy information", '', __LINE__, __FILE__, $sql);
		if ( $row = $db->sql_fetchrow($result) )
		{
			$error = true;
			$error_msg = $lang['profilcp_buddy_ignore'];
		}
	}
	// check users status if ignore list
	if (!$error && ($sub == 'ignore'))
	{
		if ( is_admin($view_userdata) )
		{
			$error = true;
			$error_msg = $lang['profilcp_buddy_you_admin'];
		}
		if ( is_admin($userrow) )
		{
			$error = true;
			$error_msg = $lang['profilcp_buddy_admin'];
		}
	}
	// add it
	if (!$error )
	{
		$sql = "INSERT INTO " . BUDDYS_TABLE . " (user_id, buddy_id, buddy_ignore) VALUES ( $view_user_id, " . $userrow['user_id'] . ", " . ( $friend_list ? 0 : 1 ) . ")";
		if ( !($result = $db->sql_query($sql)) ) message_die(GENERAL_ERROR, "Could not insert buddy information", $lang['Error'], __LINE__, __FILE__, $sql);
	}
	if ($error) message_die(GENERAL_ERROR, $error_msg);

	if ( ($set == 'add') && ($l_from != '') )
	{
		$ret_link = $from;
		$template->assign_vars(array(
			'META' => '<meta http-equiv="refresh" content="3;url=' . $ret_link . '">')
		);
		$message = $lang['Profile_updated'] . '<br /><br />' . $l_from . '<br /><br />';
		message_die(GENERAL_MESSAGE, $message);
	}
}
else
{
	// template file
	$template->set_filenames(array(
		'body' => 'profilcp/buddy_body.tpl')
	);

	// get the parms
	$fields_choosen = isset($HTTP_POST_VARS['fields_choosen']);
	$filter_active = isset($HTTP_POST_VARS['filter_active']);
	$start  = ( isset($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0;
	$order  = ( isset($HTTP_GET_VARS['order']) || isset($HTTP_POST_VARS['order']) ) ? ( isset($HTTP_GET_VARS['order']) ? trim(htmlspecialchars($HTTP_GET_VARS['order'])) : trim(htmlspecialchars($HTTP_POST_VARS['order'])) ) : '';
	$sort   = ( isset($HTTP_GET_VARS['sort'] ) || isset($HTTP_POST_VARS['sort'] ) ) ? ( isset($HTTP_GET_VARS['sort'] ) ? trim(htmlspecialchars($HTTP_GET_VARS['sort'] )) : trim(htmlspecialchars($HTTP_POST_VARS['sort'] )) ) : '';
	$filter = ( isset($HTTP_GET_VARS['filter']) || isset($HTTP_POST_VARS['filter']) ) ? ( isset($HTTP_GET_VARS['filter']) ? trim(htmlspecialchars($HTTP_GET_VARS['filter'])) : trim(htmlspecialchars($HTTP_POST_VARS['filter'])) ) : '';
	$comp	= ( isset($HTTP_GET_VARS['comp'] ) || isset($HTTP_POST_VARS['comp'] ) ) ? ( isset($HTTP_GET_VARS['comp'] ) ? trim(htmlspecialchars($HTTP_GET_VARS['comp'] )) : trim(htmlspecialchars($HTTP_POST_VARS['comp'] )) ) : '';
	$fvalue = ( isset($HTTP_GET_VARS['fvalue'] ) || isset($HTTP_POST_VARS['fvalue'] ) ) ? ( isset($HTTP_GET_VARS['fvalue'] ) ? trim(htmlspecialchars($HTTP_GET_VARS['fvalue'] )) : trim(htmlspecialchars($HTTP_POST_VARS['fvalue'] )) ) : '';

	if ( !isset($user_fields[$order]) ) $order = 'username';
	if ( ($order == '') || !in_array($sort, array('ASC', 'DESC')) ) $sort = '';
	if ( ($order != '') && ($sort == '') ) $sort = 'ASC';

	if ( !isset($user_fields[$filter]) ) $filter = 'username';
	if ( !isset($operators[$comp]) ) $comp = 'IN';

	// get the last list of field of the user
	$update = false;
	if ($view_userdata['user_list_option'] == '') $view_userdata['user_list_option'] = '111000000111000001';
	if ($view_userdata['user_list_option'][2] != '1') $view_userdata['user_list_option'][2] = '1'; // force username
	if ($fields_choosen)
	{
		$field_ids = $HTTP_POST_VARS['field_ids'];
		$view_userdata['user_list_option'] = '';
		for ($i=0; $i < $max_option; $i++) $view_userdata['user_list_option'] .= ( ($i==2) || ( (count($field_ids) > 0) && in_array($i, $field_ids)) ) ? '1' : '0';
		$sql = "UPDATE " . USERS_TABLE . " SET user_list_option = '" .  $view_userdata['user_list_option'] . "' WHERE user_id = " . $view_userdata['user_id'];
		if ( !($result = $db->sql_query($sql)) ) message_die(GENERAL_ERROR, "Could not update user informations", '', __LINE__, __FILE__, $sql);
	}

	// display the select box
	$nb_cell = 5;

	$ordfields = array(); // ordered fields (to display)
	$indfields = array(); // indiced fields (to store)
	while ( list($key, $value) = each($user_fields) )
	{
		$row['field']	= $key;
		$row['leg']		= $value['leg'];
		$row['ind']		= $value['ind'];

		$ordfields[] = $row;
		$indfields[$value['ind']] = $row;
	}

	$count = count($ordfields) - 1;
	$offset = 0;
	$class_base = true;
	for ($j=0; $j <= intval($count / $nb_cell); $j++)
	{
		$class_base = !$class_base;
		$class_offset = $class_base;
		$template->assign_block_vars('userfields_row', array());
		for ($i=0; $i < $nb_cell; $i++)
		{
			$class_offset = !$class_offset;
			$class = ($class_offset) ? "row1" : "row2";
			if ($offset <= $count)
			{
				$template->assign_block_vars('userfields_row.userfields_cell', array(
					'CLASS' => $class,
					'FIELD_ID' => $ordfields[$offset]['ind'],
					'FIELDS' => $ordfields[$offset]['leg'],
					'CHECKED' => (intval($view_userdata['user_list_option'][$ordfields[$offset]['ind']]) ) ? ' checked="checked"' : '',
					)
				);
			}
			else
			{
				$template->assign_block_vars('userfields_row.userfields_cell_empty', array(
					'CLASS' => $class,
					)
				);
			}
			$offset++;
		}
	}

	// get a field_id list of the selected field
	$field_ids = array();
	for ($i=0; $i < $max_option; $i++) if ($view_userdata['user_list_option'][$i]) $field_ids[] = $i;

	// call url
	$call = "profile.$phpEx?mode=buddy&sub=$sub&filter=$filter&comp=$comp";
	if ($fvalue != '') $call .= "&fvalue=$fvalue";

	// filter
	$s_filter = '<select name="filter">';

	// header & sort icons
	for ($i=0; $i < count($field_ids); $i++)
	{
		// sort/order options
		$icon_sort = '';
		$field_name = $indfields[$field_ids[$i]]['field']; 
		$user_fields[$field_name]['sortable'] = false;

		// unsortable fields
		if ( ($field_name != 'user_email') || is_admin($userdata) || !$board_config['board_email_form'] )
		{
			$user_fields[$field_name]['sortable'] = true;
			if ($order != $field_name)
			{
				$icon_sort = '<a href="' . append_sid($call . "&order=$field_name&sort=ASC") . '"><img src="' . $images['next_arrow'] . '" border="0" alt="' . $lang['Sort_none'] . '"></a>';
			}
			else switch ($sort)
			{
				case 'ASC'  : $icon_sort = '<a href="' . append_sid($call . "&order=$field_name&sort=DESC") . '"><img src="' . $images['down_arrow'] . '" border="0" alt="' . $lang['Sort_Ascending'] . '"></a>';break;
				case 'DESC' : $icon_sort = '<a href="' . append_sid($call) . '"><img src="' . $images['up_arrow'] . '" border="0" alt="' . $lang['Sort_Descending'] . '"></a>';break;
				default : $icon_sort = '';break;
			}

			// filter
			$select = ($filter == $indfields[$field_ids[$i]]['field']) ? ' selected="selected"' : '';
			$field_leg = $indfields[$field_ids[$i]]['leg'];

			// date
			if (in_array($field_name, array( 
					'user_lastvisit',
					'user_regdate',
					'user_birthday',
				) ))
			{
				$field_leg .= ' (AAAAMMJJ)';
			}

			// gender
			if (in_array($field_name, array( 
					'user_gender',
				) ))
			{
				$field_leg .= ' (' . UNKNOWN . '=' . $lang['No_gender_specify'] . ', ' . MALE . '=' . $lang['Male'] . ', ' . FEMALE . '=' . $lang['Female'] . ')';
			}
			$s_filter .= '<option value="' . $field_name . '"' . $select . '>' . $field_leg . '</option>';
		}

		// fields
		$template->assign_block_vars('header_list', array(
			'L_FIELD' => $indfields[$field_ids[$i]]['leg'],
			'ICON_SORT' => $icon_sort,
			)
		);
	}
	$s_filter .= '</select>';

	// operand
	$s_comp = '<select name="comp">';
	while ( list($key, $value) = each($operators) )
	{
		$select = ($comp == $key) ? ' selected="selected"' : '';
		$s_comp .= '<option value="' . $key . '"' . $select . '>' . $value . '</option>';
	}
	$s_comp .= '</select>';

	// read the users
	$view_user_id = $view_userdata['user_id'];
	$view_is_admin = is_admin($view_userdata);
	$floor_time = time()-300;

	// get list of field for the group by clause
	$sql_group_by_list = '';

	// get a list of field of the users table
	$sql = "SELECT * FROM " . USERS_TABLE;
	if ( !($result = $db->sql_query($sql)) ) message_die(GENERAL_ERROR, "Could not read user informations", '', __LINE__, __FILE__, $sql);
	$row = $db->sql_fetchrow($result);
	while (list($key, $val) = each($row)) if (!is_numeric($key)) $sql_group_by_list .= (($sql_group_by_list != '') ? ', ' : '') . 'u.' . $key;

	// get user relational status
	$sql_user_my_friend			= "(CASE WHEN i.buddy_ignore = 0 THEN 1 ELSE 0 END)";
	$sql_user_my_ignore			= "(CASE WHEN i.buddy_ignore = 1 THEN 1 ELSE 0 END)";
	$sql_user_my_visible		= "(CASE WHEN i.buddy_visible = 1 THEN 1 ELSE 0 END)";
	
	$sql_user_friend			= "(CASE WHEN b.buddy_ignore = 0 THEN 1 ELSE 0 END)";
	$sql_user_ignore			= "(CASE WHEN b.buddy_ignore = 1 THEN 1 ELSE 0 END)";
	$sql_user_visible			= "(CASE WHEN b.buddy_visible = 1 THEN 1 ELSE 0 END)";

	// get the status of each info
	$sql_online_display			= "(CASE WHEN (u.user_id = $view_user_id) OR ( ($sql_user_my_ignore <> 1) AND (	($sql_user_visible = 1)																		 OR  ( (u.user_allow_viewonline = " . YES	. ") OR ( (u.user_allow_viewonline = " .  FRIEND_ONLY	. ") AND ($sql_user_friend = 1) ) ) ) ) THEN 1 ELSE 0 END)";
	$sql_email_display			= "(CASE WHEN (u.user_id = $view_user_id) OR ( ($sql_user_my_ignore <> 1) AND ( ('" . $view_userdata['user_allow_email']		. "' = '1') AND (u.user_allow_email		= 1) AND ( (u.user_viewemail = " . YES			. ") OR ( (u.user_viewemail = " . FRIEND_ONLY			. ") AND ($sql_user_friend = 1) ) ) ) ) THEN 1 ELSE 0 END)";
	$sql_pm_display				= "(CASE WHEN (u.user_id = $view_user_id) OR ( ($sql_user_my_ignore <> 1) AND ( ('" . $view_userdata['user_allow_pm']			. "' = '1') AND (u.user_allow_pm		= 1) AND ( (u.user_viewpm = " . YES				. ") OR ( (u.user_viewpm = " . FRIEND_ONLY				. ") AND ($sql_user_friend = 1) ) ) ) ) THEN 1 ELSE 0 END)";
	$sql_www_display			= "(CASE WHEN (u.user_id = $view_user_id) OR ( ($sql_user_my_ignore <> 1) AND ( ('" . $view_userdata['user_allow_website']		. "' = '1') AND (u.user_allow_website	= 1) AND ( (u.user_viewwebsite = " . YES		. ") OR ( (u.user_viewwebsite = " . FRIEND_ONLY			. ") AND ($sql_user_friend = 1) ) ) ) ) THEN 1 ELSE 0 END)";
	$sql_messanger_display		= "(CASE WHEN (u.user_id = $view_user_id) OR ( ($sql_user_my_ignore <> 1) AND ( ('" . $view_userdata['user_allow_messanger']	. "' = '1') AND (u.user_allow_messanger	= 1) AND ( (u.user_viewmessanger = " . YES		. ") OR ( (u.user_viewmessanger = " . FRIEND_ONLY		. ") AND ($sql_user_friend = 1) ) ) ) ) THEN 1 ELSE 0 END)";
	$sql_real_display			= "(CASE WHEN (u.user_id = $view_user_id) OR ( ($sql_user_my_ignore <> 1) AND ( ('" . $view_userdata['user_allow_real']			. "' = '1') AND (u.user_allow_real		= 1) AND ( (u.user_viewreal = " . YES			. ") OR ( (u.user_viewreal = " . FRIEND_ONLY			. ") AND ($sql_user_friend = 1) ) ) ) ) THEN 1 ELSE 0 END)";

	// admin looking
	$admin = is_admin($userdata);
	if ($admin)
	{
		$sql_online_display		= '1';
		$sql_email_display		= '1';
		$sql_pm_display			= '1';
		$sql_www_display		= '1';
		$sql_messanger_display	= '1';
		$sql_real_display		= '1';
	}

	// online indicator
	$sql_user_online = "(CASE WHEN (u.user_session_time >= $floor_time) AND ($sql_online_display = 1) THEN 1 ELSE 0 END)";
	$sql_user_pm = $sql_pm_display;

	//
	// Define appropriate SQL
	//
	switch(SQL_LAYER)
	{
		 case 'postgresql':
			$sql_user_rank_id		= "(CASE WHEN u.user_rank = 0 THEN SUBSTRING(MAX( LPAD(nr.rank_min,8,'0') || nr.rank_id), 9) ELSE u.user_rank END)";
			$sql_user_rank_title	= "(CASE WHEN $sql_www_display = 1 THEN ( COALESCE( sr.rank_title, SUBSTRING(MAX(LPAD(nr.rank_min,8,'0') || nr.rank_title), 9) ) ) ELSE '' END)";
			$sql_user_rank_title2	= $sql_user_rank_title;
			$sql_user_my_friend2	= $sql_user_my_friend;

			$sql_group_by_list .= ', b.buddy_visible, b.buddy_ignore, i.buddy_ignore, i.buddy_visible';
			$sql_group_by_list .= ', sr.rank_title';
			break;

		 default:
			$sql_user_rank_id		= "(CASE WHEN (u.user_rank = 0) AND ($sql_www_display = 1) THEN SUBSTRING(MAX(CONCAT(LPAD(nr.rank_min,8,'0'), nr.rank_id)), 9) ELSE u.user_rank END)";
			$sql_user_rank_title	= "(CASE WHEN ($sql_www_display = 1) THEN ( COALESCE(sr.rank_title, SUBSTRING(MAX(CONCAT(LPAD(nr.rank_min,8,'0'), nr.rank_title)), 9)) ) ELSE '' END)";
			$sql_rank_title2		= '';
			$sql_user_my_friend2	= '';

			$sql_group_by_list = 'u.user_id';
			break;
	}

	//
	// fields added (last first) :
	//
	$sql_fields = '';
	@reset($user_fields);
	while ( list($field_name, $field) = each($user_fields) )
	{
		// default value if not allowed
		$def_value = "''";
		switch ($field['type'])
		{
			case 'VARCHAR':
			case 'TEXT':
				$def_value = "''";
				break;
			case 'TINYINT':
			case 'SMALLINT':
			case 'MEDIUMINT':
			case 'INT':
			case 'BIGINT':
				$def_value = "0";
				break;
			default:
				message_die(CRITICAL_ERROR, 'Field type unknown');
				break; 
		}

		// switch field name
		$class_field = '';
		switch ($field['class'])
		{
			case 'generic': break;
			case 'special': break;
			case 'viewonline':	$class_field = $sql_online_display; break;
			case 'email':		$class_field = $sql_email_display; break;
			case 'pm':			$class_field = $sql_pm_display; break;
			case 'webdisplay':	$class_field = $sql_www_display; break;
			case 'messangers':	$class_field = $sql_messanger_display; break;
			case 'real':		$class_field = $sql_real_display;break;
			case 'avatar': break;
			case 'signature': break;
			default:
				message_die(CRITICAL_ERROR, 'Field class unknown');
				break;
		}

		// sql field def
		if ($class_field != '')
		{
			$$field_name = "(CASE WHEN " . $class_field . "=1 THEN u." . $field_name . " ELSE $def_value END)";
			$sql_fields .= ", " . $$field_name . " as " . $field_name . "_virt";
		}
		else
		{
			switch ($field_name)
			{
				case 'user_pm':			$$field_name = "(CASE WHEN " . $sql_pm_display . " = 1 THEN " . $sql_user_pm . " ELSE " . $def_value . " END)";  $sql_fields .= ", " . $$field_name . " as user_pm"; break;
				case 'user_my_friend':	$$field_name = $sql_user_my_friend;		$sql_fields .= ", " . $$field_name . " as user_my_friend"; break;
				case 'user_online':		$$field_name = $sql_user_online;		$sql_fields .= ", " . $$field_name . " as user_online"; break;
				case 'user_rank_title':	$$field_name = $sql_user_rank_title;	$sql_fields .= ", " . $$field_name . " as user_rank_title"; break;
				default: break;
			}
		}
	}

	$sql = "SELECT DISTINCT u.*, 

					$sql_online_display			as user_online_display,
					$sql_email_display			as user_email_display,
					$sql_pm_display				as user_pm_display,
					$sql_www_display			as user_www_display,
					$sql_messanger_display		as user_messanger_display,
					$sql_real_display			as user_real_display,

					$sql_user_my_friend			as user_my_friend,
					$sql_user_my_ignore			as user_my_ignore,
					$sql_user_my_visible		as user_my_visible,

					$sql_user_friend			as user_friend,
					$sql_user_ignore			as user_ignore,
					$sql_user_visible			as user_visible

					$sql_fields

				FROM (((("  . USERS_TABLE . " as u
				LEFT JOIN " . BUDDYS_TABLE . " as b ON b.user_id=u.user_id AND b.buddy_id=$view_user_id)
				LEFT JOIN " . BUDDYS_TABLE . " as i ON i.user_id=$view_user_id AND i.buddy_id=u.user_id)
				LEFT JOIN " . RANKS_TABLE . " as sr ON u.user_rank > 0 AND sr.rank_special = 1 AND u.user_rank = sr.rank_id)
				LEFT JOIN " . RANKS_TABLE . " as nr ON u.user_rank = 0 AND nr.rank_special = 0 AND nr.rank_min <= u.user_posts)

				WHERE u.user_id <> " . ANONYMOUS;

	// friend list
	if ($friend_list)
	{
		$sql .= " AND i.buddy_ignore = 0";
	}

	// ignore list
	if ($ignore_list)
	{
		$sql .= " AND i.buddy_ignore = 1";
	}

	// filter
	$sql_having = '';
	if ($fvalue != '')
	{
		$val = $fvalue;
		$t_comp = $comp;
		$t_filter = $filter;

		// date format
		switch ($filter)
		{
			// full datetime
			case 'user_lastvisit':
			case 'user_regdate':
				$t_filter = $$t_filter;
				$val1 = mktime( 0, 0, 1, intval(substr($val, 4, 2)), intval(substr($val, 6, 2)), intval(substr($val, 0, 4)) );
				$val2 = mktime( 23, 59, 59, intval(substr($val, 4, 2)), intval(substr($val, 6, 2)), intval(substr($val, 0, 4)) );
				switch($t_comp)
				{
					case 'EQ': 
					case 'IN': $t_comp = 'RG'; break;
					case 'NE':
					case 'NI': $t_comp = 'NR'; break;
					case 'LE': $val= $val2;
					default: $val=$val1;
				}
				break;
			// date only
			case 'user_birthday':
				$t_filter = $$t_filter;
				$val = intval($val);
				break;
			// new field
			case 'user_pm' :
			case 'user_online' :
				$t_filter = $$t_filter;
				$val = $fvalue;
				break;
			case 'user_my_friend' :
				$t_filter = ($sql_my_friend_2 != '') ? $sql_user_my_friend2 : $t_filter;
				$val = $fvalue;
				break;
			// matched fields
			case 'user_rank_title':
				$t_filter = ($sql_user_rank_title2 != '') ? $sql_user_rank_title2 : 'user_rank_title';
				$val = $fvalue;
				break;
			default:
				if ( !in_array($user_fields[$filter]['class'], array('special', 'generic')) ) $t_filter = $$t_filter;
				if ( $user_fields[$filter]['class'] == 'generic' ) $t_filter = 'u.' . $t_filter;
				$val = $fvalue;
				break;
		}

		// filter on accessible field
		switch ($t_comp)
		{
			case 'RG': $sql_having = " HAVING  $t_filter >= '" . $val1 . "' AND $t_filter <= '" . $val2 . "'"; break;
			case 'NR': $sql_having = " HAVING  ($t_filter < '" . $val1 . "' OR $t_filter > '" . $val2 . "')"; break;
			case 'LE': $sql_having = " HAVING  $t_filter <= '" . $val . "'"; break;
			case 'EQ': $sql_having = " HAVING  $t_filter = '" . $val . "'"; break;
			case 'NE': $sql_having = " HAVING  $t_filter <> '" . $val . "'"; break;
			case 'GE': $sql_having = " HAVING  $t_filter >= '" . $val . "'"; break;
			case 'IN': $sql_having = " HAVING  $t_filter LIKE '%" . $val . "%'"; break;
			case 'NI': $sql_having = " HAVING  $t_filter NOT LIKE '%" . $val . "%'"; break;
			default:   $sql_having = " HAVING  $t_filter LIKE '%" . $val . "%'"; break;
		}
	}

	// set the group by clause
	$sql_group_by = " GROUP BY $sql_group_by_list";

	// convert field name to virtual
	$real_order = $order;
	if ( !in_array($user_fields[$real_order]['class'], array('generic', 'special')) ) $real_order .= '_virt';
	if ( $user_fields[$real_order]['class'] == 'generic') $real_order = 'u.' . $real_order;

	// get the order
	$sql_order .= " ORDER BY " . ( ($user_fields[$order]['sortable']) ? " $real_order $sort," : '' ) . " u.username ASC";

	// build the request
	$sql .= $sql_group_by . $sql_having . $sql_order;

	// read the number of row
	if ( !($result = $db->sql_query($sql)) ) message_die(GENERAL_ERROR, "Could not read user informations", '', __LINE__, __FILE__, $sql);
	$total_users = $db->sql_numrows($result);

	$sql .= " LIMIT $start, " . $board_config['topics_per_page'];
	if ( !($result = $db->sql_query($sql)) ) message_die(GENERAL_ERROR, "Could not read user informations", '', __LINE__, __FILE__, $sql);

	$users = array();
	while ($row = $db->sql_fetchrow($result)) $users[] = $row;

	$admin = is_admin($userdata);
	for ($i = 0; $i < count($users); $i++)
	{
		$row = $users[$i];

		$txtclass = get_user_level_class( $row['user_level'], 'genmed', $row );
		$temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']);
		$row['username'] = '<a href="' . $temp_url . '" class="' . $txtclass . '">' . $row['username'] . '</a>';
		$row['user_lastvisit_virt'] = ($row['user_lastvisit_virt'] != 0) ? create_date($userdata['user_dateformat'], $row['user_lastvisit_virt'], $userdata['user_timezone']) : '';
		$row['user_regdate_virt'] = ($row['user_regdate_virt'] != 0) ? create_date($lang['DATE_FORMAT'], $row['user_regdate_virt'], $userdata['user_timezone']) : '';
		if (!$row['user_online_display']) $row['user_posts_virt'] = '';

		// friend/always visible
		if ($row['user_my_friend'])
		{
			$temp_url	= append_sid( "profile.$phpEx?mode=$mode&sub=$sub&b=" . $row['user_id'] . "&set=" . ( ($row['user_my_visible']) ? 'inv' : 'vis') );
			$title		= ($row['user_my_visible']) ? $lang['Always_visible'] : $lang['Not_always_visible'];
			$img		= ( $row['user_my_visible'] ) ? $images['icon_visible'] : $images['icon_not_visible'];
			$row['user_my_friend'] = '<a href="' . $temp_url . '"><img src="' . $img . '" border="0" alt="' . $title . '"></a>';
		}
		else $row['user_my_friend'] = '';

		// online/offline/hidden
		$img = 'offline';
		if ($row['user_online_display'] && $row['user_online'])
		{
			$img = 'hidden';
			if ($row['user_allow_viewonline'] == YES) $img = 'online';
		}
		switch ($img)
		{
			case 'offline':
				$online_img = '<img src="' . $images['icon_offline'] . '" border="0" align="absbottom" alt="' . $lang['Offline'] . '" title="' . $lang['Offline'] . '">';
				break;
			case 'online':
				$online_img = '<img src="' . $images['icon_online'] . '" border="0" align="absbottom" alt="' . $lang['Online'] . '" title="' . $lang['Online'] . '">';
				break;
			case 'hidden':
				$online_img = '<img src="' . $images['icon_hidden'] . '" border="0" align="absbottom" alt="' . $lang['Hidden'] . '" title="' . $lang['Hidden'] . '">';
				break;
		}
		$row['user_online'] = $online_img;

		// pm
		if ($row['user_pm'])
		{
			$temp_url = append_sid("privmsg.$phpEx?mode=post&" . POST_USERS_URL . "=" . $row['user_id']);
			$row['user_pm'] = '<a href="' . $temp_url . '"><img src="' . $images['icon_pm'] . '" alt="' . $lang['Send_private_message'] . '" title="' . $lang['Send_private_message'] . '" border="0" /></a>';
		}
		else $row['user_pm'] = '';

		// email
		if ($row['user_email_virt'])
		{
			$email_uri = ( $board_config['board_email_form'] ) ? append_sid("profile.$phpEx?mode=email&" . POST_USERS_URL .'=' . $row['user_id']) : 'mailto:' . $row['user_email_virt'];
			$row['user_email_virt'] = '<a href="' . $email_uri . '"><img src="' . $images['icon_email'] . '" alt="' . $lang['Send_email'] . '" title="' . $lang['Send_email'] . '" border="0" /></a>' . ( ($board_config['board_email_form'] && !is_admin($userdata)) ? '' : '<span class="gensmall"><br />' . $row['user_email_virt'] . '</span>' );
		}
		else $row['user_email_virt'] = '';

		//
		// www
		//

		// web site
		$row['user_website_virt'] = ($row['user_website_virt']) ? '<a href="' . $row['user_website_virt'] . '" target="_userwww"><img src="' . $images['icon_www'] . '" alt="' . $lang['Visit_website'] . '" title="' . $lang['Visit_website'] . '" border="0" /></a><span class="gensmall"><br />' . $row['user_website_virt'] . '</span>' : '';

		// timezone lib
		if ($row['user_timezone_virt'])
		{
			$found = false;
			@reset($lang['tz']);
			while ((list($tz,$lib) = @each($lang['tz'])) && !$found)
			{
				$found = ($tz == $row['user_timezone_virt']);
				if ($found) $row['user_timezone_virt'] = $lib;
			}
		}
		else $row['user_timezone_virt'] = '';

		//
		// messanger
		//

		// icq
		$row['user_icq_status'] = '';
		if ($row['user_icq_virt'])
		{
			$row['user_icq_status'] = '<a href="http://wwp.icq.com/' . $row['user_icq_virt'] . '#pager"><img src="http://web.icq.com/whitepages/online?icq=' . $row['user_icq_virt'] . '&img=5" width="18" height="18" border="0" /></a>';
			$row['user_icq_virt'] = '<a href="http://wwp.icq.com/scripts/search.dll?to=' . $row['user_icq_virt'] . '"><img src="' . $images['icon_icq'] . '" alt="' . $lang['ICQ'] . '" title="' . $lang['ICQ'] . '" border="0" /></a><span class="gensmall"><br />' . $row['user_icq_virt'] . '</span>';
		}

		// aim
		if ($row['user_aim_virt'])
		{
			$row['user_aim_virt'] = '<a href="aim:goim?screenname=' . $row['user_aim_virt'] . '&message=Hello+Are+you+there?"><img src="' . $images['icon_aim'] . '" alt="' . $lang['AIM'] . '" title="' . $lang['AIM'] . '" border="0" /></a><span class="gensmall"><br />' . $row['user_aim_virt'] . '</span>';
		}

		// msn
		if ($row['user_msnm_virt'])
		{
			$row['user_msnm_virt'] = '<img src="' . $images['icon_msnm'] . '" alt="' . $row['user_msnm_virt'] . '" title="' . $lang['MSNM'] . '" border="0" /><span class="gensmall"><br />' . $row['user_msnm_virt'] . '</span>';
		}

		// yim
		if ($row['user_yim_virt'])
		{
			$row['user_yim_virt'] = '<a href="http://edit.yahoo.com/config/send_webmesg?.target=' . $row['user_yim_virt'] . '&.src=pg"><img src="' . $images['icon_yim'] . '" alt="' . $lang['YIM'] . '" title="' . $lang['YIM'] . '" border="0" /></a><span class="gensmall"><br />' . $row['user_yim_virt'] . '</span>';
		}

		//
		// real life informations
		//

		// birthday
		if (intval($row['user_birthday_virt']) != 0)
		{
			$temp_url = append_sid("privmsg.$phpEx?mode=post&" . POST_USERS_URL . "=" . $row['user_id']);
			$row['user_birthday_img'] = ( intval(substr($row['user_birthday_virt'], 4,4)) == date('md', time()) ) ? ( ($row['user_pm']) ? '<a href="' . $temp_url . '">' : '' ) . '<img src="' . $images['icon_birthday'] . '" border="0" alt="' . $lang['Happy_birthday'] . '" title="' . $lang['Happy_birthday'] . '">' . ( ($row['user_pm']) ? '</a>' : '' ) : '';
			$row['user_birthday_virt'] = ( ($row['user_birthday_img'] != '') ? $row['user_birthday_img'] . "<br />" : '') . create_birthday_date($lang['DATE_FORMAT'], $row['user_birthday_virt'], $userdata['user_timezone']);
		}
		else
		{
			$row['user_birthday_img'] = '';
			$row['user_birthday_virt'] = '';
		}

		// rank
		if ($row['user_rank_title'])
		{
			$rank_data = array();
			$rank_data = get_user_rank($row);
			$row['user_rank_title'] = $rank_data['rank_title'] . ( ($rank_data['rank_image'] != '') ? '<br />' . $rank_data['rank_image'] : '');
		}

		// gender
		switch ($row['user_gender_virt'])
		{
			case 1 : $row['user_gender_virt'] = $lang['Male']; break;
			case 2 : $row['user_gender_virt'] = $lang['Female']; break;
			default : $row['user_gender_virt'] = ($row['user_real_display']) ? $lang['No_gender_specify'] : ''; break;
		}

		$users[$i] = $row;
	}

	// display the users
	$class = false;
	for ($i=0; $i < count($users); $i++ )
	{
		$class = !$class;
		$template->assign_block_vars('userrow', array(
			'CLASS' => ($class) ? "row1" : "row2",
			'NUMBER' => $i+1+$start,
			)
		);
		for ($j=0; $j < count($field_ids); $j++)
		{
			$field_name = $indfields[$field_ids[$j]]['field'];
			if ( !in_array($user_fields[$field_name]['class'], array('generic', 'special')) ) $field_name .= '_virt';
			$template->assign_block_vars('userrow.user_list', array(
				'FIELD' => $users[$i][$field_name],
				)
			);
		}
		if ($friend_list || $ignore_list)
		{
			$template->assign_block_vars('userrow.select', array(
				'USER_ID' => $users[$i]['user_id'],
				'CHECKED' => '',
				)
			);
		}
	}

	// number of col
	$col = count($field_ids) + 1;
	if ($friend_list || $ignore_list) $col++;

	if ($friend_list || $ignore_list)
	{
		$template->assign_block_vars('select', array());
	}

	$template->assign_vars(array(
		'L_USER_FIELDS' => $lang['User_fields'],
		'COLSPAN' => $nb_cell,
		'DOWN_ARROW' => $images['down_arrow'],
		'UP_ARROW' => $images['up_arrow'],

		'L_FILTER_FIELDS' => $lang['Select'],
		'S_FILTER_FIELDS' => $s_filter,
		'S_COMP' => $s_comp,
		'FILTER' => $fvalue,

		'ROW_SPAN' => $col,

		'L_SUBMIT' => $lang['Submit'],
		'L_RESET' => $lang['Reset'],
		'L_GO' => $lang['Go'],

		'L_SELECT' => $lang['Select'],
		'L_ADD_MEMBER' => $lang['Add_member'],
		'L_FIND_USERNAME' => $lang['Find_username'],
		'L_REMOVE_SELECTED' => $lang['Remove_selected'],
		)
	);

	// call url
	$call = "profile.$phpEx?mode=buddy&sub=$sub";
	if ($order != '' ) $call .= "&order=$order";
	if ($sort != '') $call .= "&sort=$sort";
	$call .= "&filter=$filter";
	$call .= "&comp=$comp";
	if ($fvalue != '') $call .= "&fvalue=$fvalue";
	$call = append_sid($call);

	$template->assign_vars(array(
		'PAGINATION' => generate_pagination($call, $total_users, $board_config['topics_per_page'], $start),
		'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $board_config['topics_per_page'] ) + 1 ), ceil( $total_users / $board_config['topics_per_page'] )), 
		'L_GOTO_PAGE' => $lang['Goto_page'],

		'S_HIDDEN_FIELDS' => $s_hidden_fields,
		'U_SEARCH_USER' => append_sid("search.$phpEx?mode=searchuser"),
		'S_PROFILCP_ACTION' => append_sid("profile.$phpEx"),
		)
	);

	// page
	$template->pparse('body');
}

?>
最後由 於 2004-01-10 01:33 編輯,總共編輯了 1 次。
有事問問題,沒事答問題。
廣告不是這樣打滴!遊戲駭客
竹貓忠實會員
竹貓忠實會員
文章: 1058
註冊時間: 2003-05-15 00:30
來自: Game.Hack-遊戲駭客
聯繫:

文章 »

??竹貓文章有限長度???

風格原始檔

代碼: 選擇全部

<script language="JavaScript" type="text/javascript">
<!--
	function ref(object)
	{
		if (document.getElementById)
		{
			return document.getElementById(object);
		}
		else if (document.all)
		{
			return eval('document.all.' + object);
		}
		else
		{
			return false;
		}
	}

	function expand(object)
	{
		var object = ref(object);
	
		if( !object.style )
		{
			return false;
		}
		else
		{
			object.style.display = '';
		}

		if (window.event)
\n		{
			window.event.cancelBubble = true;
		}
	}

	function contract(object)
	{
		var object = ref(object);
	
		if( !object.style )
		{
			return false;
		}
		else
		{
			object.style.display = 'none';
		}

		if (window.event)
		{
			window.event.cancelBubble = true;
		}
	}

	function toggle(object, open_close)
	{
		object = ref(object);
		icone = ref(open_close);

		if( !object.style )
		{
			return false;
		}

		if( object.style.display == 'none' )
		{
			object.style.display = '';
			icone.src = "{UP_ARROW}";
		}
		else
		{
			object.style.display = 'none';
			icone.src = "{DOWN_ARROW}";
		}
	}
	//
	// checkbox selection management
	function check_uncheck_main()
	{
		var all_checked = true;
		for (i = 0; (i < document.post.elements.length) && all_checked; i++)
		{
			if (document.post.elements[i].name == 'user_ids[]')
\n			{
				all_checked =  document.post.elements[i].checked;
			}
		}
		document.post.all_mark.checked = all_checked;
	}

	function check_uncheck_all()
	{
		for (i = 0; i < document.post.length; i++)
		{
			if (document.post.elements[i].name == 'user_ids[]')
			{
				document.post.elements[i].checked = document.post.all_mark.checked;
			}
		}
	}
//-->
</script>

<table cellpadding="0" cellspacing="10" border="0" width="100%">
<form name="post" action="{S_PROFILCP_ACTION}" method="post">
<tr>
	<td valign="top" align="center" colspan="2">
		<table cellpadding="4" cellspacing="1" border="0" class="forumline" width="100%">
		<tr>
			<th width="100%" colspan="{COLSPAN}"><a href="#" onClick="toggle('fields_display','open_close'); return false;"><img src="{DOWN_ARROW}" id="open_close" border="0"></a>  {L_USER_FIELDS}</th>
		</tr>
		<tbody id="fields_display" style="display:none">
		<!-- BEGIN userfields_row -->
		<tr>
			<!-- BEGIN userfields_cell -->
			<td class="{userfields_row.userfields_cell.CLASS}" nowrap="nowrap">
				<span class="genmed">
					<input type="checkbox" name="field_ids[]" value="{userfields_row.userfields_cell.FIELD_ID}" {userfields_row.userfields_cell.CHECKED} />
					 {userfields_row.userfields_cell.FIELDS}
				</span>
			</td>
			<!-- END userfields_cell -->
			<!-- BEGIN userfields_cell_empty -->
			<td class="{userfields_row.userfields_cell_empty.CLASS}" nowrap="nowrap"><span class="gen"> </span></td>
			<!-- END userfields_cell_empty -->
		</tr>
		<!-- END userfields_row -->
		<tr> 
			<td class="catBottom" colspan="{COLSPAN}" align="center">
				{S_HIDDEN_FIELDS} 
				<input type="submit" name="fields_choosen" value="{L_SUBMIT}" class="mainoption" />
			</td>
		</tr>
		</tbody>
		</table>
	</td>
</tr>
<tr>
	<td align="left" valign="bottom" nowrap="nowrap">
		<span class="gen">
			{L_FILTER_FIELDS}:
			{S_FILTER_FIELDS} 
			{S_COMP}  
			<input type="text" class="post" name="fvalue" size="20" maxlength="255" value="{FILTER}" /> 
			<input type="submit" name="filter_active" value="{L_GO}" class="liteoption" />
		</span>
	</td>
</tr>
<tr>
	<td valign="top" align="center" colspan="2">
		<table cellpadding="4" cellspacing="1" border="0" class="forumline" width="100%">
		<tr>
			<th width="1%" align="center"> # </th>
			<!-- BEGIN header_list -->
			<th nowrap="nowrap"> {header_list.L_FIELD} {header_list.ICON_SORT}</th>
			<!-- END header_list -->
			<!-- BEGIN select -->
			<th nowrap="nowrap"> <input type="checkbox" name="all_mark" value="{L_SELECT}" onClick="check_uncheck_all();"> </th>
			<!-- END select -->
		</tr>
		<!-- BEGIN userrow -->
		<tr>
			<td width="1%" align="center" class="{userrow.CLASS}"><span class="genmed">{userrow.NUMBER}</span></td>
			<!-- BEGIN user_list -->
			<td class="{userrow.CLASS}" align="center"><span class="genmed">{userrow.user_list.FIELD}</span></td>
			<!-- END user_list -->
			<!-- BEGIN select -->
			<td class="{userrow.CLASS}" align="center"><input type="checkbox" name="user_ids[]" value="{userrow.select.USER_ID}" {userrow.select.CHECKED}  onClick="check_uncheck_main();" /></td>
			<!-- END select -->
		</tr>
		<!-- END userrow -->
		<!-- BEGIN select -->
		<tr>
			<td class="catBottom" colspan="{ROW_SPAN}" align="left" valign="top" nowrap="nowrap">
				<span class="genmed">
					<input type="text" class="post" name="username" maxlength="50" size="20" /> 
					<input type="submit" name="adduser" value="{L_ADD_MEMBER}" class="mainoption" /> 
					<input type="submit" name="usersubmit" value="{L_FIND_USERNAME}" class="liteoption" onClick="window.open('{U_SEARCH_USER}', '_phpbbsearch', 'HEIGHT=250,resizable=yes,WIDTH=400');return false;" />
					<input type="submit" name="remove" class="liteoption" value="{L_REMOVE_SELECTED}">
				</span>
			</td>
		</tr>
		<!-- END select -->
		</table>
	</td>
</tr>
<tr>
	<td align="right" valign="bottom" nowrap="nowrap" colspan="2"><span class="nav"><b>{PAGINATION}</b></span></td>
</tr>
</form>
</table>
有事問問題,沒事答問題。
廣告不是這樣打滴!遊戲駭客
竹貓忠實會員
竹貓忠實會員
文章: 1058
註冊時間: 2003-05-15 00:30
來自: Game.Hack-遊戲駭客
聯繫:

文章 »

不好意思提一下文章,因為最近越來越多人註冊了!
也慢慢開始有人詢問諸如此類的問題。
有事問問題,沒事答問題。
廣告不是這樣打滴!遊戲駭客
主題已鎖定

回到「外掛問題討論」