|
|
![](flycatimages/misc/snbg.gif) |
![](flycatimages/misc/tl.gif) |
|
![](flycatimages/misc/tr.gif) |
|
|
|
Обновляем форум phpBB 2.0.17 до 2.0.18
| ![](flycatimages/misc/pcon.gif) |
#1 | ![](flycatimages/misc/postl.gif) |
|
31.10.2005, 15:20
Инструкция по обновлению форума BBtoNuke (встроенный в нюку phpbb) с версии 2.0.17 до 2.0.18
Часть 1
Открываем modules/Forums/admin/admin_board.php
Находим (110):
PHP код:
$confirm_yes = ($new['enable_confirm']) ? 'checked="checked"' : ''; $confirm_no = (!$new['enable_confirm']) ? 'checked="checked"' : '';
Ниже добавляем:
PHP код:
$allow_autologin_yes = ($new['allow_autologin']) ? 'checked="checked"' : ''; $allow_autologin_no = (!$new['allow_autologin']) ? 'checked="checked"' : '';
Находим (175):
PHP код:
"L_ADMIN" => $lang['Acc_Admin'], "L_VISUAL_CONFIRM" => $lang['Visual_confirm'], "L_VISUAL_CONFIRM_EXPLAIN" => $lang['Visual_confirm_explain'],
Ниже добавляем:
PHP код:
"L_ALLOW_AUTOLOGIN" => $lang['Allow_autologin'], "L_ALLOW_AUTOLOGIN_EXPLAIN" => $lang['Allow_autologin_explain'], "L_AUTOLOGIN_TIME" => $lang['Autologin_time'], "L_AUTOLOGIN_TIME_EXPLAIN" => $lang['Autologin_time_explain'],
Находим (264):
PHP код:
"ACTIVATION_ADMIN_CHECKED" => $activation_admin, "CONFIRM_ENABLE" => $confirm_yes, "CONFIRM_DISABLE" => $confirm_no,
Ниже находим строку:
PHP код:
"ACTIVATION_NONE_CHECKED" => $activation_none,
Заменяем ее на:
PHP код:
'ALLOW_AUTOLOGIN_YES' => $allow_autologin_yes, 'ALLOW_AUTOLOGIN_NO' => $allow_autologin_no, 'AUTOLOGIN_TIME' => (int) $new['max_autologin_time'],
Открываем modules/Forums/admin/admin_disallow.php
Находим (48):
PHP код:
message_die(MESSAGE, $lang['Fields_empty']);
Заменяем на:
PHP код:
message_die(GENERAL_MESSAGE, $lang['Fields_empty']);
Открываем modules/Forums/admin/admin_smilies.php
Находим 2 раза (410,454):
PHP код:
message_die(MESSAGE, $lang['Fields_empty']);
Заменяем на:
PHP код:
message_die(GENERAL_MESSAGE, $lang['Fields_empty']);
Находин (446):
PHP код:
$smile_code = ( isset($HTTP_POST_VARS['smile_code']) ) ? $HTTP_POST_VARS['smile_code'] : $HTTP_GET_VARS['smile_code']; $smile_url = ( isset($HTTP_POST_VARS['smile_url']) ) ? $HTTP_POST_VARS['smile_url'] : $HTTP_GET_VARS['smile_url'];
Ниже добавляем:
PHP код:
$smile_url = phpbb_ltrim(basename($smile_url), "'");
Открываем modules/Forums/admin/admin_styles.php
Находим (584):
PHP код:
"L_SIMPLE_NAME" => $lang['Simple_name'], "L_VALUE" => $lang['Value'], "L_STYLESHEET" => $lang['Stylesheet'],
Ниже добавляем:
PHP код:
"L_STYLESHEET_EXPLAIN" => $lang['Stylesheet_explain'],
Открываем modules/Forums/admin/admin_ug_auth.php
Находим (253):
PHP код:
$sql = "SELECT * FROM " . FORUMS_TABLE . " f ORDER BY forum_order";
Заменяем на:
PHP код:
$sql = 'SELECT f.* FROM ' . FORUMS_TABLE . ' f, ' . CATEGORIES_TABLE . ' c WHERE f.cat_id = c.cat_id ORDER BY c.cat_order, f.forum_order';
Находим (868):
PHP код:
if( count($name) ) { $t_usergroup_list = $t_pending_list = ''; for($i = 0; $i < count($ug_info); $i++) { $ug = ( $mode == 'user' ) ? 'group&' . POST_GROUPS_URL : 'user&' . POST_USERS_URL;
Заменяем на:
PHP код:
$t_usergroup_list = $t_pending_list = ''; if( count($name) ) { for($i = 0; $i < count($ug_info); $i++) { $ug = ( $mode == 'user' ) ? 'group&' . POST_GROUPS_URL : 'user&' . POST_USERS_URL;
Находим (885):
PHP код:
else { $t_usergroup_list = $lang['None']; }
Заменяем на:
PHP код:
$t_usergroup_list = ($t_usergroup_list == '') ? $lang['None'] : $t_usergroup_list; $t_pending_list = ($t_pending_list == '') ? $lang['None'] : $t_pending_list;
Открываем modules/Forums/admin/admin_user_ban.php
Находим (158):
PHP код:
if (preg_match('#^(([a-z0-9&.-_+])|(\*))+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*?[a-z]+$#is', trim($email_list_temp[$i])))
Заменяем на:
PHP код:
if (preg_match('/^(([a-z0-9&\'\.\-_\+])|(\*))+@(([a-z0-9\-])|(\*))+\.([a-z0-9\-]+\.)*?[a-z]+$/is', trim($email_list_temp[$i])))
Открываем modules/Forums/admin/admin_users.php
Находим (75):
PHP код:
if( $HTTP_POST_VARS['deleteuser'] )
Заменяем на:
PHP код:
if( $HTTP_POST_VARS['deleteuser'] && ( $userdata['user_id'] != $user_id ) )
Находим (260):
PHP код:
$user_avatar_local = ( isset( $HTTP_POST_VARS['avatarselect'] ) && !empty($HTTP_POST_VARS['submitavatar'] ) && $board_config['allow_avatar_local'] ) ? $HTTP_POST_VARS['avatarselect'] : ( ( isset( $HTTP_POST_VARS['avatarlocal'] ) ) ? $HTTP_POST_VARS['avatarlocal'] : '' );
Ниже добавляем:
PHP код:
$user_avatar_category = ( isset($HTTP_POST_VARS['avatarcatname']) && $board_config['allow_avatar_local'] ) ? htmlspecialchars($HTTP_POST_VARS['avatarcatname']) : '' ;
Находим (300):
PHP код:
$user_avatar = $user_avatar_local;
Заменяем на:
PHP код:
$user_avatar = $user_avatar_category . '/' . $user_avatar_local;
Находим (652):
PHP код:
$avatar_sql = ", user_avatar = '" . str_replace("\'", "''", $user_avatar_local) . "', user_avatar_type = " . USER_AVATAR_GALLERY;
Заменяем на:
PHP код:
$avatar_sql = ", user_avatar = '" . str_replace("\'", "''", phpbb_ltrim(basename($user_avatar_category), "'") . '/' . phpbb_ltrim(basename($user_avatar_local), "'")) . "', user_avatar_type = " . USER_AVATAR_GALLERY;
Находим (829):
PHP код:
$avatar_images[$file][$avatar_row_count][$avatar_col_count] = $file . "/" . $sub_file;
Заменяем на:
PHP код:
$avatar_images[$file][$avatar_row_count][$avatar_col_count] = $sub_file;
Находим (874):
PHP код:
"AVATAR_IMAGE" => "../" . $board_config['avatar_gallery_path'] . "/" . $avatar_images[$category][$i][$j])
Заменяем на:
PHP код:
"AVATAR_IMAGE" => "../" . $board_config['avatar_gallery_path'] . '/' . $category . '/' . $avatar_images[$category][$i][$j])
Находим (885):
PHP код:
$s_hidden_fields = '<input type="hidden" name="mode" value="edit" /><input type="hidden" name="agreed" value="true" /><input type="hidden" name="coppa" value="' . $coppa . '" />';
Заменяем на:
PHP код:
$s_hidden_fields = '<input type="hidden" name="mode" value="edit" /><input type="hidden" name="agreed" value="true" /><input type="hidden" name="coppa" value="' . $coppa . '" /><input type="hidden" name="avatarcatname" value="' . $category . '" />';
Находим (941):
PHP код:
$s_hidden_fields .= '<input type="hidden" name="avatarlocal" value="' . $user_avatar_local . '" />';
Заменяем на:
PHP код:
$s_hidden_fields .= '<input type="hidden" name="avatarlocal" value="' . $user_avatar_local . '" /><input type="hidden" name="avatarcatname" value="' . $user_avatar_category . '" />';
|
|
|
|
|
|
"Если бы вам удалось надавать под зад человеку, виноватому в большинстве ваших неприятностей - вы бы неделю не смогли сидеть". |
|
|
|
|
|
|
![](flycatimages/misc/pbbg.gif) |
|
![](flycatimages/misc/gl.gif) |
|
![](flycatimages/misc/gr.gif) |
|
02.11.2005, 12:26
Часть 2
Открываем modules/Forums/admin/index.php
Находим (570):
PHP код:
if ($fsock = @fsockopen('www.phpbb.com', 80, $errno, $errstr))
Заменяем на:
PHP код:
if ($fsock = @fsockopen('www.phpbb.com', 80, $errno, $errstr, 10))
Находим (605):
PHP код:
$version_info .= '<br />' . sprintf($lang['Latest_version_info'], $latest_version) . sprintf($lang['Current_version_info'], '2' . $board_config['version']) . '</p>';
Заменяем на:
PHP код:
$version_info .= '<br />' . sprintf($lang['Latest_version_info'], $latest_version) . ' ' . sprintf($lang['Current_version_info'], '2' . $board_config['version']) . '</p>';
Открываем modules/Forums/admin/page_footer_admin.php
Находим (28):
PHP код:
// // Show the overall footer. //
Выше добавляем:
PHP код:
global $do_gzip_compress;
Находим (39):
PHP код:
'TRANSLATION_INFO' => $lang['TRANSLATION_INFO'])
Заменяем на:
PHP код:
'TRANSLATION_INFO' => (isset($lang['TRANSLATION_INFO'])) ? $lang['TRANSLATION_INFO'] : ((isset($lang['TRANSLATION'])) ? $lang['TRANSLATION'] : ''))
Открываем modules/Forums/common.php
Находим (31):
PHP код:
// The following code (unsetting globals) was contributed by Matt Kavanagh // PHP5 with register_long_arrays off? if (!isset($HTTP_POST_VARS) && isset($_POST))
Заменяем на:
PHP код:
// The following code (unsetting globals) // Thanks to Matt Kavanagh and Stefan Esser for providing feedback as well as patch files // PHP5 with register_long_arrays off? if (@phpversion() >= '5.0.0' && (!@ini_get('register_long_arrays') || @ini_get('register_long_arrays') == '0' || strtolower(@ini_get('register_long_arrays')) == 'off'))
Находим (49):
PHP код:
if (@phpversion() < '4.0.0') { // PHP3 path; in PHP3, globals are _always_ registered // We 'flip' the array of variables to test like this so that // we can validate later with isset($test[$var]) (no in_array()) $test = array('HTTP_GET_VARS' => NULL, 'HTTP_POST_VARS' => NULL, 'HTTP_COOKIE_VARS' => NULL, 'HTTP_SERVER_VARS' => NULL, 'HTTP_ENV_VARS' => NULL, 'HTTP_POST_FILES' => NULL, 'phpEx' => NULL, 'phpbb_root_path' => NULL); // Loop through each input array @reset($test); while (list($input,) = @each($test)) { while (list($var,) = @each($$input)) { // Validate the variable to be unset if (!isset($test[$var]) && $var != 'test' && $var != 'input') { unset($$var); } } } } else if (@ini_get('register_globals') == '1' || strtolower(@ini_get('register_globals')) == 'on')
Заменяем на:
PHP код:
// Protect against GLOBALS tricks if (isset($HTTP_POST_VARS['GLOBALS']) || isset($HTTP_POST_FILES['GLOBALS']) || isset($HTTP_GET_VARS['GLOBALS']) || isset($HTTP_COOKIE_VARS['GLOBALS'])) { die("Hacking attempt"); } // Protect against HTTP_SESSION_VARS tricks if (isset($HTTP_SESSION_VARS) && !is_array($HTTP_SESSION_VARS)) { die("Hacking attempt"); } if (@ini_get('register_globals') == '1' || strtolower(@ini_get('register_globals')) == 'on')
Находим (69):
PHP код:
if (!isset($HTTP_SESSION_VARS))
Заменяем на:
PHP код:
if (!isset($HTTP_SESSION_VARS) || !is_array($HTTP_SESSION_VARS))
Находим (193):
PHP код:
include("includes/functions.php"); include("db/db.php"); }
Ниже добавляем:
PHP код:
// We do not need this any longer, unset for safety purposes unset($dbpasswd);
Открываем db/mysql.php
Находим (262):
PHP код:
$result = $this->rowset[$query_id][$field];
Заменяем на:
PHP код:
$result = $this->rowset[$query_id][0][$field];
Открываем db/mysql4.php
Находим (274):
PHP код:
$result = $this->rowset[$query_id][$field];
Заменяем на:
PHP код:
$result = $this->rowset[$query_id][0][$field];
Открываем modules/Forums/groupcp.php
Находим (107):
PHP код:
$temp_url = append_sid("search.$phpEx?search_author=" . urlencode($username) . "&showresults=posts"); $search_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_search'] . '" alt="' . $lang['Search_user_posts'] . '" title="' . $lang['Search_user_posts'] . '" border="0" /></a>'; $search = '<a href="' . $temp_url . '">' . $lang['Search_user_posts'] . '</a>';
Заменяем на:
PHP код:
$temp_url = append_sid("search.$phpEx?search_author=" . urlencode($row['username']) . "&showresults=posts"); $search_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_search'] . '" alt="' . sprintf($lang['Search_user_posts'], $row['username']) . '" title="' . sprintf($lang['Search_user_posts'], $row['username']) . '" border="0" /></a>'; $search = '<a href="' . $temp_url . '">' . sprintf($lang['Search_user_posts'], $row['username']) . '</a>';
Находим (1228):
PHP код:
// // Load and process templates //
Ниже добавляем:
PHP код:
$page_title = $lang['Group_Control_Panel'];
Открываем includes/bbcode.php
Находим (433):
PHP код:
$match = array("pos" => $curr_pos, "tag" => $which_start_tag, "index" => $start_tag_index); bbcode_array_push($stack, $match);
Заменяем на:
PHP код:
$match = array("pos" => $curr_pos, "tag" => $which_start_tag, "index" => $start_tag_index); array_push($stack, $match);
Находим (455):
PHP код:
// We need to do 2 replacements now. $match = bbcode_array_pop($stack);
Заменяем на:
PHP код:
// We need to do 2 replacements now. $match = array_pop($stack);
Найти (522):
PHP код:
$match = bbcode_array_pop($stack); $curr_pos = $match['pos'];
Заменить на:
PHP код:
$match = array_pop($stack); $curr_pos = $match['pos'];
Находим (763):
PHP код:
$orig[] = "/(?<=.\W|\W.|^\W)" . phpbb_preg_quote($smilies[$i]['code'], "/") . "(?=.\W|\W.|\W$)/";
Заменяем на:
PHP код:
$orig[] = "/(?<=.\W|\W.|^\W)" . preg_quote($smilies[$i]['code'], "/") . "(?=.\W|\W.|\W$)/";
Открываем includes/constants.php
Находим (138):
PHP код:
define('SESSIONS_TABLE', $prefix.'_bbsessions');
Ниже добавляем:
PHP код:
define('SESSIONS_KEYS_TABLE', $prefix.'_bbsessions_keys');
Открываем includes/emailer.php
Находим 2 раза (209,219):
PHP код:
$drop_header .= '[\r\n]*?' . phpbb_preg_quote($match[1], '#');
Заменяем на:
PHP код:
$drop_header .= '[\r\n]*?' . preg_quote($match[1], '#');
Находим (305):
PHP код:
$str = preg_replace('#' . phpbb_preg_quote($spacer, '#') . '$#', '', $str);
Заменяем на:
PHP код:
$str = preg_replace('#' . preg_quote($spacer, '#') . '$#', '', $str);
Открываем includes/functions.php
Находим (86):
PHP код:
// added at phpBB 2.0.12 to fix a bug in PHP 4.3.10 (only supporting charlist in php >= 4.1.0)
Выше добавляем:
PHP код:
/** * This function is a wrapper for ltrim, as charlist is only supported in php >= 4.1.0 * Added in phpBB 2.0.18 */ function phpbb_ltrim($str, $charlist = false) { if ($charlist === false) { return ltrim($str); } $php_version = explode('.', PHP_VERSION); // php version < 4.1.0 if ((int) $php_version[0] < 4 || ((int) $php_version[0] == 4 && (int) $php_version[1] < 1)) { while ($str{0} == $charlist) { $str = substr($str, 1); } } else { $str = ltrim($str, $charlist); } return $str; }
Находим (594):
PHP код:
$orig_word[] = '#\b(' . str_replace('\*', '\w*?', phpbb_preg_quote($row['word'], '#')) . ')\b#i';
Заменяем на:
PHP код:
$orig_word[] = '#\b(' . str_replace('\*', '\w*?', preg_quote($row['word'], '#')) . ')\b#i';
Последний раз редактировалось Soniks, 02.11.2005 в 12:29.
|
|
|
|
|
|
"Если бы вам удалось надавать под зад человеку, виноватому в большинстве ваших неприятностей - вы бы неделю не смогли сидеть". |
|
|
|
|
|
|
![](flycatimages/misc/pbbg.gif) |
|
![](flycatimages/misc/gl.gif) |
|
![](flycatimages/misc/gr.gif) |
|
02.11.2005, 22:31
Часть 3
Открываем includes/functions_admin.php
Находим (76):
PHP код:
$sql = "SELECT forum_id, forum_name FROM " . FORUMS_TABLE . " ORDER BY cat_id, forum_order";
Заменяем на:
PHP код:
$sql = 'SELECT f.forum_id, f.forum_name FROM ' . CATEGORIES_TABLE . ' c, ' . FORUMS_TABLE . ' f WHERE f.cat_id = c.cat_id ORDER BY c.cat_order, f.forum_order';
Находим (187):
PHP код:
$sql = ( $row['total_posts'] ) ? "UPDATE " . TOPICS_TABLE . " SET topic_replies = " . ( $row['total_posts'] - 1 ) . ", topic_first_post_id = " . $row['first_post'] . ", topic_last_post_id = " . $row['last_post'] . " WHERE topic_id = '$id'" : "DELETE FROM " . TOPICS_TABLE . " WHERE topic_id = '$id'"; if ( !$db->sql_query($sql) ) { message_die(GENERAL_ERROR, 'Could not update topic', '', __LINE__, __FILE__, $sql); }
Заменяем на:
PHP код:
if ($row['total_posts']) { // Correct the details of this topic $sql = 'UPDATE ' . TOPICS_TABLE . ' SET topic_replies = ' . ($row['total_posts'] - 1) . ', topic_first_post_id = ' . $row['first_post'] . ', topic_last_post_id = ' . $row['last_post'] . " WHERE topic_id = $id"; if (!$db->sql_query($sql)) { message_die(GENERAL_ERROR, 'Could not update topic', '', __LINE__, __FILE__, $sql); } } else { // There are no replies to this topic // Check if it is a move stub $sql = 'SELECT topic_moved_id FROM ' . TOPICS_TABLE . " WHERE topic_id = $id"; if (!($result = $db->sql_query($sql))) { message_die(GENERAL_ERROR, 'Could not get topic ID', '', __LINE__, __FILE__, $sql); } if ($row = $db->sql_fetchrow($result)) { if (!$row['topic_moved_id']) { $sql = 'DELETE FROM ' . TOPICS_TABLE . " WHERE topic_id = $id"; if (!$db->sql_query($sql)) { message_die(GENERAL_ERROR, 'Could not remove topic', '', __LINE__, __FILE__, $sql); } } } $db->sql_freeresult($result); }
Открываем includes/functions_post.php
Находим (216):
PHP код:
function submit_post($mode, &$post_data, &$message, &$meta, &$forum_id, &$topic_id, &$post_id, &$poll_id, &$topic_type, &$bbcode_on, &$html_on, &$smilies_on, &$attach_sig, &$bbcode_uid, &$post_username, &$post_subject, &$post_message, &$poll_title, &$poll_options, &$poll_length)
Заменяем на:
PHP код:
function submit_post($mode, &$post_data, &$message, &$meta, &$forum_id, &$topic_id, &$post_id, &$poll_id, &$topic_type, &$bbcode_on, &$html_on, &$smilies_on, &$attach_sig, &$bbcode_uid, $post_username, $post_subject, $post_message, $poll_title, &$poll_options, &$poll_length)
Находим (579):
PHP код:
if ($mode == 'delete') { $delete_sql = (!$post_data['first_post'] && !$post_data['last_post']) ? " AND user_id = " . $userdata['user_id'] : ''; $sql = "DELETE FROM " . TOPICS_WATCH_TABLE . " WHERE topic_id = '$topic_id'" . $delete_sql; if (!$db->sql_query($sql)) { message_die(GENERAL_ERROR, 'Could not change topic notify data', '', __LINE__, __FILE__, $sql); } } else
Заменяем на:
Находим (760):
PHP код:
$page_title = $lang['Emoticons'] . " - $topic_title";
Заменяем на:
PHP код:
$page_title = $lang['Emoticons'];
Открываем includes/functions_search.php
Находим (95):
PHP код:
function split_words(&$entry, $mode = 'post')
Заменяем на:
PHP код:
function split_words($entry, $mode = 'post')
Открываем includes/functions_validate.php
Находим (41):
PHP код:
$sql = "SELECT username FROM " . USERS_TABLE . " WHERE LOWER(username) = '" . strtolower($username) . "'"; if ($result = $db->sql_query($sql)) { if ($row = $db->sql_fetchrow($result))
Заменяем на:
PHP код:
$sql = "SELECT username FROM " . USERS_TABLE . " WHERE LOWER(username) = '" . strtolower($username) . "'"; if ($result = $db->sql_query($sql)) { while ($row = $db->sql_fetchrow($result))
Находим (78):
PHP код:
if (preg_match("#\b(" . str_replace("\*", ".*?", phpbb_preg_quote($row['disallow_username'], '#')) . ")\b#i", $username))
Заменяем на:
PHP код:
if (preg_match("#\b(" . str_replace("\*", ".*?", preg_quote($row['disallow_username'], '#')) . ")\b#i", $username))
Находим (97):
PHP код:
if (preg_match("#\b(" . str_replace("\*", ".*?", phpbb_preg_quote($row['word'], '#')) . ")\b#i", $username))
Заменяем на:
PHP код:
if (preg_match("#\b(" . str_replace("\*", ".*?", preg_quote($row['word'], '#')) . ")\b#i", $username))
Открываем includes/page_header.php
Находим (472):
PHP код:
$template->assign_block_vars('switch_user_logged_out', array());
Ниже добавляем:
PHP код:
// // Allow autologin? // if (!isset($board_config['allow_autologin']) || $board_config['allow_autologin'] ) { $template->assign_block_vars('switch_allow_autologin', array()); $template->assign_block_vars('switch_user_logged_out.switch_a llow_autologin', array()); }
Открываем includes/page_tail.php
Находим (28):
PHP код:
// // Show the overall footer. //
Выше добавляем:
PHP код:
global $do_gzip_compress;
Ноходим (40):
PHP код:
'TRANSLATION_INFO' => ( isset($lang['TRANSLATION_INFO']) ) ? $lang['TRANSLATION_INFO'] : '',
Заменяем на:
PHP код:
'TRANSLATION_INFO' => (isset($lang['TRANSLATION_INFO'])) ? $lang['TRANSLATION_INFO'] : ((isset($lang['TRANSLATION'])) ? $lang['TRANSLATION'] : ''),
Часть 4
Открываем includes/sessions.php
Находим (62):
PHP код:
$last_visit = 0; $current_time = time(); $expiry_time = $current_time - $board_config['session_length']; // // Try and pull the last time stored in a cookie, if it exists // $sql = "SELECT * FROM " . USERS_TABLE . " WHERE user_id = '$user_id'"; if ( !($result = $db->sql_query($sql)) ) { message_die(CRITICAL_ERROR, 'Could not obtain lastvisit data from user table', '', __LINE__, __FILE__, $sql); } $userdata = $db->sql_fetchrow($result); if ( $user_id != ANONYMOUS ) { $auto_login_key = $userdata['user_password']; if ( $auto_create ) { if ( isset($sessiondata['autologinid']) && $userdata['user_active'] ) { // We have to login automagically if( $sessiondata['autologinid'] === $auto_login_key ) { // autologinid matches password $login = 1; $enable_autologin = 1; } else { // 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); } } else { // Autologin is not set. 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); } } else { $login = 1; } } else { $login = 0; $enable_autologin = 0; } // // Initial ban check against user id, IP and email address //
Заменяем на:
PHP код:
$last_visit = 0; $current_time = time(); // // Are auto-logins allowed? // If allow_autologin is not set or is true then they are // (same behaviour as old 2.0.x session code) // if (isset($board_config['allow_autologin']) && !$board_config['allow_autologin']) { $enable_autologin = $sessiondata['autologinid'] = false; } // // First off attempt to join with the autologin value if we have one // If not, just use the user_id value // $userdata = array(); if ($user_id != ANONYMOUS) { if (isset($sessiondata['autologinid']) && (string) $sessiondata['autologinid'] != '' && $user_id) { $sql = 'SELECT u.* FROM ' . USERS_TABLE . ' u, ' . SESSIONS_KEYS_TABLE . ' k WHERE u.user_id = ' . (int) $user_id . " AND u.user_active = 1 AND k.user_id = u.user_id AND k.key_id = '" . md5($sessiondata['autologinid']) . "'"; if (!($result = $db->sql_query($sql))) { message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql); } $userdata = $db->sql_fetchrow($result); $db->sql_freeresult($result); $enable_autologin = $login = 1; } else if (!$auto_create) { $sessiondata['autologinid'] = ''; $sessiondata['userid'] = $user_id; $sql = 'SELECT * FROM ' . USERS_TABLE . ' WHERE user_id = ' . (int) $user_id . ' AND user_active = 1'; if (!($result = $db->sql_query($sql))) { message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql); } $userdata = $db->sql_fetchrow($result); $db->sql_freeresult($result); $login = 1; } } // // At this point either $userdata should be populated or // one of the below is true // * Key didn't match one in the DB // * User does not exist // * User is inactive // if (!sizeof($userdata) || !is_array($userdata) || !$userdata) { $sessiondata['autologinid'] = ''; $sessiondata['userid'] = $user_id = ANONYMOUS; $enable_autologin = $login = 0; $sql = 'SELECT * FROM ' . USERS_TABLE . ' WHERE user_id = ' . (int) $user_id; if (!($result = $db->sql_query($sql))) { message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql); } $userdata = $db->sql_fetchrow($result); $db->sql_freeresult($result); } // // Initial ban check against user id, IP and email address //
Находим (228):
PHP код:
{// ( $userdata['user_session_time'] > $expiry_time && $auto_create ) ? $userdata['user_lastvisit'] : (
Заменяем на:
Находим (245):
PHP код:
$sessiondata['autologinid'] = (!$admin) ? (( $enable_autologin && $sessionmethod == SESSION_METHOD_COOKIE ) ? $auto_login_key : '') : $sessiondata['autologinid'];
Заменяем на:
PHP код:
// // Regenerate the auto-login key // if ($enable_autologin) { list($sec, $usec) = explode(' ', microtime()); mt_srand(hexdec(substr($session_id, 0, 8)) + (float) $sec + ((float) $usec * 1000000)); $auto_login_key = uniqid(mt_rand(), true); if (isset($sessiondata['autologinid']) && (string) $sessiondata['autologinid'] != '') { $sql = 'UPDATE ' . SESSIONS_KEYS_TABLE . " SET last_ip = '$user_ip', key_id = '" . md5($auto_login_key) . "', last_login = $current_time WHERE key_id = '" . md5($sessiondata['autologinid']) . "'"; } else { $sql = 'INSERT INTO ' . SESSIONS_KEYS_TABLE . "(key_id, user_id, last_ip, last_login) VALUES ('" . md5($auto_login_key) . "', $user_id, '$user_ip', $current_time)"; } if ( !$db->sql_query($sql) ) { message_die(CRITICAL_ERROR, 'Error updating session key', '', __LINE__, __FILE__, $sql); } $sessiondata['autologinid'] = $auto_login_key; unset($auto_login_key); } else { $sessiondata['autologinid'] = ''; } // $sessiondata['autologinid'] = (!$admin) ? (( $enable_autologin && $sessionmethod == SESSION_METHOD_COOKIE ) ? $auto_login_key : '') : $sessiondata['autologinid'];
Найдите (291):
PHP код:
$userdata['session_admin'] = $admin;
Ниже добавьте:
PHP код:
$userdata['session_key'] = $sessiondata['autologinid'];
Найдите (404):
PHP код:
// // Delete expired sessions // $expiry_time = $current_time - $board_config['session_length']; $sql = "DELETE FROM " . SESSIONS_TABLE . " WHERE session_time < '$expiry_time' AND session_id <> '$session_id'"; if ( !$db->sql_query($sql) ) { message_die(CRITICAL_ERROR, 'Error clearing sessions table', '', __LINE__, __FILE__, $sql); }
Замените на:
PHP код:
session_clean($userdata['session_id']);
Находим (432):
PHP код:
// // session_end closes out a session // deleting the corresponding entry // in the sessions table // function session_end($session_id, $user_id) { global $db, $lang, $board_config, $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;
Заменяем на:
PHP код:
/** * Terminates the specified session * It will delete the entry in the sessions table for this session, * remove the corresponding auto-login key and reset the cookies */ function session_end($session_id, $user_id) { global $db, $lang, $board_config, $userdata, $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;
Находим и удаляем (448):
PHP код:
// // Pull cookiedata or grab the URI propagated sid // if ( isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) ) { $session_id = isset( $HTTP_COOKIE_VARS[$cookiename . '_sid'] ) ? $HTTP_COOKIE_VARS[$cookiename . '_sid'] : ''; $sessionmethod = SESSION_METHOD_COOKIE; } else { $session_id = ( isset($HTTP_GET_VARS['sid']) ) ? $HTTP_GET_VARS['sid'] : ''; $sessionmethod = SESSION_METHOD_GET; }
Находим (456):
PHP код:
$sql = "DELETE FROM " . SESSIONS_TABLE . "
Заменяем на:
PHP код:
$sql = 'DELETE FROM ' . SESSIONS_TABLE . "
Находим (461):
PHP код:
message_die(CRITICAL_ERROR, 'Error removing user session', '', __LINE__, __FILE__, $sql); }
Ниже добавляем:
PHP код:
// // Remove this auto-login entry (if applicable) // if ( isset($userdata['session_key']) && $userdata['session_key'] != '' ) { $autologin_key = md5($userdata['session_key']); $sql = 'DELETE FROM ' . SESSIONS_KEYS_TABLE . ' WHERE user_id = ' . (int) $user_id . " AND key_id = '$autologin_key'"; if ( !$db->sql_query($sql) ) { message_die(CRITICAL_ERROR, 'Error removing auto-login key', '', __LINE__, __FILE__, $sql); } } // // We expect that message_die will be called after this function, // but just in case it isn't, reset $userdata to the details for a guest // $sql = 'SELECT * FROM ' . USERS_TABLE . ' WHERE user_id = ' . ANONYMOUS; if ( !($result = $db->sql_query($sql)) ) { message_die(CRITICAL_ERROR, 'Error obtaining user details', '', __LINE__, __FILE__, $sql); } if ( !($userdata = $db->sql_fetchrow($result)) ) { message_die(CRITICAL_ERROR, 'Error obtaining user details', '', __LINE__, __FILE__, $sql); } $db->sql_freeresult($result);
Находим (503):
PHP код:
// // Append $SID to a url. Borrowed from phplib and modified. This is an
Выше добавляем:
PHP код:
/** * Removes expired sessions and auto-login keys from the database */ function session_clean($session_id) { global $board_config, $db; // // Delete expired sessions // $sql = 'DELETE FROM ' . SESSIONS_TABLE . ' WHERE session_time < ' . (time() - (int) $board_config['session_length']) . " AND session_id <> '$session_id'"; if ( !$db->sql_query($sql) ) { message_die(CRITICAL_ERROR, 'Error clearing sessions table', '', __LINE__, __FILE__, $sql); } // // Delete expired auto-login keys // If max_autologin_time is not set then keys will never be deleted // (same behaviour as old 2.0.x session code) // if (!empty($board_config['max_autologin_time']) && $board_config['max_autologin_time'] > 0) { $sql = 'DELETE FROM ' . SESSIONS_KEYS_TABLE . ' WHERE last_login < ' . (time() - (86400 * (int) $board_config['max_autologin_time'])); $db->sql_query($sql); } return true; }
Находим (600):
PHP код:
if ( !empty($SID) && !preg_match('#sid=#', $url) ) { $url .= ( ( strpos($url, '?') != false ) ? ( ( $non_html_amp ) ? '&' : '&' ) : '?' ) . $SID; }
Заменяем на:
PHP код:
if ( !empty($SID) && !preg_match('#sid=#', $url) ) { $url .= ( ( strpos($url, '?') !== false ) ? ( ( $non_html_amp ) ? '&' : '&' ) : '?' ) . $SID; }
|
|
|
|
|
|
"Если бы вам удалось надавать под зад человеку, виноватому в большинстве ваших неприятностей - вы бы неделю не смогли сидеть". |
|
|
|
|
|
|
![](flycatimages/misc/pbbg.gif) |
|
![](flycatimages/misc/gl.gif) |
|
![](flycatimages/misc/gr.gif) |
|
04.11.2005, 00:38
Часть 5
Открываем includes/smtp.php
Находим (31):
PHP код:
while (substr($server_response, 3, 1) != ' ')
Выше добавьте:
Открываем includes/usercp_activate.php
Находим (50):
PHP код:
if (intval($board_config['require_activation']) == USER_ACTIVATION_ADMIN && $userdata['user_level'] != ADMIN) { message_die(GENERAL_MESSAGE, $lang['Not_Authorised']); }
Замените на:
PHP код:
if (intval($board_config['require_activation']) == USER_ACTIVATION_ADMIN && $row['user_newpasswd'] == '') { if (!$userdata['session_logged_in']) { redirect(append_sid('login.' . $phpEx . '?redirect=profile.' . $phpEx . '&mode=activate&' . POST_USERS_URL . '=' . $row['user_id'] . '&act_key=' . trim($HTTP_GET_VARS['act_key']))); } else if ($userdata['user_level'] != ADMIN) { message_die(GENERAL_MESSAGE, $lang['Not_Authorised']); } }
Открываем includes/usercp_avatar.php
Находим (71):
PHP код:
function user_avatar_gallery($mode, &$error, &$error_msg, $avatar_filename) { global $board_config; $avatar_filename = str_replace(array('../', '..\\', './', '.\\'), '', $avatar_filename); if ($avatar_filename{0} == '/' || $avatar_filename{0} == "\\") { return ''; } if ( file_exists(@phpbb_realpath($board_config['avatar_gallery_path'] . '/' . $avatar_filename)) && ($mode == 'editprofile') ) { $return = ", user_avatar = '" . str_replace("\'", "''", $avatar_filename) . "', user_avatar_type = " . USER_AVATAR_GALLERY; } else
Заменяем на:
PHP код:
function user_avatar_gallery($mode, &$error, &$error_msg, $avatar_filename, $avatar_category) { global $board_config; $avatar_filename = phpbb_ltrim(basename($avatar_filename), "'"); $avatar_category = phpbb_ltrim(basename($avatar_category), "'"); if(!preg_match('/(\.gif$|\.png$|\.jpg|\.jpeg)$/is', $avatar_filename)) { return ''; } if ($avatar_filename == "" || $avatar_category == "") { return ''; } if ( file_exists(@phpbb_realpath($board_config['avatar_gallery_path'] . '/' . $avatar_category . '/' . $avatar_filename)) && ($mode == 'editprofile') ) { $return = ", user_avatar = '" . str_replace("\'", "''", $avatar_category . '/' . $avatar_filename) . "', user_avatar_type = " . USER_AVATAR_GALLERY; } else
Находим (123):
PHP код:
$ini_val = ( @phpversion() >= '4.0.0' ) ? 'ini_get' : 'get_cfg_var';
Ниже добавляем:
PHP код:
$width = $height = 0; $type = '';
Находим (185):
PHP код:
list($width, $height) = @getimagesize($tmp_filename);
Заменяем на:
PHP код:
list($width, $height, $type) = @getimagesize($tmp_filename);
Находим (211):
PHP код:
list($width, $height) = @getimagesize($avatar_filename);
Заменяем на:
PHP код:
list($width, $height, $type) = @getimagesize($avatar_filename);
Находим (219):
PHP код:
if ( $width > 0 && $height > 0 && $width <= $board_config['avatar_max_width'] && $height <= $board_config['avatar_max_height'] )
Выше добавляем:
PHP код:
switch ($type) { // GIF case 1: if ($imgtype != '.gif') { @unlink($tmp_filename); message_die(GENERAL_ERROR, 'Unable to upload file', '', __LINE__, __FILE__); } break; // JPG, JPC, JP2, JPX, JB2 case 2: case 9: case 10: case 11: case 12: if ($imgtype != '.jpg' && $imgtype != '.jpeg') { @unlink($tmp_filename); message_die(GENERAL_ERROR, 'Unable to upload file', '', __LINE__, __FILE__); } break; // PNG case 3: if ($imgtype != '.png') { @unlink($tmp_filename); message_die(GENERAL_ERROR, 'Unable to upload file', '', __LINE__, __FILE__); } break; default: @unlink($tmp_filename); message_die(GENERAL_ERROR, 'Unable to upload file', '', __LINE__, __FILE__); }
Находим (261):
PHP код:
if ( file_exists(@phpbb_realpath('./' . $board_config['avatar_path'] . '/' . $current_avatar)) ) { @unlink('./' . $board_config['avatar_path'] . '/' . $current_avatar); }
Заменяем на:
PHP код:
user_avatar_delete($current_type, $current_avatar);
Находим (327):
PHP код:
$avatar_images[$file][$avatar_row_count][$avatar_col_count] = $file . '/' . $sub_file;
Заменяем на:
PHP код:
$avatar_images[$file][$avatar_row_count][$avatar_col_count] = $sub_file;
Находим (373):
PHP код:
"AVATAR_IMAGE" => $board_config['avatar_gallery_path'] . '/' . $avatar_images[$category][$i][$j],
Заменяем на:
PHP код:
"AVATAR_IMAGE" => $board_config['avatar_gallery_path'] . '/' . $category . '/' . $avatar_images[$category][$i][$j],
Находим (385):
PHP код:
$s_hidden_vars = '<input type="hidden" name="sid" value="' . $session_id . '" /><input type="hidden" name="agreed" value="true" />';
Заменяем на:
PHP код:
$s_hidden_vars = '<input type="hidden" name="sid" value="' . $session_id . '" /><input type="hidden" name="agreed" value="true" /><input type="hidden" name="avatarcatname" value="' . $category . '" />';
Последний раз редактировалось Soniks, 04.11.2005 в 17:33.
|
|
|
|
|
|
"Если бы вам удалось надавать под зад человеку, виноватому в большинстве ваших неприятностей - вы бы неделю не смогли сидеть". |
|
|
|
|
|
|
![](flycatimages/misc/pbbg.gif) |
|
![](flycatimages/misc/gl.gif) |
|
![](flycatimages/misc/gr.gif) |
|
04.11.2005, 17:33
Открываем includes/usercp_register.php
Находим (76):
Ниже добавляем:
Находим (157):
PHP код:
$attachsig = ( isset($HTTP_POST_VARS['attachsig']) ) ? ( (intval($HTTP_POST_VARS['attachsig'])) ? TRUE : 0 ) : 0;
Заменяем на:
PHP код:
$attachsig = ( isset($HTTP_POST_VARS['attachsig']) ) ? ( (intval($HTTP_POST_VARS['attachsig'])) ? TRUE : 0 ) : $userdata['user_attachsig'];
Находим (195):
PHP код:
$user_avatar_local = ( isset($HTTP_POST_VARS['avatarselect']) && !empty($HTTP_POST_VARS['submitavatar']) && $board_config['allow_avatar_local'] ) ? htmlspecialchars($HTTP_POST_VARS['avatarselect']) : ( ( isset($HTTP_POST_VARS['avatarlocal']) ) ? htmlspecialchars($HTTP_POST_VARS['avatarlocal']) : '' );
Ниже добавляем:
PHP код:
$user_avatar_category = ( isset($HTTP_POST_VARS['avatarcatname']) && $board_config['allow_avatar_local'] ) ? htmlspecialchars($HTTP_POST_VARS['avatarcatname']) : '' ;
Находим (204):
PHP код:
$user_avatar = ( empty($user_avatar_loc) && $mode == 'editprofile' ) ? $userdata['user_avatar'] : ''; $user_avatar_type = ( empty($user_avatar_loc) && $mode == 'editprofile' ) ? $userdata['user_avatar_type'] : '';
Заменяем на:
PHP код:
$user_avatar = ( empty($user_avatar_local) && $mode == 'editprofile' ) ? $userdata['user_avatar'] : ''; $user_avatar_type = ( empty($user_avatar_local) && $mode == 'editprofile' ) ? $userdata['user_avatar_type'] : '';
Находим (224):
PHP код:
$signature = stripslashes($signature); $user_lang = stripslashes($user_lang); $user_dateformat = stripslashes($user_dateformat); if ( !isset($HTTP_POST_VARS['cancelavatar'])) { $user_avatar = $user_avatar_local; $user_avatar_type = USER_AVATAR_GALLERY; }
Заменяем на:
PHP код:
$signature = htmlspecialchars(stripslashes($signature)); $user_lang = stripslashes($user_lang); $user_dateformat = stripslashes($user_dateformat); if ( !isset($HTTP_POST_VARS['cancelavatar'])) { $user_avatar = $user_avatar_category . '/' . $user_avatar_local; $user_avatar_type = USER_AVATAR_GALLERY; }
Находим (441):
PHP код:
if ( $signature_bbcode_uid == '' )
Заменяешь на:
PHP код:
if ( !isset($signature_bbcode_uid) || $signature_bbcode_uid == '' )
Находим (478):
PHP код:
if ( @file_exists(@phpbb_realpath('./' . $board_config['avatar_path'] . '/' . $userdata['user_avatar'])) && $userdata['user_avatar_type'] == USER_AVATAR_UPLOAD ) { @unlink(@phpbb_realpath('./' . $board_config['avatar_path'] . '/' . $userdata['user_avatar'])); }
Заменяем на:
PHP код:
user_avatar_delete($userdata['user_avatar_type'], $userdata['user_avatar']);
Находим (483):
PHP код:
if ( @file_exists(@phpbb_realpath('./' . $board_config['avatar_path'] . '/' . $userdata['user_avatar'])) && $userdata['user_avatar_type'] == USER_AVATAR_UPLOAD ) { @unlink(@phpbb_realpath('./' . $board_config['avatar_path'] . '/' . $userdata['user_avatar'])); }
Заменяем на:
PHP код:
user_avatar_delete($userdata['user_avatar_type'], $userdata['user_avatar']);
[/PHP]
Находим (536):
PHP код:
$emailer->from($board_config['board_email']); $emailer->replyto($board_config['board_email']); $emailer->use_template('user_activate', stripslashes($user_lang)); $emailer->email_address($email); $emailer->set_subject($lang['Reactivate']); $emailer->assign_vars(array( 'SITENAME' => $board_config['sitename'], 'USERNAME' => preg_replace($unhtml_specialchars_match, $unhtml_specialchars_replace, substr(str_replace("\'", "'", $username), 0, 25)), 'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']) : '', 'U_ACTIVATE' => $server_url . '&mode=activate&' . POST_USERS_URL . '=' . $user_id . '&act_key=' . $user_actkey) ); $emailer->send(); $emailer->reset();
Заменяем на:
PHP код:
if ( $board_config['require_activation'] != USER_ACTIVATION_ADMIN ) { $emailer->from($board_config['board_email']); $emailer->replyto($board_config['board_email']); $emailer->use_template('user_activate', stripslashes($user_lang)); $emailer->email_address($email); $emailer->set_subject($lang['Reactivate']); $emailer->assign_vars(array( 'SITENAME' => $board_config['sitename'], 'USERNAME' => preg_replace($unhtml_specialchars_match, $unhtml_specialchars_replace, substr(str_replace("\'", "'", $username), 0, 25)), 'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']) : '', 'U_ACTIVATE' => $server_url . '?mode=activate&' . POST_USERS_URL . '=' . $user_id . '&act_key=' . $user_actkey) ); $emailer->send(); $emailer->reset(); } else if ( $board_config['require_activation'] == USER_ACTIVATION_ADMIN ) { $sql = 'SELECT user_email, user_lang FROM ' . USERS_TABLE . ' WHERE user_level = ' . ADMIN; if ( !($result = $db->sql_query($sql)) ) { message_die(GENERAL_ERROR, 'Could not select Administrators', '', __LINE__, __FILE__, $sql); } while ($row = $db->sql_fetchrow($result)) { $emailer->from($board_config['board_email']); $emailer->replyto($board_config['board_email']); $emailer->email_address(trim($row['user_email'])); $emailer->use_template("admin_activate", $row['user_lang']); $emailer->set_subject($lang['Reactivate']); $emailer->assign_vars(array( 'USERNAME' => preg_replace($unhtml_specialchars_match, $unhtml_specialchars_replace, substr(str_replace("\'", "'", $username), 0, 25)), 'EMAIL_SIG' => str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']), 'U_ACTIVATE' => $server_url . '?mode=activate&' . POST_USERS_URL . '=' . $user_id . '&act_key=' . $user_actkey) ); $emailer->send(); $emailer->reset(); } $db->sql_freeresult($result); }
Находим (874):
PHP код:
display_avatar_gallery($mode, $avatar_category, $user_id, $email, $current_email, $coppa, $username, $email, &$new_password, &$cur_password, $password_confirm, $icq, $aim, $msn, $yim, $website, $location, $occupation, $interests, $signature, $viewemail, $notifypm, $popup_pm, $notifyreply, $attachsig, $allowhtml, $allowbbcode, $allowsmilies, $allowviewonline, $user_style, $user_lang, $user_timezone, $user_dateformat, $userdata['session_id']);
Заменяем на:
PHP код:
display_avatar_gallery($mode, $avatar_category, $user_id, $email, $current_email, $coppa, $username, $email, $new_password, $cur_password, $password_confirm, $icq, $aim, $msn, $yim, $website, $location, $occupation, $interests, $signature, $viewemail, $notifypm, $popup_pm, $notifyreply, $attachsig, $allowhtml, $allowbbcode, $allowsmilies, $allowviewonline, $user_style, $user_lang, $user_timezone, $user_dateformat, $userdata['session_id']);
Находим (885):
PHP код:
if ( !isset($user_template) ) { $selected_template = $board_config['system_template']; }
Заменяем на:
PHP код:
if ( !isset($user_style) ) { $user_style = $board_config['default_style']; }
Находим (920):
PHP код:
$s_hidden_fields .= '<input type="hidden" name="avatarlocal" value="' . $user_avatar_local . '" />';
Заменяем на:
PHP код:
$s_hidden_fields .= '<input type="hidden" name="avatarlocal" value="' . $user_avatar_local . '" /><input type="hidden" name="avatarcatname" value="' . $user_avatar_category . '" />';
|
|
|
|
|
|
"Если бы вам удалось надавать под зад человеку, виноватому в большинстве ваших неприятностей - вы бы неделю не смогли сидеть". |
|
|
|
|
|
|
![](flycatimages/misc/pbbg.gif) |
|
![](flycatimages/misc/gl.gif) |
|
![](flycatimages/misc/gr.gif) |
|
06.11.2005, 02:43
Часть 6
Открываем includes/usercp_sendpasswd.php
Находим (53):
PHP код:
$key_len = ( $str_len > 6 ) ? $key_len : 6;
Заменяем на:
PHP код:
$key_len = ($key_len > 6) ? $key_len : 6;
Открываем includes/usercp_viewprofile.php
Находим (177):
PHP код:
$search_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_search'] . '" alt="' . $lang['Search_user_posts'] . '" title="' . sprintf($lang['Search_user_posts'], $profiledata['username']) . '" border="0" /></a>';
Заменяем на:
PHP код:
$search_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_search'] . '" alt="' . sprintf($lang['Search_user_posts'], $profiledata['username']) . '" title="' . sprintf($lang['Search_user_posts'], $profiledata['username']) . '" border="0" /></a>';
Открываем modules/Forums/index.php
Находим (194):
PHP код:
// Obtain a list of topic ids which contain // posts made since user last visited // if ( $userdata['session_logged_in'] ) {
Ниже добавьте:
PHP код:
// 60 days limit if ($userdata['user_lastvisit'] < (time() - 5184000)) { $userdata['user_lastvisit'] = time() - 5184000; }
Открываем modules/Forums/language/lang_english/email/topic_notify.tpl
Находим (4):
Код HTML:
Hello {USERNAME},
Замените на:
Открываем modules/Forums/language/lang_russian/email/topic_notify.tpl
Находим (4):
Код HTML:
Здравствуйте, {USERNAME}!
Заменяем на:
Открываем modules/Forums/language/lang_english/lang_admin.php
Находим (338):
Выше добавьте:
PHP код:
// Autologin Keys - added 2.0.18 $lang['Allow_autologin'] = 'Allow automatic logins'; $lang['Allow_autologin_explain'] = 'Determines whether users are allowed to select to be automatically logged in when visiting the forum'; $lang['Autologin_time'] = 'Automatic login key expiry'; $lang['Autologin_time_explain'] = 'How long a autologin key is valid for in days if the user does not visit the board. Set to zero to disable expiry.';
Найдите (630):
PHP код:
$lang['Stylesheet'] = 'CSS Stylesheet';
Ниже добавьте:
PHP код:
$lang['Stylesheet_explain'] = 'Filename for CSS stylesheet to use for this theme.';
Открываем modules/Forums/language/lang_russian/lang_admin.php
Находим (327):
Выше добавьте:
PHP код:
// Autologin Keys - added 2.0.18 $lang['Allow_autologin'] = 'Разрешить автоматическую авторизацию'; $lang['Allow_autologin_explain'] = 'Разрешено ли пользователям выбирать, автоматическую авторизацию, посещая форум'; $lang['Autologin_time'] = 'Истечение Автоматической авторизации'; $lang['Autologin_time_explain'] = 'Сколько дней не посещения форума пользователем, система будет хранить информацию о нем. Наберите нолю, чтобы отключить истечение срока.';
Найдите (615):
PHP код:
$lang['Stylesheet'] = 'Файл стилей CSS';
Ниже добавляем:
PHP код:
$lang['Stylesheet_explain'] = 'Имя файла для таблицы стилей CSS, используемый для этой темы.';
Открываем modules/Forums/language/lang_english/lang_main.php
Находим и удаляем (277):
PHP код:
$lang['Send_email'] = 'Send e-mail to user';
Находим и удаляем (369):
PHP код:
$lang['Delete_post'] = 'Delete this post';
Находим и удаляем (528):
PHP код:
$lang['Email'] = 'E-mail';
Находим и удаляем (530):
PHP код:
$lang['Search_user_posts'] = 'Search for posts by this user';
Находим и удаляем (603):
PHP код:
$lang['Too_many_registers'] = 'You have made too many registration attempts. Please try again later.';
Открываем modules/Forums/language/lang_russian/lang_main.php
Находим и удаляем (265):
PHP код:
$lang['Send_email'] = 'Отправить e-mail '; // Followed by username of poster
Находим и удаляем (357):
PHP код:
$lang['Delete_post'] = 'Удалить сообщение';
Находим и удаляем (516):
PHP код:
$lang['Email'] = 'E-mail';
Находим и удаляем (518):
PHP код:
$lang['Search_user_posts'] = 'Искать все собщения этого пользователя';
|
|
|
|
|
|
"Если бы вам удалось надавать под зад человеку, виноватому в большинстве ваших неприятностей - вы бы неделю не смогли сидеть". |
|
|
|
|
|
|
![](flycatimages/misc/pbbg.gif) |
|
![](flycatimages/misc/gl.gif) |
|
![](flycatimages/misc/gr.gif) |
|
07.11.2005, 02:21
Часть 7
Открываем modules/Forums/login.php
Находим (138):
PHP код:
else if( ( isset($HTTP_GET_VARS['logout']) || isset($HTTP_POST_VARS['logout']) ) && $userdata['session_logged_in'] ) {
Ниже добавьте:
PHP код:
// session id check if ($sid == '' || $sid != $userdata['session_id']) { message_die(GENERAL_ERROR, 'Invalid_session'); }
Находим (182):
PHP код:
if( isset($HTTP_POST_VARS['redirect']) || isset($HTTP_GET_VARS['redirect']) )
Выше добавляем:
Находим (193):
PHP код:
if(count($forward_match) > 1) {
Ниже находим и удаляем:
Находим и удаляем (215):
PHP код:
else { $forward_page = ''; }
Находим (223):
PHP код:
make_jumpbox('viewforum.'.$phpEx, $forum_id);
Заменяем на:
PHP код:
make_jumpbox('viewforum.'.$phpEx);
Открываем modules/Forums/modcp.php
Находим (232):
PHP код:
message_die(MESSAGE, sprintf($lang['Sorry_auth_delete'], $is_auth['auth_delete_type']));
Заменяем на:
PHP код:
message_die(GENERAL_MESSAGE, sprintf($lang['Sorry_auth_delete'], $is_auth['auth_delete_type']));
Находим (1085):
PHP код:
'U_SEARCHPOSTS' => append_sid("search.$phpEx?search_author=" . urlencode($username) . "&showresults=topics"))
Заменяем на:
PHP код:
'U_SEARCHPOSTS' => append_sid("search.$phpEx?search_author=" . (($id == ANONYMOUS) ? 'Anonymous' : urlencode($username)) . "&showresults=topics"))
Открываем modules/Forums/posting.php
Находим (70):
PHP код:
$refresh = $preview || $poll_add || $poll_edit || $poll_delete;
Ниже добавляем:
PHP код:
$orig_word = $replacement_word = array();
Находим (76):
PHP код:
$topic_type = ( !empty($HTTP_POST_VARS['topictype']) ) ? intval($HTTP_POST_VARS['topictype']) : POST_NORMAL;
Ниже добавляем:
PHP код:
$topic_type = ( in_array($topic_type, array(POST_NORMAL, POST_STICKY, POST_ANNOUNCE)) ) ? $topic_type : POST_NORMAL;
Находим (205):
PHP код:
$sql = "SELECT f.*, t.topic_status, t.topic_title
Заменяем на:
PHP код:
$sql = "SELECT f.*, t.topic_status, t.topic_title, t.topic_type
Находим (220):
PHP код:
$select_sql = ( !$submit ) ? ", t.topic_title, p.enable_bbcode, p.enable_html, p.enable_smilies, p.enable_sig, p.post_username, pt.post_subject, pt.post_text, pt.bbcode_uid, u.username, u.user_id, u.user_sig" : '';
Заменяем на:
PHP код:
$select_sql = (!$submit) ? ', t.topic_title, p.enable_bbcode, p.enable_html, p.enable_smilies, p.enable_sig, p.post_username, pt.post_subject, pt.post_text, pt.bbcode_uid, u.username, u.user_id, u.user_sig, u.user_sig_bbcode_uid' : '';
Находим (329):
PHP код:
$post_data['first_post'] = ( $mode == 'newtopic' ) ? true : 0; $post_data['last_post'] = false; $post_data['has_poll'] = false; $post_data['edit_poll'] = false; }
Выше добавляем:
PHP код:
if ( $mode == 'newtopic' ) { $post_data['topic_type'] = POST_NORMAL; }
Ниже добавляем (найденного):
PHP код:
if ( $mode == 'poll_delete' && !isset($poll_id) ) { message_die(GENERAL_MESSAGE, $lang['No_such_post']); }
Находим (660):
PHP код:
$user_sig = ( $post_info['user_sig'] != '' && $board_config['allow_sig'] ) ? $post_info['user_sig'] : '';
Ниже добавляем:
PHP код:
$userdata['user_sig_bbcode_uid'] = $post_info['user_sig_bbcode_uid'];
Открываем modules/Private_Messages/index.php
Находим (344):
PHP код:
if ( $sent_info['sent_items'] >= $board_config['max_sentbox_privmsgs'] )
Заменяем на:
PHP код:
if ($board_config['max_sentbox_privmsgs'] && $sent_info['sent_items'] >= $board_config['max_sentbox_privmsgs'])
Находим (588):
PHP код:
$search_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_search'] . '" alt="' . $lang['Search_user_posts'] . '" title="' . $lang['Search_user_posts'] . '" border="0" /></a>'; $search = '<a href="' . $temp_url . '">' . $lang['Search_user_posts'] . '</a>';
Заменяем на:
PHP код:
$search_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_search'] . '" alt="' . sprintf($lang['Search_user_posts'], $username_from) . '" title="' . sprintf($lang['Search_user_posts'], $username_from) . '" border="0" /></a>'; $search = '<a href="' . $temp_url . '">' . sprintf($lang['Search_user_posts'], $username_from) . '</a>';
Находим (966):
PHP код:
if ( $saved_info['savebox_items'] >= $board_config['max_savebox_privmsgs'] )
Заменяем на:
PHP код:
if ($board_config['max_savebox_privmsgs'] && $saved_info['savebox_items'] >= $board_config['max_savebox_privmsgs'] )
Находим (1196):
Выше добавляем:
PHP код:
if ($submit && $mode == 'edit') { $sql = 'SELECT privmsgs_from_userid FROM ' . PRIVMSGS_TABLE . ' WHERE privmsgs_id = ' . (int) $privmsg_id . ' AND privmsgs_from_userid = ' . $userdata['user_id']; if (!($result = $db->sql_query($sql))) { message_die(GENERAL_ERROR, "Could not obtain message details", "", __LINE__, __FILE__, $sql); } if (!($row = $db->sql_fetchrow($result))) { message_die(GENERAL_MESSAGE, $lang['No_such_post']); } $db->sql_freeresult($result); unset($row); }
Находим (1231):
PHP код:
$to_userdata = $db->sql_fetchrow($result);
Заменяем на:
PHP код:
if (!($to_userdata = $db->sql_fetchrow($result))) { $error = TRUE; $error_msg = $lang['No_such_user']; }
Найходим (1304):
PHP код:
if ( $inbox_info['inbox_items'] >= $board_config['max_inbox_privmsgs'] )
Заменяем на:
PHP код:
if ($board_config['max_inbox_privmsgs'] && $inbox_info['inbox_items'] >= $board_config['max_inbox_privmsgs'])
Находим (1402):
PHP код:
'USERNAME' => $to_username,
Заменяем на:
PHP код:
'USERNAME' => stripslashes($to_username),
Находим (1508):
Заменяем на:
PHP код:
else if ( $mode == 'edit' )
Находим (1593):
PHP код:
$privmsg_subject = $privmsg_message = '';
Заменяем на:
PHP код:
$privmsg_subject = $privmsg_message = $to_username = '';
Находим и удаляем (1888):
PHP код:
'S_NAMES_SELECT' => $user_names_select,
Открываем modules/Forums/search.php
Находим (271):
PHP код:
$split_search = ( !strstr($multibyte_charset, $lang['ENCODING']) ) ? split_words(clean_words('search', stripslashes($search_keywords), $stopword_array, $synonym_array), 'search') : split(' ', $search_keywords);
Заменяем на:
PHP код:
$stripped_keywords = stripslashes($search_keywords); $split_search = ( !strstr($multibyte_charset, $lang['ENCODING']) ) ? split_words(clean_words('search', $stripped_keywords, $stopword_array, $synonym_array), 'search') : split(' ', $search_keywords); unset($stripped_keywords);
Находим (1318):
PHP код:
ORDER BY c.cat_id, f.forum_order";
Заменяем на:
PHP код:
ORDER BY c.cat_order, f.forum_order";
|
|
|
|
|
|
"Если бы вам удалось надавать под зад человеку, виноватому в большинстве ваших неприятностей - вы бы неделю не смогли сидеть". |
|
|
|
|
|
|
![](flycatimages/misc/pbbg.gif) |
|
![](flycatimages/misc/gl.gif) |
|
![](flycatimages/misc/gr.gif) |
|
07.11.2005, 03:24
Часть 8
Открываем modules/Forums/templates/subSilver/admin/board_config_body.tpl
Находим (40):
Код HTML:
<td class="row2"><input type="radio" name="enable_confirm" value="1" {CONFIRM_ENABLE} />{L_YES} <input type="radio" name="enable_confirm" value="0" {CONFIRM_DISABLE} />{L_NO}</td>
</tr>
<tr>
Ниже добавляем:
Код HTML:
<td class="row1">{L_ALLOW_AUTOLOGIN}<br /><span class="gensmall">{L_ALLOW_AUTOLOGIN_EXPLAIN}</span></td>
<td class="row2"><input type="radio" name="allow_autologin" value="1" {ALLOW_AUTOLOGIN_YES} />{L_YES} <input type="radio" name="allow_autologin" value="0" {ALLOW_AUTOLOGIN_NO} />{L_NO}</td>
</tr>
<tr>
<td class="row1">{L_AUTOLOGIN_TIME} <br /><span class="gensmall">{L_AUTOLOGIN_TIME_EXPLAIN}</span></td>
<td class="row2"><input class="post" type="text" size="3" maxlength="4" name="max_autologin_time" value="{AUTOLOGIN_TIME}" /></td>
</tr>
<tr>
Открываем modules/Forums/templates/subSilver/admin/forum_admin_body.tpl
Находим (16):
Код HTML:
<td class="catRight" align="center" valign="middle"><span class="gen"> </span></td>
Заменяем на:
Код HTML:
<td class="catRight" align="center" valign="middle"><span class="gen"> </span></td>
Открываем modules/Forums/templates/subSilver/admin/index_frameset.tpl
Находим (1):
Заменяем на:
Код HTML:
<html dir="{S_CONTENT_DIRECTION}">
Открываем modules/Forums/templates/subSilver/admin/page_header.tpl
Находим (2):
Заменяем на:
Код HTML:
<html dir="{S_CONTENT_DIRECTION}">
Открываем modules/Forums/templates/subSilver/admin/styles_addnew_body.tpl
Находим (19):
Код HTML:
</table></form>
Заменяем на:
Открываем modules/Forums/templates/subSilver/admin/styles_edit_body.tpl
Находим (24):
Код HTML:
<td class="row1">{L_STYLESHEET}:<br /><span class="gensmall">Filename for CSS stylesheet to use for this theme.</span></td>
Заменяем на:
Код HTML:
<td class="row1">{L_STYLESHEET}:<br /><span class="gensmall">{L_STYLESHEET_EXPLAIN}</span></td>
Открываем modules/Forums/templates/subSilver/admin/styles_list_body.tpl
Находим (21):
Код HTML:
</table></form>
Заменяем на:
Открываем modules/Forums/templates/subSilver/admin/user_edit_body.tpl
Находим (239):
Код HTML:
<input class="post" type="text" name="avatarurl" size="40" class="post" style="width: 200px" />
Заменяем на:
Код HTML:
<input class="post" type="text" name="avatarurl" size="40" style="width: 200px" />
Находим (247):
Код HTML:
<input class="post" type="text" name="avatarremoteurl" size="40" class="post" style="width: 200px" />
Заменяем на:
Код HTML:
<input class="post" type="text" name="avatarremoteurl" size="40" style="width: 200px" />
Все последующие изменения надо производить в двух директориях:
modules/Forums/templates/subSilver/
и
themes/DeepBlue/forums/
вместо subSilver или DeepBlue могут быть ваши используемые темы оформления.
Открываем groupcp_info_body.tpl
Находим (36):
Код HTML:
<td class="row2"><span class="gen"><span class="gen"><input type="radio" name="group_type" value="{S_GROUP_OPEN_TYPE}" {S_GROUP_OPEN_CHECKED} /> {L_GROUP_OPEN} <input type="radio" name="group_type" value="{S_GROUP_CLOSED_TYPE}" {S_GROUP_CLOSED_CHECKED} /> {L_GROUP_CLOSED} <input type="radio" name="group_type" value="{S_GROUP_HIDDEN_TYPE}" {S_GROUP_HIDDEN_CHECKED} /> {L_GROUP_HIDDEN} <input class="mainoption" type="submit" name="groupstatus" value="{L_UPDATE}" /></span></td>
Заменяем на:
Код HTML:
<td class="row2"><span class="gen"><input type="radio" name="group_type" value="{S_GROUP_OPEN_TYPE}" {S_GROUP_OPEN_CHECKED} /> {L_GROUP_OPEN} <input type="radio" name="group_type" value="{S_GROUP_CLOSED_TYPE}" {S_GROUP_CLOSED_CHECKED} /> {L_GROUP_CLOSED} <input type="radio" name="group_type" value="{S_GROUP_HIDDEN_TYPE}" {S_GROUP_HIDDEN_CHECKED} /> {L_GROUP_HIDDEN} <input class="mainoption" type="submit" name="groupstatus" value="{L_UPDATE}" /></span></td>
Находим (102):
Код HTML:
<td class="catBottom" colspan="8" align="right"><span class="cattitle">
<input type="submit" name="remove" value="{L_REMOVE_SELECTED}" class="mainoption" />
Заменяем на:
Код HTML:
<td class="catBottom" colspan="8" align="right">
<span class="cattitle"><input type="submit" name="remove" value="{L_REMOVE_SELECTED}" class="mainoption" /></span>
Открываем index_body.tpl
Находим (44):
Код HTML:
<td align="left"><span class="gensmall"><a href="{U_MARK_READ}" class="gensmall">{L_MARK_FORUMS_READ}</a></span></td>
Заменить на:
Код HTML:
<td align="left">
<!-- BEGIN switch_user_logged_in -->
<span class="gensmall"><a href="{U_MARK_READ}" class="gensmall">{L_MARK_FORUMS_READ}</a></span>
<!-- END switch_user_logged_in -->
</td>
Находим (79):
Код HTML:
<input class="post" type="password" name="password" size="10" maxlength="32" />
Ниже добавляем:
Код HTML:
<!-- BEGIN switch_allow_autologin -->
Находим (82):
Код HTML:
<input class="text" type="checkbox" name="autologin" />
Ниже добавляем:
Код HTML:
<!-- END switch_allow_autologin -->
Открываем login_body.tpl
Находим (31):
Код HTML:
<tr align="center">
<td colspan="2"><span class="gen">{L_AUTO_LOGIN}: <input type="checkbox" name="autologin" /></span></td>
</tr>
Выше добавляем:
Код HTML:
<!-- BEGIN switch_allow_autologin -->
Ниже добавляем (найденного):
Код HTML:
<!-- END switch_allow_autologin -->
Последний раз редактировалось Soniks, 07.11.2005 в 21:33.
|
|
|
|
|
|
"Если бы вам удалось надавать под зад человеку, виноватому в большинстве ваших неприятностей - вы бы неделю не смогли сидеть". |
|
|
|
|
|
|
![](flycatimages/misc/pbbg.gif) |
|
![](flycatimages/misc/gl.gif) |
|
![](flycatimages/misc/gr.gif) |
|
07.11.2005, 23:22
Открываем profile_add_body.tpl
В строках типа:
Код HTML:
<input type="text" name="icq" class="post"style="width: 100px" size="10" maxlength="15" value="{ICQ}" />
находим (9 раз):
и меняем на:
т.е. будет:
Код HTML:
<input type="text" name="icq" class="post" style="width: 100px" size="10" maxlength="15" value="{ICQ}" />
Открываем search_body.tpl
Находим (34):
Код HTML:
<td class="row2" valign="middle" nowrap="nowrap"><span class="genmed"><select class="post" name="sort_by">{S_SORT_OPTIONS}</select><br /><input type="radio" name="sort_dir" value="ASC" /> {L_SORT_ASCENDING}<br /><input type="radio" name="sort_dir" value="DESC" checked /> {L_SORT_DESCENDING}</span> </td>
Заменяем на:
Код HTML:
<td class="row2" valign="middle" nowrap="nowrap"><span class="genmed"><select class="post" name="sort_by">{S_SORT_OPTIONS}</select><br /><input type="radio" name="sort_dir" value="ASC" /> {L_SORT_ASCENDING}<br /><input type="radio" name="sort_dir" value="DESC" checked="checked" /> {L_SORT_DESCENDING}</span> </td>
Открываем modules/Forums/templates/subSilver/subSilver.cfg
Находим (80):
PHP код:
$images['topic_watch'] = "";
Заменяем на:
PHP код:
$images['Topic_watch'] = "";
Открываем modules/Forums/viewtopic.php
Находим (60):
PHP код:
if ( !isset($topic_id) && !isset($post_id) )
Заменяем на:
PHP код:
if (!$topic_id && !$post_id)
Находим (120):
PHP код:
AND t.forum_id = t2.forum_id
Ниже добавляем:
Находим (147):
PHP код:
$join_sql_table = ( empty($post_id) ) ? '' : ", " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2 "; $join_sql = ( empty($post_id) ) ? "t.topic_id = '$topic_id'" : "p.post_id = '$post_id' AND t.topic_id = p.topic_id AND p2.topic_id = p.topic_id AND p2.post_id <= '$post_id'"; $count_sql = ( empty($post_id) ) ? '' : ", COUNT(p2.post_id) AS prev_posts"; $order_sql = ( empty($post_id) ) ? '' : "GROUP BY p.post_id, t.topic_id, t.topic_title, t.topic_status, t.topic_replies, t.topic_time, t.topic_type, t.topic_vote, t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id, f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments ORDER BY p.post_id ASC";
Заменяем на:
PHP код:
$join_sql_table = (!$post_id) ? '' : ", " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2 "; $join_sql = (!$post_id) ? "t.topic_id = '$topic_id'" : "p.post_id = '$post_id' AND t.topic_id = p.topic_id AND p2.topic_id = p.topic_id AND p2.post_id <= '$post_id'"; $count_sql = (!$post_id) ? '' : ", COUNT(p2.post_id) AS prev_posts"; $order_sql = (!$post_id) ? '' : "GROUP BY p.post_id, t.topic_id, t.topic_title, t.topic_status, t.topic_replies, t.topic_time, t.topic_type, t.topic_vote, t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id, f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments ORDER BY p.post_id ASC";
Находим (189):
PHP код:
$redirect = ( isset($post_id) ) ? POST_POST_URL . "=$post_id" : POST_TOPIC_URL . "=$topic_id"; $redirect .= ( isset($start) ) ? "&start=$start" : '';
Заменяем на:
PHP код:
$redirect = ($post_id) ? POST_POST_URL . "=$post_id" : POST_TOPIC_URL . "=$topic_id"; $redirect .= ($start) ? "&start=$start" : '';
Находим (209):
Заменить на:
Находим (505):
PHP код:
$highlight_match .= (($highlight_match != '') ? '|' : '') . str_replace('*', '\w*', phpbb_preg_quote($words[$i], '#'));
Заменяем на:
PHP код:
$highlight_match .= (($highlight_match != '') ? '|' : '') . str_replace('*', '\w*', preg_quote($words[$i], '#'));
Находим (1028):
PHP код:
$search_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_search'] . '" alt="' . $lang['Search_user_posts'] . '" title="' . sprintf($lang['Search_user_posts'], $postrow[$i]['username']) . '" border="0" /></a>';
Заменяем на:
PHP код:
$search_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_search'] . '" alt="' . sprintf($lang['Search_user_posts'], $postrow[$i]['username']) . '" title="' . sprintf($lang['Search_user_posts'], $postrow[$i]['username']) . '" border="0" /></a>';
Находим (1104):
PHP код:
if ( $board_config['allow_bbcode'] ) { if ( $user_sig != '' && $user_sig_bbcode_uid != '' ) { $user_sig = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($user_sig, $user_sig_bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $user_sig); } if ( $bbcode_uid != '' ) { $message = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($message, $bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $message); } }
Заменяем на:
PHP код:
if ($user_sig != '' && $user_sig_bbcode_uid != '') { $user_sig = ($board_config['allow_bbcode']) ? bbencode_second_pass($user_sig, $user_sig_bbcode_uid) : preg_replace("/\:$user_sig_bbcode_uid/si", '', $user_sig); } if ($bbcode_uid != '') { $message = ($board_config['allow_bbcode']) ? bbencode_second_pass($message, $bbcode_uid) : preg_replace("/\:$bbcode_uid/si", '', $message); }
Выполняем SQL-запрос:
Код:
CREATE TABLE nuke_bbsessions_keys (key_id varchar(32) DEFAULT '0' NOT NULL, user_id mediumint(8) DEFAULT '0' NOT NULL, last_ip varchar(8) DEFAULT '0' NOT NULL, last_login int(11) DEFAULT '0' NOT NULL, PRIMARY KEY (key_id, user_id), KEY last_login (last_login))
Код:
UPDATE nuke_users SET user_active = 0 WHERE user_id = '1'
Код:
INSERT INTO nuke_bbconfig (config_name, config_value) VALUES ('allow_autologin', '1')
Код:
INSERT INTO nuke_bbconfig (config_name, config_value) VALUES ('max_autologin_time', '0')
Код:
DELETE FROM nuke_bbsessions
Код:
UPDATE nuke_bbconfig SET config_value='.0.18' where config_name='version'
На этом апгрейд форума закончен ![Подпрыгивать](images/smilies/smellie_jumplol.gif)
|
|
|
|
|
|
"Если бы вам удалось надавать под зад человеку, виноватому в большинстве ваших неприятностей - вы бы неделю не смогли сидеть". |
|
|
|
|
|
|
![](flycatimages/misc/pbbg.gif) |
|
![](flycatimages/misc/gl.gif) |
|
![](flycatimages/misc/gr.gif) |
|
08.11.2005, 18:36
абалдеть, кто нибудь пробовал, работает или нет?
|
|
|
|
![](flycatimages/misc/pbbg.gif) |
|
Опции темы |
Поиск в этой теме |
|
|
Опции просмотра |
Линейный вид
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:08.
|
![](flycatimages/misc/fl.gif) |
|
![](flycatimages/misc/fr.gif) |
|
![](flycatimages/misc/vbbg.gif) |
![](flycatimages/misc/botl.gif) |
|
![](flycatimages/misc/botr.gif) |
![](flycatimages/misc/botcp.gif) |
|
![](flycatimages/misc/botcp.gif) |
|