1 頁 (共 1 頁)

如何加入到訪會員名單?

發表於 : 2011-07-26 14:10
w91754
如何在限會員發表及閱讀版面加入最後二十四小時內到訪會員名單?

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

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

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

是否很難修改?如果可以,如何做?有勞費神,謝謝!

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

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

p.s.
移動到「外掛問題討論」版面。

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

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

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

等我有空嘗試修改,謝謝。

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

發表於 : 2011-07-28 11:45
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
請君不吝賜教,如何移入另外“只限會員閱覽發表”版面,不勝銘感!

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

發表於 : 2011-07-28 14:31
心靈捕手
先想想下列辦法:
  • 將加在 index.php 的代碼,也加在 viewforum.php。
  • 將加在 index_body.html 的代碼,也加在 viewforum_body.html。

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

發表於 : 2011-07-29 14:34
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,可以讓登入會員看到“中文姓名及班別”,而未登入的訪客看不到。
是用什麼特別代碼填入。煩請再指導,有勞費神,再三謝謝!

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

發表於 : 2011-07-29 16:33
心靈捕手
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();
}

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

發表於 : 2011-07-30 00:59
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();
}
果然如願,謝謝心靈捕手老師指導!

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

發表於 : 2011-07-30 11:47
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 -->
清除快取後測試,沒有結果! :(

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

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

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

清除快取後測試,沒有結果! :(
您的需求應該修改下列檔案:
  • styles/prosilver/template/search_results.html

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

發表於 : 2011-07-31 02:19
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) 測試成功

謝謝心靈捕手老師再三四次指導!

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

發表於 : 2011-07-31 14:36
心靈捕手
w91754 寫: 謝謝心靈捕手老師再三四次指導!
不必客氣!
感謝分享!