Показать сообщение отдельно
Soniks вне форума      Старый Обновляем форум phpBB 2.0.21 до 2.0.22 #1  
Soniks
Администратор
Регистрация: 16.01.2005
Сообщения: 4,814


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Soniks Посетить домашнюю страницу Soniks Найти все сообщения от Soniks Добавить Soniks в список друзей  
15.02.2007, 19:23

Инструкция по ручному обновлению встроенного форума phpBB в php-nuke с версии 2.0.21 до версии 2.0.22. Инструкция приведена для версий php-nuke ниже 8.x для версий выше следует учесть, что папка includes в которой будут производится изменения находится в директории modules/Forums/

Открываем
modules/Forums/admin/admin_board.php

Находим (строка 55)
PHP код:
 // Attempt to prevent a common mistake with this value,
  // http:// is the protocol and not part of the server name
  
if ($config_name == 'server_name')
  {
   
$new['server_name'] = str_replace('http://'''$new['server_name']);
  } 

Ниже добавляем
PHP код:
 // Attempt to prevent a mistake with this value.
  
if ($config_name == 'avatar_path')
  {
   
$new['avatar_path'] = trim($new['avatar_path']);
   if (
strstr($new['avatar_path'], "\0") || !is_dir($phpbb_root_path $new['avatar_path']) || !is_writable($phpbb_root_path $new['avatar_path']))
   {
    
$new['avatar_path'] = $default_config['avatar_path'];
   }
  } 

Открывем
modules/Forums/groupcp.php

Находим (строка 153)
PHP код:
 $start = ( isset($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0

Ниже добавляем
PHP код:
 $start = ($start 0) ? $start

Находим (строка 426)
PHP код:
 AND NOT EXISTS (
       
SELECT aa.group_id 
       FROM 
" . AUTH_ACCESS_TABLE . " aa 
       WHERE aa
.group_id g.group_id  
      


Ниже находим
PHP код:
 )"; 

Заменяем на
PHP код:
 )
    
ORDER BY aa.auth_mod DESC"; 

Находим (строка 435)
PHP код:
 case 'oracle':
   
$sql "SELECT g.group_moderator, g.group_type, aa.auth_mod 
    FROM " 
GROUPS_TABLE " g, " AUTH_ACCESS_TABLE " aa 
    WHERE g.group_id = 
$group_id 

Ниже находим
PHP код:
 AND aa.group_id (+) = g.group_id"; 

Заменяем на
PHP код:
 AND aa.group_id (+) = g.group_id
    ORDER BY aa
.auth_mod DESC"; 

Находим (строка 443)
PHP код:
 default:
   
$sql "SELECT g.group_moderator, g.group_type, aa.auth_mod 
    FROM ( " 
GROUPS_TABLE " g 
    LEFT JOIN " 
AUTH_ACCESS_TABLE " aa ON aa.group_id = g.group_id ) 

Ниже находим
PHP код:
 WHERE g.group_id '$group_id'"; 

Заменяем на
PHP код:
 WHERE g.group_id $group_id
    ORDER BY aa
.auth_mod DESC"; 

Открывем
includes/functions.php

Находим (строка 920)
PHP код:
 if (strstr(urldecode($url), "\n") || strstr(urldecode($url), "\r")) 

Заменяем на
PHP код:
 if (strstr(urldecode($url), "\n") || strstr(urldecode($url), "\r") || strstr(urldecode($url), ';url')) 

Открывем
includes/usercp_email.php

Находим (строка 94)
PHP код:
 if ( $result $db->sql_query($sql) )
{
 
$row $db->sql_fetchrow($result); 

Заменяем на
PHP код:
 if ( $result $db->sql_query($sql) )
{
 if ( 
$row $db->sql_fetchrow($result) )
 { 

Находим (строка 247)
PHP код:
 else
{
 
message_die(GENERAL_MESSAGE$lang['User_not_exist']);


Заменяем на
PHP код:
 else
 {
  
message_die(GENERAL_MESSAGE$lang['User_not_exist']);
 }
}
else
{
 
message_die(GENERAL_ERROR'Could not select user data'''__LINE____FILE__$sql);


Открывем
includes/usercp_register.php

Находим (строка 168)
PHP код:
 $notifypm = ( isset($HTTP_POST_VARS['notifypm']) ) ? ( ($HTTP_POST_VARS['notifypm']) ? TRUE ) : TRUE;
 
$popup_pm = ( isset($HTTP_POST_VARS['popup_pm']) ) ? ( ($HTTP_POST_VARS['popup_pm']) ? TRUE ) : TRUE

Ниже добавляем
PHP код:
 $sid = (isset($HTTP_POST_VARS['sid'])) ? $HTTP_POST_VARS['sid'] : 0

Находим (строка 276)
PHP код:
 if ( isset($HTTP_POST_VARS['submit']) )
{
        include(
"includes/usercp_avatar.php"); 

Ниже добавляем
PHP код:
 // session id check
 
if ($sid == '' || $sid != $userdata['session_id'])
 {
  
$error true;
  
$error_msg .= ( ( isset($error_msg) ) ? '<br />' '' ) . $lang['Session_invalid'];
 } 

Находим (строка 325)
PHP код:
 message_die(GENERAL_ERROR'Could not obtain confirmation code'__LINE____FILE__$sql); 

Заменяем на
PHP код:
 message_die(GENERAL_ERROR'Could not obtain confirmation code'''__LINE____FILE__$sql); 

Находим (строка 342)
PHP код:
 message_die(GENERAL_ERROR'Could not delete confirmation code'__LINE____FILE__$sql); 

Заменяем на
PHP код:
 message_die(GENERAL_ERROR'Could not delete confirmation code'''__LINE____FILE__$sql); 

Находим (строка 983)
PHP код:
 $s_hidden_fields '<input type="hidden" name="mode" value="' $mode '" /><input type="hidden" name="agreed" value="true" /><input type="hidden" name="coppa" value="' $coppa '" />'

Ниже добавляем
PHP код:
 $s_hidden_fields .= '<input type="hidden" name="sid" value="' $userdata['session_id'] . '" />'

Открываем
modules/Forums/language/lang_english/lang_main.php

Находим (строка 1018)
PHP код:
 $lang['Please_remove_install_contrib'] = 'Please ensure both the install/ and contrib/ directories are deleted'

Ниже добавляем
PHP код:
 $lang['Session_invalid'] = 'Invalid Session. Please resubmit the form.'

Открываем
modules/Forums/language/lang_russian/lang_main.php

Находим (строка 996)
PHP код:
 $lang['Admin_reauthenticate'] = 'Для того, что бы зайти в панель администратора вы должны перезалогинится.'

Ниже добавляем
PHP код:
 $lang['Session_invalid'] = 'Недопустимая сессия. Пожалуйста, отправьте форму еще раз.'

Открываем
modules/Forums/login.php

Находим (строка 132 и 151)
PHP код:
 if (strstr(urldecode($redirect), "\n") || strstr(urldecode($redirect), "\r")) 

Заменяем на
PHP код:
 if (strstr(urldecode($redirect), "\n") || strstr(urldecode($redirect), "\r") || strstr(urldecode($redirect), ';url')) 

Открываем
modules/Members_List/index.php

Находим (строка 40)
PHP код:
 $start = ( isset($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0

Ниже добавляем
PHP код:
 $start = ($start 0) ? $start

Открываем
modules/Forums/modcp.php

Находим (строка 77)
PHP код:
 $start = ( isset($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0

Ниже добавляем
PHP код:
 $start = ($start 0) ? $start

Открываем
modules/Forums/posting.php

Находим (строка 55)
PHP код:
 $confirm = isset($HTTP_POST_VARS['confirm']) ? true false

Ниже добавляем
PHP код:
 $sid = (isset($HTTP_POST_VARS['sid'])) ? $HTTP_POST_VARS['sid'] : 0

Находим (строка 236)
PHP код:
 if ( $result $db->sql_query($sql) )
{
 
$post_info $db->sql_fetchrow($result); 

Заменяем на
PHP код:
 if ( ($result $db->sql_query($sql)) && ($post_info $db->sql_fetchrow($result)) )


Находим (строка 444)
PHP код:
 $s_hidden_fields '<input type="hidden" name="' POST_POST_URL '" value="' $post_id '" />';
 
$s_hidden_fields .= ( $delete || $mode == "delete" ) ? '<input type="hidden" name="mode" value="delete" />' '<input type="hidden" name="mode" value="poll_delete" />'

Ниже добавляем
PHP код:
 $s_hidden_fields .= '<input type="hidden" name="sid" value="' $userdata['session_id'] . '" />'

Находим (строка 553)
PHP код:
 // Submit post/vote (newtopic, edit, reply, etc.)
 //
 
$return_message '';
 
$return_meta ''

Ниже добавляем
PHP код:
 // session id check
 
if ($sid == '' || $sid != $userdata['session_id'])
 {
  
$error_msg .= (!empty($error_msg)) ? '<br />' $lang['Session_invalid'] : $lang['Session_invalid'];
 } 

Находим (строка 583)
PHP код:
 break;
  case 
'delete':
  case 
'poll_delete'

Ниже добавляем
PHP код:
 if ($error_msg != '')
   {
    
message_die(GENERAL_MESSAGE$error_msg);
   } 

Находим (строка 948)
PHP код:
 $topic_type_toggle $lang['Post_topic_as'] . ': <input type="radio" name="topictype" value="' POST_NORMAL .'"' . ( ( $post_data['topic_type'] == POST_NORMAL || $topic_type == POST_NORMAL ) ? ' checked="checked"' '' ) . ' /> ' $lang['Post_Normal'] . '&nbsp;&nbsp;' $topic_type_toggle;
 }
}
$hidden_form_fields '<input type="hidden" name="mode" value="' $mode '" />'

Ниже добавляем
PHP код:
 $hidden_form_fields .= '<input type="hidden" name="sid" value="' $userdata['session_id'] . '" />'
 
"Если бы вам удалось надавать под зад человеку, виноватому в большинстве ваших неприятностей - вы бы неделю не смогли сидеть".