[外掛]後台關閉註冊 2.0.0

MODs Released by Other phpbb Sites
非官方認證通過之 MOD ,或許有安全性之疑慮,所有問題由原發表者回覆!

版主: 版主管理群

主題已鎖定
御津闇慈
竹貓忠實會員
竹貓忠實會員
文章: 645
註冊時間: 2001-11-17 10:59

[外掛]後台關閉註冊 2.0.0

文章 御津闇慈 »

原基礎外掛
http://phpbb-tw.net/phpbb/viewtopic.php?t=13867

代碼: 選擇全部

############################################################## 
## Mod Title: 後台關閉註冊 2.0.0 
## 
## Author: 御津闇慈 = 炎之虛空 (zxery3@hotmail.com) 
##  
## Description:  
##   管理員可以從控制台關閉註冊
##   不需要把檔案下載回來再修改 
##   2.0.0:增?#91;註冊天數功能,可以在後台?#93;定?#125;放註冊天數\r
##            到了指定天數將會自動關閉註冊
##   0.02升級:後台可以寫上關閉註冊的原?#93;
## 
## Files To Edit: 
##   profile.php 
##   admin/admin_board.php
##   /templates/subSilver/admin/board_config_body.tpl
##   lang_admin.php
## ADD SQL
############################################################## 
##############################################################

#
# 
#-----[ ACTION: ?#125;啟檔案 ]------------------------------------------ 
# 

profile.php 

# 
#-----[ ACTION: 尋找 ]------------------------------------------ 
# 

else if ( $mode == 'editprofile' || $mode == 'register' ) 
	{

		if ( !$userdata['session_logged_in'] && $mode == 'editprofile' )
		{
			redirect(append_sid("login.$phpEx?redirect=profile.$phpEx&mode=editprofile", true));
		}

		include($phpbb_root_path . 'includes/usercp_register.'.$phpEx);
		exit;
	}
	
# 
#-----[ ACTION: 替換為 ]------------------------------------------ 
# 

	else if ( $mode == 'editprofile' )
	{

		if ( !$userdata['session_logged_in'] && $mode == 'editprofile' )
		{
			redirect(append_sid("login.$phpEx?redirect=profile.$phpEx&mode=editprofile", true));
		}

		include($phpbb_root_path . 'includes/usercp_register.'.$phpEx);
		exit;
	}
	else if ( $mode == 'register' )
	{	
			if( !$board_config['register_enable'] && $userdata['user_level'] != ADMIN )
   		{ 
      			message_die(GENERAL_MESSAGE, $board_config['register_content'] , 'Information'); 
   		}

		include($phpbb_root_path . 'includes/usercp_register.'.$phpEx);
		exit;
	}


#
#-----[ OR ]------------------------------------------
# 
#-----[ ACTION: 尋找 ]------------------------------------------ 
# 


if ( !$userdata['session_logged_in'] && $mode == 'editprofile' )
		{
			redirect(append_sid("login.$phpEx?redirect=profile.$phpEx&mode=editprofile", true));
		}


# 
#-----[ ADD: ?#91;入 ]------------------------------------------ 
# 

if( $mode == 'register' && !$board_config['register_enable'] && $userdata['user_level'] != ADMIN )
   		{ 
      			message_die(GENERAL_MESSAGE, $board_config['register_content'] , 'Information'); 
   		}

# 
#-----[ save: 存檔 ]------------------------------------------ 
# 


# 
#-----[ ACTION: ?#125;啟檔案 ]------------------------------------------ 
# 

admin/admin_board.php 	


# 
#-----[ ACTION: 尋找 ]------------------------------------------ 
# 

			$sql = "UPDATE " . CONFIG_TABLE . " SET
				config_value = '" . str_replace("\'", "''", $new[$config_name]) . "'
				WHERE config_name = '$config_name'";
			if( !$db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, "Failed to update general configuration for $config_name", "", __LINE__, __FILE__, $sql);
			}

# 
#-----[ ADD: ?#91;入 ]------------------------------------------ 
# 

			if($new['register_day'] != 0)
			{
				$sql0 = "UPDATE " . CONFIG_TABLE . " SET
					config_value = '1'
					WHERE config_name = 'register_enable'";
				if( !$db->sql_query($sql0) )
				{
					message_die(GENERAL_ERROR, "Failed to update general configuration for $config_name", "", __LINE__, __FILE__, $sql0);
				}
			}
# 
#-----[ ACTION: 尋找 ]------------------------------------------ 
# 

	if( isset($HTTP_POST_VARS['submit']) )
	{
		$message = $lang['Config_updated'] . "<br /><br />" . sprintf($lang['Click_return_config'], "<a href=\"" . append_sid("admin_board.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");

		message_die(GENERAL_MESSAGE, $message);
	}
}
# 
#-----[ ADD: ?#91;入 ]------------------------------------------ 
# 

if(((int)$new['register_time']+(60*60*24*(int)$new['register_day']))<time() && $new['register_day'] != 0)
		{
			$sql = "UPDATE " . CONFIG_TABLE . " SET
				config_value = '0'
				WHERE config_name = 'register_enable'";
			if( !$db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, "Failed to update general configuration for $config_name", "", __LINE__, __FILE__, $sql);
			}
			$sql2 = "UPDATE " . CONFIG_TABLE . " SET
				config_value = '0'
				WHERE config_name = 'register_day'";
			if( !$db->sql_query($sql2) )
			{
				message_die(GENERAL_ERROR, "Failed to update general configuration for $config_name", "", __LINE__, __FILE__, $sql2);
			}
			$sql3 = "UPDATE " . CONFIG_TABLE . " SET
				config_value = '" . str_replace("\'", "''", $lang['Register_Time_Out']) . "'
				WHERE config_name = 'register_content'";
			if( !$db->sql_query($sql3) )
			{
				message_die(GENERAL_ERROR, "Failed to update general configuration for $config_name", "", __LINE__, __FILE__, $sql2);
			}
		}

# 
#-----[ ACTION: 尋找 ]------------------------------------------ 
# 

$smtp_yes = ( $new['smtp_delivery'] ) ? "checked=\"checked\"" : ""; 
$smtp_no = ( !$new['smtp_delivery'] ) ? "checked=\"checked\"" : ""; 

# 
#-----[ ADD: ?#91;入 ]------------------------------------------ 
# 

// Register_MOD 
$register_enable_yes = ( $new['register_enable'] ) ? "checked=\"checked\"" : ""; 
$register_enable_no = ( !$new['register_enable'] ) ? "checked=\"checked\"" : "";

$register_time = time();

for ($i=0;$i<=30;$i+=1) 
{ 
if ($new['register_day'] == $i ) 
{ 
$checked = 'selected'; 
} else { 
$checked = ''; 
} 
$register_day .= '<option ' . $checked . ' value="'.$i.'">'.$i.'</option>'; 
}


# 
#-----[ ACTION: 尋找 ]------------------------------------------ 
# 

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

# 
#-----[ ADD: ?#91;入 ]------------------------------------------ 
# 

	"L_REGISTER_DAYS" => $lang['Register_Days'], // Register_MOD
	"L_REGISTER_SETTING" => $lang['Register_Setting'], // Register_MOD 
	"L_REGISTER_STATUS" => $lang['Register_Status'], // Register_MOD 
	"L_REGISTER_CONTENT" => $lang['Register_Content'], // Register_MOD 
	"L_REGISTER_WARNING" => $lang['Register_Warning'], // Register_MOD 
	"S_REGISTER_YES" => $register_enable_yes, // Register_MOD 
	"S_REGISTER_NO" => $register_enable_no, // Register_MOD
	"REGISTER_CONTENT" => $new['register_content'], // register_MOD 
	"REGISTER_TIMES" => $register_time,
	"REGISTER_DAY" => $register_day,

# 
#-----[ save: 存檔 ]------------------------------------------ 
# 

# 
#-----[ ACTION: ?#125;啟檔案 ]------------------------------------------ 
# 

/templates/subSilver/admin/board_config_body.tpl 

# 
#-----[ ACTION: 尋找 ]------------------------------------------ 
# 
	<tr>
		<td class="row1">{L_ENABLE_PRUNE}</td>
		<td class="row2"><input type="radio" name="prune_enable" value="1" {PRUNE_YES} /> {L_YES}&&<input type="radio" name="prune_enable" value="0" {PRUNE_NO} /> {L_NO}</td>
	</tr>	

# 
#-----[ ADD: ?#91;入 ]------------------------------------------ 
# 

<tr><!-- REGISTER_MOD --> 
      <th class="thHead" colspan="2">{L_REGISTER_SETTING}</th> 
   </tr> 
   <tr> 
      <td class="row1">{L_REGISTER_STATUS}</td> 
      <td class="row2">
      <input type="radio" name="register_enable" value="1" {S_REGISTER_YES}> {L_ENABLED}
      <input type="radio" name="register_enable" value="0" {S_REGISTER_NO}> 
      {L_DISABLED}
      </td>
   </tr>
   <tr>
      <td class="row1">{L_REGISTER_DAYS}</td> 
      <td class="row2">
      <select size="1" name="register_day">{REGISTER_DAY}</select>
      <input type="hidden" name="register_time" value="{REGISTER_TIMES}">
      </td>
   </tr> 
   <tr> 
      <td class="row1" valign="top">{L_REGISTER_CONTENT}<br /><span class="gensmall">{L_REGISTER_WARNING}</span></td> 
      <td class="row2"><textarea name="register_content" rows="5" cols="30" maxlength="255">{REGISTER_CONTENT}</textarea></td> 
	</tr>
# 
#-----[ ACTION: ?#125;啟檔案 ]------------------------------------------ 
# 

lang_admin.php

# 
#-----[ ADD: ?#91;入 ]------------------------------------------ 
# 

//
$lang['Register_Setting'] = '會員註冊功能'; 
$lang['Register_Status'] = '註冊狀態';
$lang['Register_Content'] = '註冊關閉原?#93;'; 
$lang['Register_Warning'] = "請勿使用單引號 ('), 字數限制 255 字元";
$lang['Register_Days'] = '?#125;放天數<br>請注意!一旦啟用這選項將會強制?#125;放註冊功能'; 
$lang['Register_Time_Out'] = '非常抱歉!?#125;放註冊時間已到!請等候下次?#125;放時間';
# 
#-----[ save: 存檔 ]------------------------------------------ 
# 

#
#-----[SOL語法]-----------------------------------------------
#

INSERT INTO phpbb_config (config_name , config_value) VALUES ('register_enable', '1'); 
INSERT INTO phpbb_config (config_name , config_value) VALUES ('register_content', ''); 
INSERT INTO phpbb_config (config_name , config_value) VALUES ('register_day', '0'); 
INSERT INTO phpbb_config (config_name , config_value) VALUES ('register_time', ''); 


# 
#-----[ OK!!: 完成!! ]------------------------------------------ 
# 
御津闇慈
竹貓忠實會員
竹貓忠實會員
文章: 645
註冊時間: 2001-11-17 10:59

文章 御津闇慈 »

代碼: 選擇全部

############################################################## 
## Mod Title: 後台關閉註冊 2.0.1升級檔
## 
## Author: 御津闇慈 = 炎之虛空 (zxery3@hotmail.com) 
##  
## Description:  
##   管理員可以從控制台關閉註冊 
##   不需要把檔案下載回來再修改 
##   2.0.1:改?#125;後台的關閉註冊語法(以前一個一個關閉,?#123;在改用?#125;列),節省?#123;式碼空間
##   2.0.0:增?#91;註冊天數功能,可以在後台?#93;定?#125;放註冊天數 
##            到了指定天數將會自動關閉註冊 
##   0.02升級:後台可以寫上關閉註冊的原?#93; 
## 
## Files To Edit: 
##   admin/admin_board.php 
## ADD SQL 
############################################################## 
############################################################## 

# 
# 
#-----[ ACTION: ?#125;啟檔案 ]------------------------------------------ 
# 

admin/admin_board.php

# 
#-----[ ACTION: 尋找 ]------------------------------------------ 
# 

if(((int)$new['register_time']+(60*60*24*(int)$new['register_day']))<time() && $new['register_day'] != 0) 
      { 
         $sql = "UPDATE " . CONFIG_TABLE . " SET 
            config_value = '0' 
            WHERE config_name = 'register_enable'"; 
         if( !$db->sql_query($sql) ) 
         { 
            message_die(GENERAL_ERROR, "Failed to update general configuration for $config_name", "", __LINE__, __FILE__, $sql); 
         } 
         $sql2 = "UPDATE " . CONFIG_TABLE . " SET 
            config_value = '0' 
            WHERE config_name = 'register_day'"; 
         if( !$db->sql_query($sql2) ) 
         { 
            message_die(GENERAL_ERROR, "Failed to update general configuration for $config_name", "", __LINE__, __FILE__, $sql2); 
         } 
         $sql3 = "UPDATE " . CONFIG_TABLE . " SET 
            config_value = '" . str_replace("\'", "''", $lang['Register_Time_Out']) . "' 
            WHERE config_name = 'register_content'"; 
         if( !$db->sql_query($sql3) ) 
         { 
            message_die(GENERAL_ERROR, "Failed to update general configuration for $config_name", "", __LINE__, __FILE__, $sql2); 
         } 
      } 

    
# 
#-----[ ACTION: 替換為 ]------------------------------------------ 
# 
if(((int)$new['register_time']+(60*60*24*(int)$new['register_day']))<time() && $new['register_day'] != 0)
		{
			$sql = array(
			"UPDATE " . CONFIG_TABLE . " SET config_value = '0' WHERE config_name = 'register_enable'",
			"UPDATE " . CONFIG_TABLE . " SET config_value = '0' WHERE config_name = 'register_day'",
			"UPDATE " . CONFIG_TABLE . " SET config_value = '" . str_replace("\'", "''", $lang['Register_Time_Out']) . "' WHERE config_name = 'register_content'"
			);
			
			for($i=0; $i<count($sql) ;$i++)
			{
			if( !$db->sql_query($sql[$i]) ) 
\n			 { 
				message_die(GENERAL_ERROR, "Failed to update general configuration for $config_name", "", __LINE__, __FILE__, $sql[$i]); 
			 } 
			}

		}


# 
#-----[ OK!!: 完成!! ]------------------------------------------ 
# 
主題已鎖定

回到「非官方認證外掛」