[問題]請問我想限制發文達 50 篇才能使用簽名檔

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

版主: 版主管理群

主題已鎖定
吉川拓也
竹貓忠實會員
竹貓忠實會員
文章: 1215
註冊時間: 2003-02-09 18:24
來自: [ G.I.T ]
聯繫:

[問題]請問我想限制發文達 50 篇才能使用簽名檔

文章 吉川拓也 »

問題外掛:這個沒有參考連結
參考連結:無\r
使用版本:2.0.18
網站位置:http://gamania.idv.tw
狀況描述:
目前想限制簽名檔使用者要發文達 50 篇才能使用這功能 !
所以就寫了一段判斷句但是放在 usercp_register.php
但怎麼放都不太順暢 ..

代碼: 選擇全部

    if ( $userdata['user_posts'] < 50 ) 
    { 
       $message .=  '您的發文數量必須超過 50 篇才能使用簽名檔<br /><br />' . sprintf($lang['Click_return_topic'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>'); 
       message_die(GENERAL_ERROR, $message); 
    }
所以想請有相同問題困擾的學長、弟一起研究一下 :-D
善用 搜尋 可以解決您 90% 的問題
頭腦清晰,選擇正確。 (╯▔︹▔)╯~╘═╛
在思緒重疊之前
星球公民
星球公民
文章: 79
註冊時間: 2005-08-22 04:13
來自: 孤單北半球
聯繫:

文章 在思緒重疊之前 »

所謂的不太順暢是甚麼意思=_=?
可是我看你家很正常阿-.-
一樣的黑夜 一樣的星空
不一樣的是我的心 多了份思念
飛越了時間的海 穿過了距離綑綁的憂愁
吉他的旋律撥動心弦 遠方的妳是否聽見
伴隨著音符慢慢浮現妳的臉
陽光緩緩出現 又是一個失眠的夜..

http://www.shibasakikou.com
吉川拓也
竹貓忠實會員
竹貓忠實會員
文章: 1215
註冊時間: 2003-02-09 18:24
來自: [ G.I.T ]
聯繫:

文章 吉川拓也 »

在思緒重疊之前 寫:所謂的不太順暢是甚麼意思=_=?
可是我看你家很正常阿-.-
因為日前無法註冊 ..
就是卡在這段 . 所以要找個位置擺放 ..
流程地方要擺正確不然會影響註冊 ..

目前是沒有修改的狀態下 ..
所以沒什麼問題 :mrgreen:
善用 搜尋 可以解決您 90% 的問題
頭腦清晰,選擇正確。 (╯▔︹▔)╯~╘═╛
~倉木麻衣~
竹貓忠實會員
竹貓忠實會員
文章: 1405
註冊時間: 2004-03-21 21:00

文章 ~倉木麻衣~ »

記得之前在您的站上有試著修改過自己的資料, 並未填寫簽名檔, 但是卻出現文中所提及的錯誤訊息\r
不知您所謂的不太順暢是否就是指這種狀況
只要發文數量未達限定條件者, 不論簽名檔有無內容都會出現錯誤訊息\r

如果是的話, 建議將上述程式碼放到這行之前

代碼: 選擇全部

if ( !isset($signature_bbcode_uid) || $signature_bbcode_uid == '' )
也就是在 if ( $signature != '' ) 的判斷式裡判斷發文數即可\r
另外, 個人會將它修改成這樣子

代碼: 選擇全部

		if ( $mode == 'register' || ($mode == 'editprofile' && $userdata['user_posts'] < 50) )
		{
			$error = TRUE;
			$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . 'Only posts over than 50 can use signature.';
		}
因為訪客發表文章也會增加它的user_posts數\r
所以只判斷文章數的話, 那麼在會員註冊時就有可能可以直接跳過發文數的限制
謝絕所有私人訊息詢問外掛相關問題
有問題請直接於版上發表, 集思廣議絕對比專挑特定人士詢問來的好

竹貓禁止發表含破解相關的軟體, 違者砍文
不要跟我講別的地方都可以發, 為什麼竹貓就不行
免費不等於破解, 傻傻的搞不清楚
動機不明
喝咖啡的綠皮猴
喝咖啡的綠皮猴
文章: 1179
註冊時間: 2002-03-06 20:37
來自: GOP (重啟)

文章 動機不明 »

我想的最簡單\r
直接放 viewtopic.php 就可以了... (未加入訪客判斷)

代碼: 選擇全部

	if ( $user_sig != '' )
	
	{
		$user_sig = '<br /><br /><font color="#FF6600">------------------------------------</font><font color="#888888"><br />' . str_replace("
", "
<br />
", $user_sig);
    if ( $postrow[$i]['user_posts'] < 50 ) 
    { 
			$user_sig = '<br /><br /><font color="#FF6600">------------------------------------</font><font color="#888888"><br />您的發文數量必須超過 50 篇才能使用簽名檔';
    }
	}
非官方外掛問題區公告: [必看]請配合發問格式及明確主題發問(2006 02/24更新)
七點要求:
1. 發問前先搜尋,確定沒有重複後再發表
2. 主題要明確
3. 依照發問格式
4. 禁連續推文
5. 請盡量減少使用地方性語言
6. 解決問題後請修改第一篇主題,並感謝曾經幫過你的前輩們 ^^
7. 請不要將檔案內容完整貼出喔! 只要提供問題行及上下各五行就可以了
吉川拓也
竹貓忠實會員
竹貓忠實會員
文章: 1215
註冊時間: 2003-02-09 18:24
來自: [ G.I.T ]
聯繫:

文章 吉川拓也 »

嗯嗯 ~ 我試試看^^~
感謝兩位學長幫忙 ;-)
善用 搜尋 可以解決您 90% 的問題
頭腦清晰,選擇正確。 (╯▔︹▔)╯~╘═╛
Mac
百戰天龍馬蓋先
百戰天龍馬蓋先
文章: 2590
註冊時間: 2003-02-02 02:28
來自: MacphpBBMOD
聯繫:

文章 Mac »

我記得官方那邊有一些對於簽名檔做出限制的外掛,不過忘了是在認證的版面還是 BETA 版看到的

~Mac
+ 關於 phpBB 使用問題請在版面發問,私人訊息提供其他不相干或是隱私的事情聯絡之用。

phpBB 官網 | 竹貓星球 | MacphpBBMOD | 我的服務
御津闇慈
竹貓忠實會員
竹貓忠實會員
文章: 645
註冊時間: 2001-11-17 10:59

文章 御津闇慈 »

大家想的太複雜了吧...||||
只要用assign_block_vars就可以搞定了......
打開usercp_register.php
尋找\r

代碼: 選擇全部


$template->set_filenames(array(
		'body' => 'profile_add_body.tpl')

上方加入\r

代碼: 選擇全部

自己的篇數 大於 50篇的話 就啟用\r
if($userdata['user_posts'] > 50)
		{
			$template->assign_block_vars('signatur_on', array());
		}
開啟profile_add_body.tpl
尋找\r

代碼: 選擇全部

	<tr> 
	  <td class="row1"><span class="gen">{L_SIGNATURE}:</span><br /><span class="gensmall">{L_SIGNATURE_EXPLAIN}<br /><br />{HTML_STATUS}<br />{BBCODE_STATUS}<br />{SMILIES_STATUS}</span></td>
	  <td class="row2"> 
		<textarea name="signature" style="width: 300px" rows="6" cols="30" class="post">{SIGNATURE}</textarea>
	  </td>
	</tr>
替換成

代碼: 選擇全部

<!-- BEGIN signatur_on -->
	<tr> 
	  <td class="row1"><span class="gen">{L_SIGNATURE}:</span><br /><span class="gensmall">{L_SIGNATURE_EXPLAIN}<br /><br />{HTML_STATUS}<br />{BBCODE_STATUS}<br />{SMILIES_STATUS}</span></td>
	  <td class="row2"> 
		<textarea name="signature" style="width: 300px" rows="6" cols="30" class="post">{SIGNATURE}</textarea>
	  </td>
	</tr>
<!-- END signatur_on -->
這樣就可以把個人資料的簽名檔給他隱藏起來
等到滿足篇數就會自動顯示
~倉木麻衣~
竹貓忠實會員
竹貓忠實會員
文章: 1405
註冊時間: 2004-03-21 21:00

文章 ~倉木麻衣~ »

御津闇慈 寫:大家想的太複雜了吧...||||
只要用assign_block_vars就可以搞定了......
如同前述的, 訪客發文時也會增加他的user_posts數量
因此單就user_posts來判斷的話, 還會是會有漏洞

假設在修改之前, 訪客的發文數量尚未超過限定條件, 那麼當然是可以達到目的
但若是訪客的發文數量在修改之前就已超出限定值的話, 那麼新註冊的會員就可以完全不受限制, 可以在一開始時就使用簽名檔了(只要在註冊時有填簽名檔內容的話)
這樣反而不合理
我想, 這個可以自行在測試站台上稍微測試一下就知道了 :P

所以還是有必要判斷載入usercp_regiater.php時的mode為何才合理
謝絕所有私人訊息詢問外掛相關問題
有問題請直接於版上發表, 集思廣議絕對比專挑特定人士詢問來的好

竹貓禁止發表含破解相關的軟體, 違者砍文
不要跟我講別的地方都可以發, 為什麼竹貓就不行
免費不等於破解, 傻傻的搞不清楚
御津闇慈
竹貓忠實會員
竹貓忠實會員
文章: 645
註冊時間: 2001-11-17 10:59

文章 御津闇慈 »

~倉木麻衣~ 寫:
御津闇慈 寫:大家想的太複雜了吧...||||
只要用assign_block_vars就可以搞定了......
如同前述的, 訪客發文時也會增加他的user_posts數量
因此單就user_posts來判斷的話, 還會是會有漏洞

假設在修改之前, 訪客的發文數量尚未超過限定條件, 那麼當然是可以達到目的
但若是訪客的發文數量在修改之前就已超出限定值的話, 那麼新註冊的會員就可以完全不受限制, 可以在一開始時就使用簽名檔了(只要在註冊時有填簽名檔內容的話)
這樣反而不合理
我想, 這個可以自行在測試站台上稍微測試一下就知道了 :P

所以還是有必要判斷載入usercp_regiater.php時的mode為何才合理
這樣倒是還有解決方式
在增加&& $userdata['session_logged_in']下去\r
這樣的話可以解決了
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8547
註冊時間: 2004-04-30 01:54
來自: Taiwan

文章 心靈捕手 »

雖然目標相同, 但是卻可以有不同的方法來達成.

1. ~倉木麻衣~ 兄的作法:
算是回應 吉川拓也 大大的需求, 而做最佳的修改.

如此一來, 便可以在會員註冊時, 或者是已註冊會員修改個人資料時, 提出此一訊息.

ps. 但是底下這個代碼, 應該是有新增其他外掛而加入\r

代碼: 選擇全部

if ( !isset($signature_bbcode_uid) || $signature_bbcode_uid == '' )
我查看 phpbb 2.0.18 原始碼如下:

代碼: 選擇全部

if ( $signature_bbcode_uid == '' )
2. 動機不明 大大的方法:
這個方法算是讓會員" 看得到, 吃不到" 的方法, 也是一絕!

ps.
由於訪客並無法編輯簽名檔, 所以應該可以不必加入訪客身分的判斷.

3. 御津闇慈 大大的方法:
應該也是可行, 不過得再加上訪客身分的判斷才行.

否則, 假設論壇訪客所發表的文章數, 如果超過該限制的話,
那麼會員在註冊時, 便會出現編輯簽名的欄位;
若有會員在註冊時, 就已經設定了簽名,
則註冊後, 反而無法進入個人資料去編輯.

ps.
發表後, 卻看到 御津闇慈 大大的回文,
經過測試, 再加上這個條件( && $userdata['session_logged_in']), 已經可行. :mrgreen:
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
~倉木麻衣~
竹貓忠實會員
竹貓忠實會員
文章: 1405
註冊時間: 2004-03-21 21:00

文章 ~倉木麻衣~ »

心靈捕手 寫:ps. 但是底下這個代碼, 應該是有新增其他外掛而加入\r

代碼: 選擇全部

if ( !isset($signature_bbcode_uid) || $signature_bbcode_uid == '' )
我查看 phpbb 2.0.18 原始碼如下:

代碼: 選擇全部

if ( $signature_bbcode_uid == '' )
咦?
我是蠻確定在phpBB 2.0.18裡那一行是長這樣\r

代碼: 選擇全部

if ( !isset($signature_bbcode_uid) || $signature_bbcode_uid == '' )
而且剛才重抓一次竹貓及phpBB官方的ZIP檔回來查看, 也確定是如同個人上述所貼的程式碼沒錯\r

Never mind
正因每個人思考的方式不同, 所以程式的實作也沒有絕對的, 最終還是會達到目標 :mrgreen:
謝絕所有私人訊息詢問外掛相關問題
有問題請直接於版上發表, 集思廣議絕對比專挑特定人士詢問來的好

竹貓禁止發表含破解相關的軟體, 違者砍文
不要跟我講別的地方都可以發, 為什麼竹貓就不行
免費不等於破解, 傻傻的搞不清楚
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8547
註冊時間: 2004-04-30 01:54
來自: Taiwan

文章 心靈捕手 »

To ~倉木麻衣~:

拍謝! :oops:
我看到的是 phpbb 2.0.17
此處代碼升級後就是您所寫出的

以下是 phpBB 2.0.17 to phpBB 2.0.18 Code Changes
關於 includes/usercp_register.php 部分擷取

代碼: 選擇全部

#
#-----[ FIND ]---------------------------------------------
#
		if ( $signature_bbcode_uid == '' )

#
#-----[ REPLACE WITH ]---------------------------------------------
#
		if ( !isset($signature_bbcode_uid) || $signature_bbcode_uid == '' )
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
吉川拓也
竹貓忠實會員
竹貓忠實會員
文章: 1215
註冊時間: 2003-02-09 18:24
來自: [ G.I.T ]
聯繫:

文章 吉川拓也 »

感謝眾多學長們一起腦力激盪 :-P
目前弟已經找出大概適用於自己站上方式了 ~
善用 搜尋 可以解決您 90% 的問題
頭腦清晰,選擇正確。 (╯▔︹▔)╯~╘═╛
主題已鎖定

回到「外掛問題討論」