如何加入到訪會員名單?

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

版主: 版主管理群譯文組

版面規則
請注意!您的提問必須遵守發問格式,違者砍文。
主題已鎖定
w91754
星球公民
星球公民
文章: 111
註冊時間: 2009-04-04 22:30

如何加入到訪會員名單?

文章 w91754 »

如何在限會員發表及閱讀版面加入最後二十四小時內到訪會員名單?

如圖一:會員列表,內有 "會員名稱" "文章" "姓名/級別" "註冊時間" "最後訪問"
五欄。

如圖二:風格是 Prosilver 與 只限會員發表及閱讀版面。

如圖三:只是舉例新版面。我想在下面"誰在線上"旁邊加入 "姓名/級別" 及 "最後訪問" 兩 欄。背景不拘,白底也可。

是否很難修改?如果可以,如何做?有勞費神,謝謝!
附加檔案
圖一
圖一
圖二
圖二
圖三
圖三
●主機作業系統:Windows XP SR3
●您的上網方式:Cable 寬頻
● Apache Version 2.4.18
● PHP Version 5.5.33
● phpMyAdmin 4.6.0
● phpBB 3.1.8
● MySQL Version 5.6.28
●網域名稱:wongsiu.us
●phpBB 連結網址:http://wongsiu.us/forum/
●預設風格: prosilver
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8540
註冊時間: 2004-04-30 01:54
來自: Taiwan

Re: 如何加入到訪會員名單?

文章 心靈捕手 »

w91754 寫:如何在限會員發表及閱讀版面加入最後二十四小時內到訪會員名單?
這個需求,不是只有修改風格就可以達成的。
不過,很抱歉!我很難理解您為何有此需求。

p.s.
移動到「外掛問題討論」版面。
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
w91754
星球公民
星球公民
文章: 111
註冊時間: 2009-04-04 22:30

Re: 如何加入到訪會員名單?

文章 w91754 »

心靈捕手 寫:
w91754 寫:如何在限會員發表及閱讀版面加入最後二十四小時內到訪會員名單?
這個需求,不是只有修改風格就可以達成的。
不過,很抱歉!我很難理解您為何有此需求。
p.s.
移動到「外掛問題討論」版面。
我找到下面網址類似需要,只要加入"姓名/級別"便可:
viewtopic.php?f=132&t=50972&p=266160&hi ... OD#p266160

原因會員不想利用"會員列表",但在第一時間想知最後二十四小時內到訪會員中文姓名/級別。

等我有空嘗試修改,謝謝。
●主機作業系統:Windows XP SR3
●您的上網方式:Cable 寬頻
● Apache Version 2.4.18
● PHP Version 5.5.33
● phpMyAdmin 4.6.0
● phpBB 3.1.8
● MySQL Version 5.6.28
●網域名稱:wongsiu.us
●phpBB 連結網址:http://wongsiu.us/forum/
●預設風格: prosilver
w91754
星球公民
星球公民
文章: 111
註冊時間: 2009-04-04 22:30

Re: 如何加入到訪會員名單?

文章 w91754 »

甲:序言:
1) 參考:viewtopic.php?f=132&t=50972&p=266160&hi ... OD#p266160

2) 下載"論壇活動情形"英中兩版本

3) 在頭版面下面顯示"在過去 24 小時內訪問過討論區的會員共有 X 位:"看圖11:
11.jpg
4) 問題是:題示到訪會員大多是英文帳號。

5) 我們的網站是專為校友而設,所以,要用“中文姓名及班別”,試試代替"英文帳號"。好在,修改後,測試初步做到。如圖5:
5.jpg
乙:依資料來源過程如下:

1) “中文姓名及班別”是設在PROFILE_FIELD_DATA.PF_FULLNAME 數據內。

2) 兩個現存程序要修改:
index.php,
styles/prosilver/template/index_body.html

3) 三個新加入程序
root/includes/functions_activity_stats.php
root/language/en/mods/activity_stats.php (英文版)
root/language/zh_cmn_hant/mods/activity_stats.php (中文版)

4) 照下面現存程序修改:
Open: index.php

代碼: 選擇全部

// Output page
page_header($user->lang['INDEX']);
加在前

代碼: 選擇全部

include($phpbb_root_path . 'includes/functions_activity_stats.' . $phpEx);
activity_mod();

Open: styles/prosilver/template/index_body.html

代碼: 選擇全部

<!-- IF LEGEND --><br /><em>{L_LEGEND}: {LEGEND}</em><!-- ENDIF --></p>
加在前

代碼: 選擇全部

<!-- IF not S_IS_BOT --><br /><br />
	{USERS_24HOUR_TOTAL}: <!-- BEGIN lastvisit -->{lastvisit.USERNAME_FULL}<!-- IF not lastvisit.S_LAST_ROW -->, <!-- ENDIF --><!-- END lastvisit -->
	<!-- ENDIF -->

代碼: 選擇全部

[code]<p>{TOTAL_POSTS} &bull; {TOTAL_TOPICS} &bull; {TOTAL_USERS} &bull; {NEWEST_USER}</p>
[/code]
加在後

代碼: 選擇全部

	<!-- IF not S_IS_BOT -->
	<h3 id="24hour_stats">{L_24HOUR_STATS}</h3>
	<p>{24HOUR_POSTS} &bull; {24HOUR_TOPICS} &bull; {24HOUR_USERS}</p>
	<!-- ENDIF -->
5) 清除快取

6) 初步成功測試像上面圖11。

丙:改用“中文姓名及班別”及免除機器人過程:

OPEN: includes/functions_activity_stats.php
1) “中文姓名及班別”

代碼: 選擇全部

			'SELECT'    => 'u.user_id, u.user_colour, u.username, u.user_type, u.user_allow_viewonline, s.session_viewonline',   
'FROM'		=> array(USERS_TABLE => 'u',
	
代替

代碼: 選擇全部

			'SELECT'    => 'u.user_id, u.user_colour, f.pf_fullname as username, u.user_type, u.user_allow_viewonline, s.session_viewonline',   
'FROM'		=> array(USERS_TABLE => 'u',
               PROFILE_FIELDS_DATA_TABLE => 'f',
	
2) 免除機器人:

代碼: 選擇全部

'WHERE'        => 'u.user_lastvisit > ' . (time() - 86400) . ' OR s.session_user_id <> ' . ANONYMOUS,     
代替

代碼: 選擇全部

'WHERE'        => 'u.user_type <> ' . USER_IGNORE . ' AND (u.user_lastvisit > ' . (time() - 86400) . ' OR s.session_user_id <> ' . ANONYMOUS . ')',    
3) 清除快改。
4) 初步成功測試像上面圖5。

丁:問題及需求

上面方法只適用頭版面,有沒有方法移到“只限會員閱覽發表”版面?像下圖:
12.jpg
請君不吝賜教,如何移入另外“只限會員閱覽發表”版面,不勝銘感!
●主機作業系統:Windows XP SR3
●您的上網方式:Cable 寬頻
● Apache Version 2.4.18
● PHP Version 5.5.33
● phpMyAdmin 4.6.0
● phpBB 3.1.8
● MySQL Version 5.6.28
●網域名稱:wongsiu.us
●phpBB 連結網址:http://wongsiu.us/forum/
●預設風格: prosilver
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8540
註冊時間: 2004-04-30 01:54
來自: Taiwan

Re: 如何加入到訪會員名單?

文章 心靈捕手 »

先想想下列辦法:
  • 將加在 index.php 的代碼,也加在 viewforum.php。
  • 將加在 index_body.html 的代碼,也加在 viewforum_body.html。
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
w91754
星球公民
星球公民
文章: 111
註冊時間: 2009-04-04 22:30

Re: 如何加入到訪會員名單?

文章 w91754 »

心靈捕手 寫:先想想下列辦法:
  • 將加在 index.php 的代碼,也加在 viewforum.php。
  • 將加在 index_body.html 的代碼,也加在 viewforum_body.html。
謝謝心靈捕手老師,已依指導修改。

1) 修改代碼:
Open: viewforum.php

代碼: 選擇全部

// This is rather a fudge but it's the best I can think of without requiring information
// on all topics (as we do in 2.0.x). It looks for unread or new topics, if it doesn't find
// any it updates the forum last read cookie. This requires that the user visit the forum
// after reading a topic
加在前

代碼: 選擇全部

include($phpbb_root_path . 'includes/functions_activity_stats.' . $phpEx);
activity_mod();
Open: styles/prosilver/template/viewforum_body.html

代碼: 選擇全部

<!-- IF S_DISPLAY_POST_INFO -->
	<h3>{L_FORUM_PERMISSIONS}</h3>
	<p><!-- BEGIN rules -->{rules.RULE}<br /><!-- END rules --></p>
<!-- ENDIF -->
加在前

代碼: 選擇全部

	<!-- IF not S_IS_BOT --><br />
	{USERS_24HOUR_TOTAL}: <!-- BEGIN lastvisit -->{lastvisit.USERNAME_FULL}<!-- IF not lastvisit.S_LAST_ROW -->, <!-- ENDIF --><!-- END lastvisit -->
	<!-- ENDIF -->

2) 清除快取

3) 測試成功如圖14。
14.jpg
4) 每個主題版面都有“中文姓名及班別”顯示。但我想在“只限會員閱覽發表”版面,例如:只限"民主牆"如圖15,可以讓登入會員看到“中文姓名及班別”,而未登入的訪客看不到。
是用什麼特別代碼填入。煩請再指導,有勞費神,再三謝謝!
附加檔案
15.jpg
●主機作業系統:Windows XP SR3
●您的上網方式:Cable 寬頻
● Apache Version 2.4.18
● PHP Version 5.5.33
● phpMyAdmin 4.6.0
● phpBB 3.1.8
● MySQL Version 5.6.28
●網域名稱:wongsiu.us
●phpBB 連結網址:http://wongsiu.us/forum/
●預設風格: prosilver
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8540
註冊時間: 2004-04-30 01:54
來自: Taiwan

Re: 如何加入到訪會員名單?

文章 心靈捕手 »

w91754 寫: 4) 每個主題版面都有“中文姓名及班別”顯示。但我想在“只限會員閱覽發表”版面,例如:只限"民主牆"如圖15,可以讓登入會員看到“中文姓名及班別”,而未登入的訪客看不到。
是用什麼特別代碼填入。煩請再指導,有勞費神,再三謝謝!
試試看在新增 viewforum.php 的代碼中,加入一些條件(如下):

代碼: 選擇全部

if ($user->data['is_registered'] && $auth->acl_gets('f_list', 'f_read', $forum_id))
{
include($phpbb_root_path . 'includes/functions_activity_stats.' . $phpEx);
activity_mod();
}
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
w91754
星球公民
星球公民
文章: 111
註冊時間: 2009-04-04 22:30

Re: 如何加入到訪會員名單?

文章 w91754 »

心靈捕手 寫: 試試看在新增 viewforum.php 的代碼中,加入一些條件(如下):

代碼: 選擇全部

if ($user->data['is_registered'] && $auth->acl_gets('f_list', 'f_read', $forum_id))
{
include($phpbb_root_path . 'includes/functions_activity_stats.' . $phpEx);
activity_mod();
}
果然如願,謝謝心靈捕手老師指導!
●主機作業系統:Windows XP SR3
●您的上網方式:Cable 寬頻
● Apache Version 2.4.18
● PHP Version 5.5.33
● phpMyAdmin 4.6.0
● phpBB 3.1.8
● MySQL Version 5.6.28
●網域名稱:wongsiu.us
●phpBB 連結網址:http://wongsiu.us/forum/
●預設風格: prosilver
w91754
星球公民
星球公民
文章: 111
註冊時間: 2009-04-04 22:30

Re: 如何加入到訪會員名單?

文章 w91754 »

心靈捕手 寫:先想想下列辦法:
  • 將加在 index.php 的代碼,也加在 viewforum.php。
  • 將加在 index_body.html 的代碼,也加在 viewforum_body.html。
  • 將加在 index.php 的代碼,同樣可以加在 viewtopic.php。
  • 將加在 index_body.html 的代碼,同樣也加在 viewtopic_body.html。
想在『檢視最近討論的主題』版面,加入"在過去 24 小時內訪問過討論區的會員共有 X 位",奇怪,這版面不能顯示,為什麼?這版面跟查看論壇版面(viewforum)及查看主題版面(viewtopic)似乎有分別,對嗎?只是好奇想問,如有心解答,在此先致謝。

Open: search.php

代碼: 選擇全部

// Output the basic page
page_header($user->lang['SEARCH']);
加在前

代碼: 選擇全部

}
if ($user->data['is_registered'] )
{
include($phpbb_root_path . 'includes/functions_activity_stats.' . $phpEx);
activity_mod();
}
Open: styles/prosilver/template/search_body.html

代碼: 選擇全部

<form method="get" action="{S_SEARCH_ACTION}">
加在前或後

代碼: 選擇全部

<!-- IF not S_IS_BOT --><br /><br />
   {USERS_24HOUR_TOTAL}: <!-- BEGIN lastvisit -->{lastvisit.USERNAME_FULL}<!-- IF not lastvisit.S_LAST_ROW -->, <!-- ENDIF --><!-- END lastvisit -->
   <!-- ENDIF -->
清除快取後測試,沒有結果! :(
●主機作業系統:Windows XP SR3
●您的上網方式:Cable 寬頻
● Apache Version 2.4.18
● PHP Version 5.5.33
● phpMyAdmin 4.6.0
● phpBB 3.1.8
● MySQL Version 5.6.28
●網域名稱:wongsiu.us
●phpBB 連結網址:http://wongsiu.us/forum/
●預設風格: prosilver
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8540
註冊時間: 2004-04-30 01:54
來自: Taiwan

Re: 如何加入到訪會員名單?

文章 心靈捕手 »

w91754 寫:
想在『檢視最近討論的主題』版面,加入"在過去 24 小時內訪問過討論區的會員共有 X 位",奇怪,這版面不能顯示,為什麼?這版面跟查看論壇版面(viewforum)及查看主題版面(viewtopic)似乎有分別,對嗎?只是好奇想問,如有心解答,在此先致謝。

Open: search.php
...
Open: styles/prosilver/template/search_body.html
...

清除快取後測試,沒有結果! :(
您的需求應該修改下列檔案:
  • styles/prosilver/template/search_results.html
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
w91754
星球公民
星球公民
文章: 111
註冊時間: 2009-04-04 22:30

Re: 如何加入到訪會員名單?

文章 w91754 »

心靈捕手 寫:
w91754 寫:
想在『檢視最近討論的主題』版面,加入"在過去 24 小時內訪問過討論區的會員共有 X 位",
您的需求應該修改下列檔案:
  • styles/prosilver/template/search_results.html
1) Open: styles/prosilver/template/search_results.html

代碼: 選擇全部

<!-- IF PAGINATION or SEARCH_MATCHES or PAGE_NUMBER -->
	<form method="post" action="{S_SEARCH_ACTION}">
加在前

代碼: 選擇全部

  <!-- IF not S_IS_BOT --><br />
   {USERS_24HOUR_TOTAL}: <!-- BEGIN lastvisit -->{lastvisit.USERNAME_FULL}<!-- IF not lastvisit.S_LAST_ROW -->, <!-- ENDIF --><!-- END lastvisit -->
   <!-- ENDIF -->
2) 清除快取
3) 結果只顯示 『:』符號。
4) 找問題是在 search.php 插入 代碼是在啟動 search_body.html 之前。
5) 修正:
Open: search.php

代碼: 選擇全部

$template->set_filenames(array(
		'body' => 'search_results.html')
	);
加在後

代碼: 選擇全部

if ($user->data['is_registered'] )
{
include($phpbb_root_path . 'includes/functions_activity_stats.' . $phpEx);
activity_mod();
}
6) 清除快取
7) 測試成功

謝謝心靈捕手老師再三四次指導!
●主機作業系統:Windows XP SR3
●您的上網方式:Cable 寬頻
● Apache Version 2.4.18
● PHP Version 5.5.33
● phpMyAdmin 4.6.0
● phpBB 3.1.8
● MySQL Version 5.6.28
●網域名稱:wongsiu.us
●phpBB 連結網址:http://wongsiu.us/forum/
●預設風格: prosilver
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8540
註冊時間: 2004-04-30 01:54
來自: Taiwan

Re: 如何加入到訪會員名單?

文章 心靈捕手 »

w91754 寫: 謝謝心靈捕手老師再三四次指導!
不必客氣!
感謝分享!
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
主題已鎖定

回到「[3.0.x] 外掛問題討論」