Вход

View Full Version : Правим BBtoNuke


Soniks
23.09.2005, 04:42
При детальном рассмотрении BBtoNuke видно, что часть функций не работают или же работают, но не правильно, в отличие от phpbb. Поэтому, здесь (по мере нахождения) буду выкладывать фиксы для полнофункциональной работы форума.

Все кто заметил не рабочую функцию форума - постим здесь! Информируйте чётка: что, когда и при каких условиях!

Начну с административной панели:

1. На главной странице админки форума, в "Статистике Форума" неотображается размер директории с аваторами, устраним и доработаем :smile: .

Открываем modules/Forums/admin/index.php
Находим:
if ($avatar_dir = @opendir($phpbb_root_path . $board_config['avatar_path']))
{
while( $file = @readdir($avatar_dir) )
{
if( $file != "." && $file != ".." )
{
$avatar_dir_size += @filesize($phpbb_root_path . $board_config['avatar_path'] . "/" . $file);
}
}
@closedir($avatar_dir);

Заменяем на:

if (is_dir("../../../".$board_config['avatar_path']))
{

function avatar_size($avatar_dir){
$dir = @opendir($avatar_dir);
while($file = @readdir($dir))
{
if( $file != "." && $file != ".." )
{
if(is_dir($avatar_dir ."/". $file)){
$avatar_dir_size += avatar_size($avatar_dir ."/". $file);
}
$avatar_dir_size += @filesize($avatar_dir ."/". $file);
}
}
@closedir($dir);
return $avatar_dir_size;
}
$avatar_dir_size=avatar_size("../../../".$board_config['avatar_path']);

BriaN
23.09.2005, 11:27
я уже тебе один раз говорил, но запостю и здесь. В настройках форума есть два поля "формат даты"
и "часовой пояс", в этих полях должно ставится стандартное время всем зарегистрировавшимся на форуме, но данную функцию не выполняет (было бы не плохо ещё написать Sql запрос, что бы изменить уже у всех зарегистрированных, до исправления, если оно будет).
вторая недоработка, что у тех, кто обновляет не руками, а заменами файлов, есть в конфигурации невидимое поле, там по идее должно выставляется показывать код при регистрации или нет, но так как регистрация проходит через сайт, там это меню просто болтается как выключатель :).

BriaN
25.09.2005, 00:36
Нашел ещё ну не совсем глюк, скорее недоработку, в админке форума есть "Кто сейчас на форуме" ну там ник, когда пришел и т.п. и есть его IP. Нажимая на IP перекидает на http://www.geektools.com/cgi-bin/proxy.cgi?query=$reg_ip&targetnic=auto ($reg_ip - IP юзверя) но там уже немного изменился способ проверки. В общем:

Откройте modules/Forums/admin/index.php

Найдите:
http://www.geektools.com/cgi-bin/proxy.cgi?query=$reg_ip&targetnic=auto

Замените на:
http://www.nwtools.com/default.asp?prog=xwhois&host=$reg_ip

Найдите:
http://www.geektools.com/cgi-bin/proxy.cgi?query=$guest_ip&targetnic=auto

Замените на:
http://www.nwtools.com/default.asp?prog=xwhois&host=$guest_ip

В общем, то это не такое уж большое исправление, но если кого-то задалбливает данная неудобность, то обязательно к исправлению.

Soniks
26.10.2005, 03:22
я уже тебе один раз говорил, но запостю и здесь. В настройках форума есть два поля "формат даты"
и "часовой пояс", в этих полях должно ставится стандартное время всем зарегистрировавшимся на форуме, но данную функцию не выполняет (было бы не плохо ещё написать Sql запрос, что бы изменить уже у всех зарегистрированных, до исправления, если оно будет).

Правим:
открываем modules/Forums/admin/admin_board.php
Находим:

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

Ниже добавляем:

if(isset($HTTP_POST_VARS['board_timezone']) and isset($HTTP_POST_VARS['submit'])){
$sql = "ALTER TABLE " . USERS_TABLE . " CHANGE user_timezone user_timezone DECIMAL( 5, 2 ) DEFAULT '". $HTTP_POST_VARS['board_timezone'] . "' NOT NULL ";
if( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Failed to update TimeZone", "", __LINE__, __FILE__, $sql);
}
}

Сохраняем!
Выполняем следующий sql-запрос:
ALTER TABLE `nuke_users` CHANGE `user_timezone` `user_timezone` DECIMAL( 5, 2 ) NOT NULL
не забываем поменять префикс на свой
В конфиге форума выставляем нужную Временную зону, сохраняем настройки.

Что бы изменить уже у зарегистрированных пользователей временную зону выполняем следующий sql-запрос:
UPDATE nuke_users SET user_timezone = '4' WHERE user_timezone='10'
замените 4 - на нужную вам зону, возможен разделитель, т.е. 4.30
не забываем поменять префикс.