[phpNuke] bbtonuke 2.0.14 هم رسید

bbtonuke 2.0.14 هم رسید.
برای patch کردن دستی bbtonuke 2.0.13 به bbtonuke 2.0.14 از طریق زیر عمل کنید:

ابتدا یک پشتیبان (backup) از فایلهای مورد نظر بگیرید.

الف - فایل modules/Forums/admin/admin_styles.php را باز کنید

1- در حدود خط 78 کدهای زیر را پیدا کنید:
کد:
 include($phpbb_root_path. "templates/" . $install_to . "/theme_info.cfg");

جای آن را با این عوض کنید:

کد:
include($phpbb_root_path. "templates/" . basename($install_to) . "/theme_info.cfg");

2- در حدود خط 742 کدهای زیر را پیدا کنید:

کد:
$fp = @fopen($phpbb_root_path . 'templates/' . $template_name . '/theme_info.cfg', 'w');

جای آن را با این عوض کنید:

کد:
$fp = @fopen($phpbb_root_path . 'templates/' . basename($template_name) . '/theme_info.cfg', 'w');

ب - فایل modules/Forums/admin/page_header_admin.php را باز کنید

1- در حدود خط 38 کدهای زیر را پیدا کنید:

کد:
$useragent = (isset($_SERVER["HTTP_USER_AGENT"]) ) ? $_SERVER["HTTP_USER_AGENT"] : $HTTP_USER_AGENT;

جای آن را با این عوض کنید:

کد:
$useragent = (isset($HTTP_SERVER_VARS['HTTP_USER_AGENT'])) ? $HTTP_SERVER_VARS['HTTP_USER_AGENT'] : getenv('HTTP_USER_AGENT');

پ - فایل modules/Forums/admin/page_footer_admin.php را باز کنید

1- در حدود خط 36 کدهای زیر را پیدا کنید:

کد:
'PHPBB_VERSION' => '2' . $board_config['version'],

جای آن را با این عوض کنید:

کد:
'PHPBB_VERSION' => ($userdata['user_level'] == ADMIN && $userdata['user_id'] != ANONYMOUS) ? '2' . $board_config['version'] : '',

ت - فایل db/postgres7.php را باز کنید

1- در حدود خط 36 کدهای زیر را پیدا کنید:

کد:
$query = preg_replace("/LIMIT ([0-9]+),([ 0-9]+)/", "LIMIT \\2 OFFSET \\1", $query);

بعد از آن این کدها را اضافه کنید:

کد:
$query = preg_replace('#(.*WHERE.*)(username|user_email|ban_email) = \'(.*)\'#ise', "\"\\1LOWER(\\2) = '\" . strtolower('\\3') . \"'\"", $query);

ث - فایل includes/page_header.php را باز کنید

1- در حدود خط 38 کدهای زیر را پیدا کنید:

کد:
$useragent = (isset($_SERVER["HTTP_USER_AGENT"]) ) ? $_SERVER["HTTP_USER_AGENT"] : $HTTP_USER_AGENT;

جای آن را با این عوض کنید:

کد:
$useragent = (isset($HTTP_SERVER_VARS['HTTP_USER_AGENT'])) ? $HTTP_SERVER_VARS['HTTP_USER_AGENT'] : getenv('HTTP_USER_AGENT');

2- در حدود خط 469 کدهای زیر را پیدا کنید:

کد:
if (!empty($_SERVER['SERVER_SOFTWARE']) && strstr($_SERVER['SERVER_SOFTWARE'], 'Apache/2'))

جای آن را با این عوض کنید:

کد:
if (!empty($HTTP_SERVER_VARS['SERVER_SOFTWARE']) && strstr($HTTP_SERVER_VARS['SERVER_SOFTWARE'], 'Apache/2'))

ج - فایل includes/sessions.php را باز کنید

1- در حدود خط 53 کدهای زیر را پیدا کنید:

کد:
$session_id = ''; 
   }

بعد از آن این را اضافه کنید:

کد:
$page_id = (int) $page_id;

2- در حدود خط 92 کدهای زیر را پیدا کنید:

کد:
 // No match; don't login, set as anonymous user 
               $login = 0; 
               $enable_autologin = 0; 
               $user_id = $userdata['user_id'] = ANONYMOUS;

بعد از آن این را اضافه کنید:

کد:
$sql = 'SELECT * FROM ' . USERS_TABLE . ' WHERE user_id = ' . ANONYMOUS; 
               $result = $db->sql_query($sql); 
               $userdata = $db->sql_fetchrow($result); 
               $db->sql_freeresult($result);

3- در حدود خط 105 کدهای زیر را پیدا کنید:

کد:
[code]// Autologin is not set. Don't login, set as anonymous user 
            $login = 0; 
            $enable_autologin = 0; 
            $user_id = $userdata['user_id'] = ANONYMOUS;
[/code]

بعد از آن این را اضافه کنید:

کد:
            $sql = 'SELECT * FROM ' . USERS_TABLE . ' WHERE user_id = ' . ANONYMOUS; 
            $result = $db->sql_query($sql); 
            $userdata = $db->sql_fetchrow($result); 
            $db->sql_freeresult($result);

4- در حدود خط 244 کدهای زیر را پیدا کنید:

کد:
// 
   // Does a session exist? 
   //

قبل از آن این را اضافه کنید:

کد:
$thispage_id = (int) $thispage_id;

چ - فایل modules/Forums/modcp.php را باز کنید

1- در حدود خط 130 کدهای زیر را پیدا کنید:

کد:
message_die(GENERAL_MESSAGE, 'Topic_post_not_exist'); 
   } 
   $topic_row = $db->sql_fetchrow($result);

بعد از آن این را اضافه کنید:

کد:
if (!$topic_row) 
   { 
      message_die(GENERAL_MESSAGE, 'Topic_post_not_exist'); 
   }

2- در حدود خط 150 کدهای زیر را پیدا کنید:

کد:
message_die(GENERAL_MESSAGE, 'Forum_not_exist'); 
   } 
   $topic_row = $db->sql_fetchrow($result);

بعد از آن این را اضافه کنید:

کد:
if (!$topic_row) 
   { 
      message_die(GENERAL_MESSAGE, 'Forum_not_exist'); 
   }

ح - فایل modules/Private_Messages/index.php را باز کنید

1- در حدود خط 566 کدهای زیر را پیدا کنید:

کد:
if ( !$board_config['allow_html'] ) 
    { 
      if ( $user_sig != '' && $privmsg['privmsgs_enable_sig'] && $userdata['user_allowhtml'] )

جای آن را با این عوض کنید:

کد:
if ( !$board_config['allow_html'] || !$userdata['user_allowhtml']) 
   { 
      if ( $user_sig != '')

2- در حدود خط 1531 کدهای زیر را پیدا کنید:

کد:
if ( !$html_on ) 
      { 
         if ( $user_sig != '' || !$userdata['user_allowhtml'] )

جای آن را با این عوض کنید:

کد:
if ( !$html_on || !$board_config['allow_html'] || !$userdata['user_allowhtml'] ) 
      { 
         if ( $user_sig != '' )

خ - فایل modules/Forums/search.php را باز کنید

1- در حدود خط 200 کدهای زیر را پیدا کنید:

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

قبل از آن این را اضافه کنید:

کد:
            if (preg_match('#^[\*%]+$#', trim($search_author)) || preg_match('#^[^\*]{1,2}$#', str_replace(array('*', '%'), '', trim($search_author)))) 
            { 
               $search_author = ''; 
            }

2- در حدود خط 269 کدهای زیر را پیدا کنید:

کد:
[code]for($i = 0; $i < count($split_search); $i++) 
         {

بعد از آن این را اضافه کنید:

if (preg_match('#^[\*%]+$#', trim($split_search[$i])) || preg_match('#^[^\*]{1,2}$#', str_replace(array('*', '%'), '', trim($split_search[$i]))))
{
$split_search[$i] = '';
continue;
} [/code]

3- در حدود خط 416 کدهای زیر را پیدا کنید:

کد:
// Author name search 
      // 
      if ( $search_author != '' ) 
      {

بعد از آن این را اضافه کنید:

کد:
 if (preg_match('#^[\*%]+$#', trim($search_author)) || preg_match('#^[^\*]{1,2}$#', str_replace(array('*', '%'), '', trim($search_author)))) 
         { 
            $search_author = ''; 
         }

د - فایل modules/Forums/viewtopic.php را باز کنید

1- در حدود خط 1052 کدهای زیر را پیدا کنید:

کد:
if ( !$board_config['allow_html'] ) 
   { 
      if ( $user_sig != '' && $userdata['user_allowhtml'] )

جای آن را با این عوض کنید:

کد:
 if ( !$board_config['allow_html'] || !$userdata['user_allowhtml']) 
   { 
      if ( $user_sig != '' )

2- در حدود خط 1122 کدهای زیر را پیدا کنید:
کد:
 $user_sig = str_replace('\"', '"', substr(preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "preg_replace(\$orig_word, \$replacement_word, '\\0')", '>' . $user_sig . '<'), 1, -1)); 
      } 

      $message = str_replace('\"', '"', substr(preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "preg_replace(\$orig_word, \$replacement_word, '\\0')", '>' . $message . '<'), 1, -1));

جای آن را با این عوض کنید:

کد:
$user_sig = str_replace('\"', '"', substr(@preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "@preg_replace(\$orig_word, \$replacement_word, '\\0')", '>' . $user_sig . '<'), 1, -1)); 
      } 

      $message = str_replace('\"', '"', substr(@preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "@preg_replace(\$orig_word, \$replacement_word, '\\0')", '>' . $message . '<'), 1, -1));

موفق باشید.
 

جدیدترین ارسال ها

بالا