[升級]Plus153_code_update_phpbb-2.0.20_to_2.0.21

phpBB Plus Support
本區是討論關於 phpBB 2 plus 使用上的問題討論!
(發表文章請按照公告格式發表,違者砍文)

版主: 版主管理群

主題已鎖定
頭像
godbless
竹貓忠實會員
竹貓忠實會員
文章: 647
註冊時間: 2002-05-17 06:02
來自: 台北市南京東路4段
聯繫:

[升級]Plus153_code_update_phpbb-2.0.20_to_2.0.21

文章 godbless »

同時可以到我們的檔案庫下載完整檔案
此檔案是來自於
http://www.phpbb2.de/dload.php?action=file&file_id=827
同時也發布在
http://www.gffclan.com/dload.php?action=file&file_id=7
提供下載

代碼: 選擇全部

############################################################## 
## MOD Title: phpBB 2.0.20 to phpBB 2.0.21 Code Changes
## MOD Author: Acyd Burn <N> (Meik Sievertsen) N/A 
## MOD Description: 
##		
##		
##			These are the Changes from phpBB 2.0.20 to phpBB 2.0.21 summed up into a little
##		Mod. This might be very helpful if you want to update your Board and have
##		installed a bunch of Mods. Then it's normally easier to apply the Code Changes
##		than to install all Mods again.
##		
##			When you find a 'AFTER, ADD'-Statement, the Code have to be added after the
##		last line quoted in the 'FIND'-Statement.
##			When you find a 'BEFORE, ADD'-Statement, the Code have to be added before the
##		first line quoted in the 'FIND'-Statement.
##			When you find a 'REPLACE WITH'-Statement, the Code quoted in the
##		'FIND'-Statement have to be replaced completely with the quoted Code in the
##		'REPLACE WITH'-Statement.
##		
##			When you find more than one 'FIND'-Statement it just means that you go down the
##		code within the order of the 'FIND'-Statements, if you found the lines for the
##		first 'FIND'-Statement, you continue to search the lines for the second
##		'FIND'-Statement. The last 'FIND'-Statement includes the codeblock to work
##		with.
##		
##			For a comprehensive explanation about installing MODs, please visit this url:
##		http://www.phpbb.com/kb/article.php?article_id=150
##		
##			After you have finished this tutorial, you have to upload the
##		install/update_to_latest.php file, execute it and then delete it from your
##		webspace.
##		
##			
##		
## MOD Version: 1.0.0 
## 
## Installation Level: Easy
## Installation Time: 45 Minutes 
## Files To Edit: 
##		admin/admin_ranks.php
##		admin/admin_smilies.php
##		admin/admin_styles.php
##		admin/admin_words.php
##		common.php
##		includes/functions.php
##		includes/functions_post.php
##		includes/sessions.php
##		includes/usercp_avatar.php
##		login.php
##		privmsg.php
##		profile.php
##		search.php
##		viewtopic.php
##
## Included Files: install/update_to_latest.php
## License: http://opensource.org/licenses/gpl-license.php GNU General Public License v2 
############################################################## 
## For security purposes, please check: http://www.phpbb.com/mods/ 
## for the latest version of this MOD. Although MODs are checked 
## before being allowed in the MODs Database there is no guarantee 
## that there are no security problems within the MOD. No support 
## will be given for MODs not found within the MODs Database which 
## can be found at http://www.phpbb.com/mods/ 
############################################################## 
## Author Notes: 
## 
##	
############################################################## 
## MOD History: 
## 
##   2006-06-01 - Version 1.0.0 
##      - first release 
## 
############################################################## 
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD 
############################################################## 

代碼: 選擇全部

將/install/ 資料夾上傳到你的論壇的根目錄下
並在你的瀏覽器上啟動install/update_to_latest.php
比如http://www.yourforum.com/install/update_to_latest.php
#
#-----[ OPEN ]---------------------------------------------
#

代碼: 選擇全部

admin/admin_ranks.php
#
#-----[ FIND ]---------------------------------------------
# Line 33

代碼: 選擇全部

//
$phpbb_root_path = "./../";
require($phpbb_root_path . 'extension.inc');
#
#-----[ AFTER, ADD ]---------------------------------------------
#

代碼: 選擇全部

$cancel = ( isset($HTTP_POST_VARS['cancel']) ) ? true : false;
$no_page_header = $cancel;
#
#-----[ FIND ]---------------------------------------------
# Line 39

代碼: 選擇全部

require('./pagestart.' . $phpEx);
#
#-----[ AFTER, ADD ]---------------------------------------------
#

代碼: 選擇全部

if ($cancel)
{
	redirect('admin/' . append_sid("admin_ranks.$phpEx", true));
}
#
#-----[ OPEN ]---------------------------------------------
#

代碼: 選擇全部

admin/admin_smilies.php
#
#-----[ FIND ]---------------------------------------------
# Line 50

代碼: 選擇全部

$phpbb_root_path = "./../";
require($phpbb_root_path . 'extension.inc');
#
#-----[ AFTER, ADD ]---------------------------------------------
#

代碼: 選擇全部

$cancel = ( isset($HTTP_POST_VARS['cancel']) ) ? true : false;
$no_page_header = $cancel;
#
#-----[ FIND ]---------------------------------------------
# Line 55

代碼: 選擇全部

require('./pagestart.' . $phpEx);
#
#-----[ AFTER, ADD ]---------------------------------------------
#

代碼: 選擇全部

if ($cancel)
{
	redirect('admin/' . append_sid("admin_smilies.$phpEx", true));
}
#
#-----[ OPEN ]---------------------------------------------
#

代碼: 選擇全部

admin/admin_styles.php
#
#-----[ FIND ]---------------------------------------------
# Line 838

代碼: 選擇全部

			$template->set_filenames(array(
				"confirm" => "confirm_body.tpl")
			);
#
#-----[ REPLACE WITH ]---------------------------------------------
#

代碼: 選擇全部

			$template->set_filenames(array(
				"confirm" => "admin/confirm_body.tpl")
			);
#
#-----[ OPEN ]---------------------------------------------
#

代碼: 選擇全部

admin/admin_words.php
#
#-----[ FIND ]---------------------------------------------
# Line 35

代碼: 選擇全部

$phpbb_root_path = "./../";
require($phpbb_root_path . 'extension.inc');
#
#-----[ AFTER, ADD ]---------------------------------------------
#

代碼: 選擇全部

$cancel = ( isset($HTTP_POST_VARS['cancel']) ) ? true : false;
$no_page_header = $cancel;
#
#-----[ FIND ]---------------------------------------------
# Line 40

代碼: 選擇全部

require('./pagestart.' . $phpEx);
#
#-----[ AFTER, ADD ]---------------------------------------------
#

代碼: 選擇全部

if ($cancel)
{
	redirect('admin/' . append_sid("admin_words.$phpEx", true));
}
#
#-----[ OPEN ]---------------------------------------------
#

代碼: 選擇全部

common.php
#
#-----[ FIND ]---------------------------------------------
# Line 80

代碼: 選擇全部

		if (!in_array($var, $not_unset))
		{
			unset($$var);
		}
#
#-----[ REPLACE WITH ]---------------------------------------------
#

代碼: 選擇全部

		if (in_array($var, $not_unset))
		{
			die('Hacking attempt!');
		}
		unset($$var);
#
#-----[ OPEN ]---------------------------------------------
#

代碼: 選擇全部

includes/functions.php
#
#-----[ FIND ]---------------------------------------------
# Line 171

代碼: 選擇全部

	return substr($val, 16);
#
#-----[ REPLACE WITH ]---------------------------------------------
#

代碼: 選擇全部

	return substr($val, 4, 16);
#
#-----[ FIND ]---------------------------------------------
# Line 307

代碼: 選擇全部

	global $template, $lang, $phpEx, $phpbb_root_path;
	global $nav_links;
	//-- mod : mods settings ---------------------------------------------------------------------------
//-- add
	global $db, $mods, $list_yes_no, $userdata;
#
#-----[ REPLACE WITH ]---------------------------------------------
#

代碼: 選擇全部

	global $template, $lang, $phpEx, $phpbb_root_path, $db;
	global $nav_links;
	//-- mod : mods settings ---------------------------------------------------------------------------
//-- add
	global $mods, $list_yes_no, $userdata;
#
#-----[ FIND ]---------------------------------------------
# Line 314

代碼: 選擇全部

			$board_config['default_lang'] = $userdata['user_lang'];
#
#-----[ REPLACE WITH ]---------------------------------------------
#

代碼: 選擇全部

			$default_lang = phpbb_ltrim(basename(phpbb_rtrim($userdata['user_lang'])), "'");
#
#-----[ FIND ]---------------------------------------------
# Line 327

代碼: 選擇全部

	if ( !file_exists(@phpbb_realpath($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_main.'.$phpEx)) )
	{
		$board_config['default_lang'] = 'english';
	}
#
#-----[ REPLACE WITH ]---------------------------------------------
#

代碼: 選擇全部

	else
	{
		$default_lang = phpbb_ltrim(basename(phpbb_rtrim($board_config['default_lang'])), "'");
	}

	if ( !file_exists(@phpbb_realpath($phpbb_root_path . 'language/lang_' . $default_lang . '/lang_main.'.$phpEx)) )
	{
		if ( $userdata['user_id'] != ANONYMOUS )
		{
			// For logged in users, try the board default language next
			$default_lang = phpbb_ltrim(basename(phpbb_rtrim($board_config['default_lang'])), "'");
		}
		else
		{
			// For guests it means the default language is not present, try english
			// This is a long shot since it means serious errors in the setup to reach here,
			// but english is part of a new install so it's worth us trying
			$default_lang = 'english';
		}

		if ( !file_exists(@phpbb_realpath($phpbb_root_path . 'language/lang_' . $default_lang . '/lang_main.'.$phpEx)) )
		{
			message_die(CRITICAL_ERROR, 'Could not locate valid language pack');
		}
	}

	// If we've had to change the value in any way then let's write it back to the database
	// before we go any further since it means there is something wrong with it
	if ( $userdata['user_id'] != ANONYMOUS && $userdata['user_lang'] !== $default_lang )
	{
		$sql = 'UPDATE ' . USERS_TABLE . "
			SET user_lang = '" . $default_lang . "'
			WHERE user_lang = '" . $userdata['user_lang'] . "'";

		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(CRITICAL_ERROR, 'Could not update user language info');
		}

		$board_config['default_lang'] = $default_lang;
		$userdata['user_lang'] = $default_lang;
	}
	elseif ( $board_config['default_lang'] !== $default_lang )
	{
		$sql = 'UPDATE ' . CONFIG_TABLE . "
			SET config_value = '" . $default_lang . "'
			WHERE config_name = 'default_lang'";

		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(CRITICAL_ERROR, 'Could not update user language info');
		}

		$board_config['default_lang'] = $default_lang;
	}
#
#-----[ FIND ]---------------------------------------------
# Line 441

代碼: 選擇全部

	$sql = "SELECT *
		FROM " . THEMES_TABLE . "
		WHERE themes_id = $style";
#
#-----[ REPLACE WITH ]---------------------------------------------
#

代碼: 選擇全部

	$sql = 'SELECT *
		FROM ' . THEMES_TABLE . '
		WHERE themes_id = ' . (int) $style;
#
#-----[ FIND ]---------------------------------------------
# Line 458

代碼: 選擇全部

				WHERE themes_id = ' . $board_config['default_style'];
#
#-----[ REPLACE WITH ]---------------------------------------------
#

代碼: 選擇全部

				WHERE themes_id = ' . (int) $board_config['default_style'];
#
#-----[ FIND ]---------------------------------------------
# Line 469

代碼: 選擇全部

					SET user_style = ' . $board_config['default_style'] . "
#
#-----[ REPLACE WITH ]---------------------------------------------
#

代碼: 選擇全部

					SET user_style = ' . (int) $board_config['default_style'] . "
#
#-----[ OPEN ]---------------------------------------------
#

代碼: 選擇全部

includes/functions_post.php
#
#-----[ FIND ]---------------------------------------------
# Line 59

代碼: 選擇全部

			$message .= htmlspecialchars($part) . clean_html($tag);
		}

		$message = addslashes($message);
#
#-----[ REPLACE WITH ]---------------------------------------------
#

代碼: 選擇全部

			$message .= preg_replace($html_entities_match, $html_entities_replace, $part) . clean_html($tag);
		}

		$message = addslashes($message);
		$message = str_replace('"', '\"', $message);
#
#-----[ FIND ]---------------------------------------------
# Line 411

代碼: 選擇全部

	$sql = "UPDATE " . FORUMS_TABLE . " SET 
		$forum_update_sql 
		WHERE forum_id = $forum_id";
	if (!$db->sql_query($sql))
	{
		message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql);
	}
#
#-----[ REPLACE WITH ]---------------------------------------------
#

代碼: 選擇全部

	if ($mode != 'poll_delete')
	{
		$sql = "UPDATE " . FORUMS_TABLE . " SET 
			$forum_update_sql 
			WHERE forum_id = $forum_id";
		if (!$db->sql_query($sql))
		{
			message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql);
		}
	}
#
#-----[ OPEN ]---------------------------------------------
#

代碼: 選擇全部

includes/sessions.php
#
#-----[ FIND ]---------------------------------------------
# Line 365

代碼: 選擇全部

					setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);
					setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure);
				}

#
#-----[ AFTER, ADD ]---------------------------------------------
#

代碼: 選擇全部

				// Add the session_key to the userdata array if it is set
				if ( isset($sessiondata['autologinid']) && $sessiondata['autologinid'] != '' )
				{
					$userdata['session_key'] = $sessiondata['autologinid'];
				}

#
#-----[ FIND ]---------------------------------------------
# Line 505

代碼: 選擇全部

function session_reset_keys($user_id, $user_ip)
{
	global $db, $userdata;
#
#-----[ REPLACE WITH ]---------------------------------------------
#

代碼: 選擇全部

function session_reset_keys($user_id, $user_ip)
{
	global $db, $userdata, $board_config;
#
#-----[ FIND ]---------------------------------------------
# Line 544

代碼: 選擇全部

		// And now rebuild the cookie
		$sessiondata['userid'] = $user_id;
		$sessiondata['autologinid'] = $autologin_id;
#
#-----[ REPLACE WITH ]---------------------------------------------
#

代碼: 選擇全部

		// And now rebuild the cookie
		$sessiondata['userid'] = $user_id;
		$sessiondata['autologinid'] = $auto_login_key;
#
#-----[ OPEN ]---------------------------------------------
#

代碼: 選擇全部

includes/usercp_avatar.php
#
#-----[ FIND ]---------------------------------------------
# Line 120

代碼: 選擇全部

	if ( $avatar_mode == 'remote' && preg_match('/^(http:\/\/)?([\w\-\.]+)\:?([0-9]*)\/(.*)$/', $avatar_filename, $url_ary) )
#
#-----[ REPLACE WITH ]---------------------------------------------
#

代碼: 選擇全部

	if ( $avatar_mode == 'remote' && preg_match('/^(http:\/\/)?([\w\-\.]+)\:?([0-9]*)\/([^ \?&=\#\"\n\r\t<jpg>sql_query($sql);
					}
					*/
					// End add - Protect user account MOD
					if ($row['user_id'] != ANONYMOUS)
					{
						$sql = 'UPDATE ' . USERS_TABLE . '
							SET ct_logintry = 1
							WHERE user_id = ' . $row['user_id'];
						$db->sql_query($sql);
					}

					$redirect = ( !empty($_POST['redirect']) ) ? str_replace('&', '&', htmlspecialchars($_POST['redirect'])) : '';
					$redirect = str_replace('?', '&', $redirect);
					
					if (strstr(urldecode($redirect), "\n") || strstr(urldecode($redirect), "\r"))
					{
						message_die(GENERAL_ERROR, 'Tried to redirect to potentially insecure url.');
					}
					
					$template->assign_vars(array(
						'META' => "<meta>")
					);
					// Start add - Protect user account MOD
					if ($row['user_active'] )
					{
						//count bad login
						// block the user for X min
						if (($row['user_badlogin']+1) % $board_config['max_login_error'])
						{
							$sql = "UPDATE " . USERS_TABLE . " SET user_badlogin=user_badlogin+1
								WHERE username = '" . str_replace("\'", "''", $username) . "'";
							if ( !($result = $db->sql_query($sql)) )
							{
								message_die(GENERAL_ERROR, 'Error updating bad login data'.$user_ip, '', __LINE__, __FILE__, $sql);
							}
						} else
						{
							$blocktime = ", user_block_by='$user_ip', user_blocktime='" . (time()+($board_config['block_time']*60)) . "'";
							$sql = "UPDATE " . USERS_TABLE . " SET user_badlogin=user_badlogin+1 $blocktime
								WHERE username = '" . str_replace("\'", "''", $username) . "'";
							if ( !($result = $db->sql_query($sql)) )
							{
								message_die(GENERAL_ERROR, 'Error updating bad login data'.$user_ip, '', __LINE__, __FILE__, $sql);
							}
					
							if ($row['user_email']  && $row['user_blocktime']<time>email_address($row['user_email']); 
								$email_headers = "To: \"".$row['username']."\" <row>use_template('bad_login', $row['user_lang']);
								$emailer->extra_headers($email_headers); 
								$emailer->assign_vars(array( 
									'USER' => '"'.$row['username'].'"',
									'BLOCK_TIME' => $board_config['block_time'],
									'BAD_LOGINS' => $row['user_badlogin']+1, 
									'BLOCK_UNTIL' => create_date ($lang['Time_format'],time()+($board_config['block_time']*60),$row['user_timezone']),
									'SITENAME' => $board_config['sitename'], 
									'BOARD_EMAIL' => $board_config['board_email'])); 
								$emailer->send(); 
								$emailer->reset(); 
							}
						}
					}
					// End add - Protect user account MOD

					$message = $lang['Error_login'] . '<br><br>' . sprintf($lang['Click_return_login'], "<a href="login.$phpEx?redirect=$redirect\">", '</a>') . '<br><br>' .  sprintf($lang['Click_return_index'], '<a href="' . append_sid(">', '</a>');

					message_die(GENERAL_MESSAGE, $message);
				}
				// Start add - Protect user account MOD
				} else
				{
					$message = (($lang['Error_login_tomutch'])?$lang['Error_login_tomutch']:$lang['Error_login']) . '<br><br>' . sprintf($lang['Click_return_login'], '<a href="' . append_sid(">', '</a>') . '<br><br>' .  sprintf($lang['Click_return_index'], '<a href="' . append_sid(">', '</a>');
					message_die(GENERAL_MESSAGE, $message);
				}
				// End add - Protect user account MOD

			}
		}
		else
#
#-----[ REPLACE WITH ]---------------------------------------------
#

代碼: 選擇全部

					// Only store a failed login attempt for an active user - inactive users can't login even with a correct password
					elseif( $row['user_active'] )
					{
						// Start add - Protect user account MOD
						/*
						// Save login tries and last login
						if ($row['user_id'] != ANONYMOUS)
						{
							$sql = 'UPDATE ' . USERS_TABLE . '
								SET user_login_tries = user_login_tries + 1, user_last_login_try = ' . time() . '
								WHERE user_id = ' . $row['user_id'];
							$db->sql_query($sql);
						}
						*/
						// End add - Protect user account MOD
						if ($row['user_id'] != ANONYMOUS)
						{
							$sql = 'UPDATE ' . USERS_TABLE . '
								SET ct_logintry = 1
								WHERE user_id = ' . $row['user_id'];
								
							if( !$db->sql_query($sql))
								{
								  message_die(CRITICAL_ERROR, "Could not perform Database operation", "", __LINE__, __FILE__, $sql);
								}
						}
	
						// Start add - Protect user account MOD
						//count bad login
						// block the user for X min
						if (($row['user_badlogin']+1) % $board_config['max_login_error'])
						{
							$sql = "UPDATE " . USERS_TABLE . " SET user_badlogin=user_badlogin+1
								WHERE username = '" . str_replace("\'", "''", $username) . "'";
							if ( !($result = $db->sql_query($sql)) )
							{
								message_die(GENERAL_ERROR, 'Error updating bad login data'.$user_ip, '', __LINE__, __FILE__, $sql);
							}
						} else
						{
							$blocktime = ", user_block_by='$user_ip', user_blocktime='" . (time()+($board_config['block_time']*60)) . "'";
							$sql = "UPDATE " . USERS_TABLE . " SET user_badlogin=user_badlogin+1 $blocktime
								WHERE username = '" . str_replace("\'", "''", $username) . "'";
							if ( !($result = $db->sql_query($sql)) )
							{
								message_die(GENERAL_ERROR, 'Error updating bad login data'.$user_ip, '', __LINE__, __FILE__, $sql);
							}
					
							if ($row['user_email']  && $row['user_blocktime']<time>email_address($row['user_email']); 
								$email_headers = "To: \"".$row['username']."\" <row>use_template('bad_login', $row['user_lang']);
								$emailer->extra_headers($email_headers); 
								$emailer->assign_vars(array( 
									'USER' => '"'.$row['username'].'"',
									'BLOCK_TIME' => $board_config['block_time'],
									'BAD_LOGINS' => $row['user_badlogin']+1, 
									'BLOCK_UNTIL' => create_date ($lang['Time_format'],time()+($board_config['block_time']*60),$row['user_timezone']),
									'SITENAME' => $board_config['sitename'], 
									'BOARD_EMAIL' => $board_config['board_email'])); 
								$emailer->send(); 
								$emailer->reset(); 
							}
						}
						// End add - Protect user account MOD
					}
				}
				$redirect = ( !empty($_POST['redirect']) ) ? str_replace('&', '&', htmlspecialchars($_POST['redirect'])) : '';
				$redirect = str_replace('?', '&', $redirect);
				
				if (strstr(urldecode($redirect), "\n") || strstr(urldecode($redirect), "\r"))
				{
					message_die(GENERAL_ERROR, 'Tried to redirect to potentially insecure url.');
				}
				
				$template->assign_vars(array(
					'META' => "<meta>")
				);

			// Start add - Protect user account MOD
		/*
				$message = $lang['Error_login'] . '<br><br>' . sprintf($lang['Click_return_login'], "<a href="login.$phpEx?redirect=$redirect\">", '</a>') . '<br><br>' .  sprintf($lang['Click_return_index'], '<a href="' . append_sid(">', '</a>');
		*/
				$message = (($lang['Error_login_tomutch'])?$lang['Error_login_tomutch']:$lang['Error_login']) . '<br><br>' . sprintf($lang['Click_return_login'], '<a href="' . append_sid(">', '</a>') . '<br><br>' .  sprintf($lang['Click_return_index'], '<a href="' . append_sid(">', '</a>');
				message_die(GENERAL_MESSAGE, $message);
				// End add - Protect user account MOD
			}
		}
		else
#
#-----[ OPEN ]---------------------------------------------
#

代碼: 選擇全部

privmsg.php
#
#-----[ FIND ]---------------------------------------------
# Line 1510

代碼: 選擇全部

			$orig_word = $replacement_word = array();
			obtain_word_list($orig_word, $replace_word);
#
#-----[ REPLACE WITH ]---------------------------------------------
#

代碼: 選擇全部

			$orig_word = $replacement_word = array();
			obtain_word_list($orig_word, $replacement_word);
#
#-----[ OPEN ]---------------------------------------------
#

代碼: 選擇全部

profile.php
#
#-----[ FIND ]---------------------------------------------
# Line 60

代碼: 選擇全部

	return ( $hash ) ? md5($rand_str) : substr($rand_str, 8);
#
#-----[ REPLACE WITH ]---------------------------------------------
#

代碼: 選擇全部

	return ( $hash ) ? md5($rand_str) : substr($rand_str, 0, 8);
#
#-----[ OPEN ]---------------------------------------------
#

代碼: 選擇全部

search.php
#
#-----[ FIND ]---------------------------------------------
# Line 216

代碼: 選擇全部

				if( !$only_bluecards && ( strpos($search_author, '%') !== false ) && ( strlen(str_replace('%', '', $search_author)) < 3 ) )
#
#-----[ REPLACE WITH ]---------------------------------------------
#

代碼: 選擇全部

				if( !$only_bluecards && ( strpos($search_author, '%') !== false ) && ( strlen(str_replace('%', '', $search_author)) < $board_config['search_min_chars'] ) )
#
#-----[ FIND ]---------------------------------------------
# Line 288

代碼: 選擇全部

				if (!$only_bluecards && (preg_match('#^[\*%]+$#', trim($split_search[$i])) || preg_match('#^[^\*]{1,2}$#', str_replace(array('*', '%'), '', trim($split_search[$i])))) )
#
#-----[ REPLACE WITH ]---------------------------------------------
#

代碼: 選擇全部

				if (!$only_bluecards && ( strlen(str_replace(array('*', '%'), '', trim($split_search[$i]))) < $board_config['search_min_chars'] ) )
#
#-----[ FIND ]---------------------------------------------
# Line 439

代碼: 選擇全部

			if (preg_match('#^[\*%]+$#', trim($search_author)) || preg_match('#^[^\*]{1,2}$#', str_replace(array('*', '%'), '', trim($search_author))))
			{
				$search_author = '';
			}
			$search_author = str_replace('*', '%', trim(str_replace("\'", "''", $search_author)));
#
#-----[ REPLACE WITH ]---------------------------------------------
#

代碼: 選擇全部

			$search_author = str_replace('*', '%', trim($search_author));

			if( ( strpos($search_author, '%') !== false ) && ( strlen(str_replace('%', '', $search_author)) <board_config>(((?>([^><]+|(?R)))*)\<))#se', "@preg_replace('#\b(" . str_replace('\\', '\\\\', addslashes($highlight_match)) . ")\b#i', '<span><b>\\\\1</b></span>', '\\0')", '>' . $message . '</b>(((?>([^><]+|(?R)))*)\<))#se', "@preg_replace('#\b(" . str_replace('\\', '\\\\', addslashes($highlight_match)) . ")\b#i', '<span><b>\\\\1</b></span>', '\\0')", '>' . $message . '</b>(((?>([^><]+|(?R)))*)\<))#se', "@preg_replace('#\b(" . str_replace('\\', '\\\\', addslashes($highlight_match)) . ")\b#i', '<span><b>\\\\1</b></span>', '\\0')", '>' . $article . '<'), 1, -1));
#
#-----[ REPLACE WITH ]---------------------------------------------
#

代碼: 選擇全部

		// This has been back-ported from 3.0 CVS
		$article = preg_replace('#(?!<.*)(?<!\w)(' . $highlight_match . ')(?!\w|[^<>]*>)#i', '<b>\1</b>', $article);
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM
外掛問題區發問格式就在這裡,請務必一定照著格式來~!
你不照著規則來,就算是也搞不清楚你的問題在哪裡!
新手問問題不是罪惡
罪惡的是自己沒有先做好本分和功課,說話的口氣也不好,再加上態度有好像我們這群人欠你多少似的~~!!
竹貓星球發問規則:
http://phpbb-tw.net/phpbb/viewtopic.php?t=16149
發問比率最高的句子翻譯:
Please ensure both the install/ and contrib/ directories are deleted
請確認install和contrib資料夾已被刪除(奇怪,翻一下英漢字典有這麼困難嗎)
主題已鎖定

回到「phpBB 2 plus 綜合討論」