第 1 頁 (共 2 頁)
[討論]修改查看誰在線上....
發表於 : 2004-04-28 18:33
由 依夢兒
逛了一下 Discuz! 論壇,他們的線上名單看起來很整齊,一目瞭然,例如:
http://www.jpmac.net/bbs/
http://www.sundns.org/discuz/
就是最下面那個
在线用户。
之前我有嘗試過將 phpBB 的
查看誰在線上改成這個樣子,但是失敗了,好像沒有想像中的簡單....
不知道有沒有人有興趣也來研究看看?
發表於 : 2004-04-28 19:03
由 小竹子
我記得那個有人改過吧!應該有 MOD,還有個小小的建議,那東西會增加流量^^!!
發表於 : 2004-04-28 21:59
由 依夢兒
小竹子 寫:我記得那個有人改過吧!應該有 MOD,還有個小小的建議,那東西會增加流量^^!!
竹大你說的外掛是指這個吧\r
http://phpbb-tw.net/phpbb/viewtopic.php?t=10396
你可能誤會我的意思了。^^"
這支外掛我有裝過,它的功用是依照會員身分,在人名前面顯示一個圖示,看起來的確是比較美觀。
但是我上一篇提到的重點不是有沒有圖示,而是像 Discuz! 那般,人名的部份能夠整齊排列。
phpBB 的設計是在人名後面加上一個逗點再連著人名,在線人數一多的話老實說看起來有一點亂。
理論上來說,這樣的效果應該是不會增加流量和伺服器的負擔,只是風格上的一點小修飾而已。
如果圖示的部份會增加流量的話,可以捨去沒有關係,只要人名的部份能夠像 Discuz! 那般整齊排列即可。
發表於 : 2004-04-28 23:28
由 動機不明
設計個 TABLE ,在套用上去,就可以了吧?
假設\r
前面固定不動 <table><tr>
然後變數代進來...
<td> 名單1 </td>
設定 n=n++ (取到某位後歸0,表示要換行了...)
<td> 名單1 </td>
<td> 名單2 </td>
<td> 名單3 </td>
<td> 名單4 </td>
<td> 名單5 </td>
........
最後面再接 </tr></table>
這只是我的猜想啦,應該可以吧!?
發表於 : 2004-04-30 01:06
由 依夢兒
之前我有試過,不過失敗了....
原因說不上來,反正不是想像中的,直接寫個表格的 HTML 語法來美化就是了。 =.=
至於你說的什麼 n=n++ 的,我就不懂了。
發表於 : 2004-04-30 01:31
由 Martinet
我以為這種東西修改很簡單說一o一
其實是跟猴大說的一樣...用td來做的
只是..不能全部td一o一
要每幾個就要換個 tr 區段一.一
像是 (
http://www.jpmac.net/bbs/ )每 7個 會員就換一個 tr 區段\r
我想應該只要修改 page_header.php就行了
重點在下面這一段附近的程式碼\r
代碼: 選擇全部
if ( $row['user_allow_viewonline'] )
{
$user_online_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'>' . $row['username'] . '</a>';
$logged_visible_online++;
}
else
{
$user_online_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'><i>' . $row['username'] . '</i></a>';
$logged_hidden_online++;
}
附近要改成每 X 個會員就output 一次 tr 的區段一.一
然後在裡面把純 link 旁邊加上 td ~
聽不懂沒關係一..一
是我的表達不好而不是你的國文差XD
題外話 : 每次看到依夢兒的 早安站的網址..就會不自覺得唸出「morning
mushroom.net」 一.一
發表於 : 2004-05-02 00:25
由 依夢兒
雖然還是看不太懂(汗),不過還是謝了。^^"
發表於 : 2004-05-02 00:58
由 messagebox
不用這麼麻煩吧~
擅用HTML的標籤就OK了~
開啟./includes/page_header.php
尋找\r
代碼: 選擇全部
if ( $row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN )
{
$online_userlist .= ( $online_userlist != '' ) ? ', ' . $user_online_link : $user_online_link;
}
修改為\r
代碼: 選擇全部
if ( $row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN )
{
$online_userlist .= '<span style="width:20%;">'.$user_online_link.'</span>';
}
其中
style="width:20%
請自行修改~~20%表示一行5個元素
發表於 : 2004-05-02 03:34
由 依夢兒
謝謝 messagebox 兄,您這個方法簡單又好用~

發表於 : 2004-05-02 12:40
由 天霜
依夢兒 寫:謝謝 messagebox 兄,您這個方法簡單又好用~

但是你家Portal的查看誰在線上就亂掉了

發表於 : 2004-05-02 13:30
由 shihchieh
按動機大哥的構想下去改應該可以改得出來~
發表於 : 2004-05-02 15:48
由 依夢兒
嗯,剛剛才發現天霜提到的問題。
這麼一來 portal.php 的查看誰在線上,以及 viewforum.phop 左上角的正在瀏覽此區的會員也會跟著一起變動,不太好看。
有沒有辦法只針對 index.php 的部份下手呢?
發表於 : 2004-05-02 16:15
由 messagebox
程式要重寫~~~
我有個建議就是~~~原本的不動~~~
但加一個新變數專程只給INDEX_BODY.TPL來顯示~~
[php]
//開啟./includes/page_header.php
//原本的
$online_userlist = '';
//後面加入\r
$online_userlist2 = '';
//原本的
$online_userlist .= ( $online_userlist != '' ) ? ', ' . $user_online_link : $user_online_link;
//後面加上
$online_userlist2 .= '<span style="width:20%;">'.$user_online_link.'</span>';
//原本的
'LOGGED_IN_USER_LIST' => $online_userlist,
//後面加上
'LOGGED_IN_USER_LIST2' => $online_userlist2,
//開啟./templates/subSilver/index_body.tpl
//將
{LOGGED_IN_USER_LIST}
//取代為\r
{LOGGED_IN_USER_LIST2}
[/php]
這樣就OK了~~~
這麼一來就只改變首頁的線上列表~~~
基本上會放在./includes/page_header.php的變數都是共用的~~
例如
所有的時間均為 台北時間 (GMT + 8 小時)
竹貓星球 首頁
這些資訊等等~~所以一定是全部都會更著變~
之前動機的方法則需要大量修改程式~~(用table來分)
基本上不是建議這樣做~~
直接丟個迴圈就能作出這種效果了~~
有興趣的人可以自行研究~~~
ex.
[php]<?php
for ($i=0;$i<100;$I++){
echo '<span style="width:20%;">'.$i.'</span>';
}
?>[/php]
上面的範例是列出0-99~且一行5個~
有興趣者可以試著寫一個用TABLE來印出同樣效果~
在來比較兩者的差別~~
EX.用表格來作
[php]<?php
$all_count = 100; //總數\r
$line_count = 5; //一行有多少數目\r
$much_line = intval($all_count / $line_count);
if ( ($all_count % $line_count) != 0 ){
$much_line++;
}
echo '<table width="100%">';
for ($x=0;$x<$much_line;$x++){
echo '<tr>';
for ($y=0;$y<$line_count;$y++){
$show_num = ($x*$line_count)+$y;
if ($show_num < $all_count){
echo '<td>'.$show_num.'</td>';
}else{
echo '<td> </td>';
}
}
echo '</tr>';
}
echo '</table>';
?>[/php]
雖然說是達到相同的目的~~
但計算出錯率卻是大不相同~~~
當然~表格方式可以做到其他比較特殊的需求~~
例如~~輸出的東西要有背景~~~
不過基本上~~CSS都還能解決的~~
發表於 : 2004-05-02 16:34
由 依夢兒
呼,讓我長了不少知識。
謝謝 messagebox 的熱情指導,待會我試試。^^
發表於 : 2004-05-03 00:49
由 shihchieh
plus的index部份就不會撐大直接參考也應該可以