Merge pull request #32 from torrentpier/develop

Версия 2.1 (R600)

Новая стабильная версия, рекомендуемая для обновления и перехода. Обсуждение релиза - на форуме: http://torrentpier.me/threads/vyshla-stabilnaja-versija-2-1-r600.26148/
This commit is contained in:
Exile 2014-09-01 00:37:29 +04:00
commit baea6e04df
61 changed files with 459 additions and 288 deletions

View file

@ -35,6 +35,7 @@ Nightwolf
nord51
Вася
Alexander.S (http://torrent.dchub.ws/)
sasha20072007
*****************************
** Прочая информация **

View file

@ -14,6 +14,13 @@ $user->session_start();
set_die_append_msg();
if (!IS_SUPER_ADMIN) bb_die($lang['ONLY_FOR_SUPER_ADMIN']);
bb_die('
<h1 style="color: red">Для обновления до стабильной ревизии R600, вам необходимо воспользоваться <a
href="http://torrentpier.me/threads/26147/">инструкцией, опубликованной в данной теме</a> на нашем форуме.
Вы также можете заглянуть в исходный код этого скрипта, в нем опубликована схема изменений от ревизии 400,
до ревизии 600. Не забывайте про бекап базы данных перед обновлением!</h1>
');
/*
Схема изенений r400->r600 для написания конвертера.
@ -25,7 +32,9 @@ ALTER TABLE `bb_posts` ADD `post_mod_comment` TEXT NOT NULL DEFAULT '';
ALTER TABLE `bb_posts` ADD `post_mod_comment_type` TINYINT( 1 ) NOT NULL DEFAULT '0'; // добавлено 458
ALTER TABLE `bb_posts` ADD `post_mc_mod_id` mediumint(8) NOT NULL; // добавлено 458
ALTER TABLE `bb_posts` ADD `post_mc_mod_name` varchar(25) NOT NULL DEFAULT ''; // добавлено 458
// 496 - отдельный конвертер
ALTER TABLE `bb_users` ADD `tpl_name` varchar(255) NOT NULL DEFAULT 'default'; // добавлено 507
UPDATE `bb_config` SET `config_value` = '1' WHERE `config_name` = 'bt_unset_dltype_on_tor_unreg';
// изменено 508 ↑
@ -56,12 +65,16 @@ DELETE FROM `bb_config` WHERE `config_name` = 'bt_add_comment';
DELETE FROM `bb_config` WHERE `config_name` = 'bt_add_publisher'; // удалено 565
DELETE FROM `bb_config` WHERE `config_name` = 'bt_gen_passkey_on_reg'; // удалено 565
DROP TABLE IF EXISTS `sph_counter`; // удалено 571
// 571 - отдельный конвертер
DELETE FROM `bb_config` WHERE `config_name` = 'max_inbox_privmsgs'; // удалено 573
DELETE FROM `bb_config` WHERE `config_name` = 'max_savebox_privmsgs'; // удалено 573
DELETE FROM `bb_config` WHERE `config_name` = 'max_sentbox_privmsgs'; // удалено 573
DELETE FROM `bb_config` WHERE `config_name` = 'privmsg_disable'; // удалено 573
// 575 - отдельный конвертер
DELETE FROM `bb_config` WHERE `config_name` = 'config_id'; // удалено 579
DELETE FROM `bb_config` WHERE `config_name` = 'sendmail_fix'; // удалено 579
DELETE FROM `bb_config` WHERE `config_name` = 'version'; // удалено 579
@ -86,13 +99,17 @@ DELETE FROM `bb_config` WHERE `config_name` = 'no_avatar';
UPDATE `bb_config` SET `config_value` = '0' WHERE `config_name` = 'show_mod_index'; // изменено 583
DELETE FROM `bb_cron` WHERE `cron_script` = 'avatars_cleanup.php'; // удалено 583
UPDATE `bb_cron` SET `cron_id` = '30' WHERE `cron_script` = 'attach_maintenance.php'; // изменено 583
// 583 - отдельный конвертер
DROP TABLE IF EXISTS `bb_topic_templates`; // удалено 584
ALTER TABLE `bb_forums` DROP `topic_tpl_id`; // удалено 584
UPDATE `bb_config` SET `config_value` = 'http://ip-whois.net/ip_geos.php?ip=' WHERE `config_name` = 'whois_info';
// обновлено 586 ↑
UPDATE `bb_config` SET `config_value` = 'ru' WHERE `config_name` = 'default_lang'; // обновлено 588
// 588 - отдельный конвертер
ALTER TABLE `bb_users` DROP `user_next_birthday_greeting`; // удалено 589
ALTER TABLE `bb_posts` CHANGE `post_mod_comment` `mc_comment` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '';
// изменено 590 ↑

View file

@ -2,19 +2,19 @@
if (!defined('IN_AJAX')) die(basename(__FILE__));
global $bb_cfg, $user;
global $bb_cfg, $lang, $user;
$mode = (string) $this->request['mode'];
$user_id = (int) $this->request['user_id'];
if (!$user_id OR !$u_data = get_userdata($user_id))
{
$this->ajax_die('invalid user_id');
$this->ajax_die('Invalid user_id');
}
if (!IS_ADMIN && $user_id != $user->id)
{
$this->ajax_die('Не админ');
$this->ajax_die($lang['NOT_ADMIN']);
}
switch ($mode)
@ -25,7 +25,7 @@ switch ($mode)
$response = '<img src="'. $bb_cfg['avatars']['upload_path'] . $bb_cfg['avatars']['no_avatar'] .'" alt="'. $user_id .'" />';
break;
default:
$this->ajax_die('invalid mode');
$this->ajax_die('Invalid mode');
}
DB()->query("UPDATE ". BB_USERS ." SET avatar_ext_id = $new_ext_id WHERE user_id = $user_id LIMIT 1");

View file

@ -71,9 +71,9 @@ $domain_name = 'torrentpier.me'; // enter here your primary domain name of your
$domain_name = (!empty($_SERVER['SERVER_NAME'])) ? $_SERVER['SERVER_NAME'] : $domain_name;
// Version info
$bb_cfg['tp_version'] = '2.1 (RC)';
$bb_cfg['tp_release_date'] = '31-08-2014';
$bb_cfg['tp_release_state'] = 'R599b';
$bb_cfg['tp_version'] = '2.1 (STABLE)';
$bb_cfg['tp_release_date'] = '01-09-2014';
$bb_cfg['tp_release_state'] = 'R600';
// Database
$charset = 'utf8';
@ -81,9 +81,11 @@ $pconnect = false;
// Настройка баз данных ['db']['srv_name'] => (array) srv_cfg;
// порядок параметров srv_cfg (хост, название базы, пользователь, пароль, charset, pconnect);
$bb_cfg['db']['db1'] = array('localhost', 'dbase', 'user', 'pass', $charset, $pconnect);
//$bb_cfg['db']['db2'] = array('localhost2', 'dbase2', 'user2', 'pass2', $charset, $pconnect);
//$bb_cfg['db']['db3'] = array('localhost3', 'dbase3', 'user2', 'pass3', $charset, $pconnect);
$bb_cfg['db'] = array(
'db1' => array('localhost', 'dbase', 'user', 'pass', $charset, $pconnect),
//'db2' => array('localhost2', 'dbase2', 'user2', 'pass2', $charset, $pconnect),
//'db3' => array('localhost3', 'dbase3', 'user2', 'pass3', $charset, $pconnect),
);
$bb_cfg['db_alias'] = array(
// 'alias' => 'srv_name'
@ -482,7 +484,8 @@ $bb_cfg['max_search_words_per_post'] = 200;
$bb_cfg['search_min_word_len'] = 3;
$bb_cfg['search_max_word_len'] = 35;
$bb_cfg['limit_max_search_results'] = false;
$bb_cfg['spam_filter_file_path'] = ''; //BB_PATH .'/misc/spam_filter_words.txt';
$bb_cfg['spam_filter_file_path'] = ''; // BB_PATH .'/misc/spam_filter_words.txt';
$bb_cfg['autocorrect_wkl'] = true; // autocorrect wrong keyboard layout
// Posting
$bb_cfg['prevent_multiposting'] = true; // replace "reply" with "edit last msg" if user (not admin or mod) is last topic poster

View file

@ -213,7 +213,7 @@ else
$message .= '<div class="mrg_10">'. CAPTCHA()->get_html() .'</div>';
$message .= '<input type="hidden" name="redirect_url" value="'. $redirect_url .'" />';
$message .= '<input type="submit" class="bold" value="'. $lang['SUBMIT'] .'" /> &nbsp;';
$message .= '<input type="button" class="bold" value="Вернуться обратно" onclick="document.location.href = \''. $redirect_url .'\';" />';
$message .= '<input type="button" class="bold" value="'. $lang['GO_BACK'] .'" onclick="document.location.href = \''. $redirect_url .'\';" />';
$message .= '</form>';
$template->assign_vars(array(

View file

@ -576,9 +576,9 @@ class bbcode
// [url]
$url_exp = '[\w\#!$%&~/.\-;:=,?@а-яА-Я\[\]+]+?';
$text = preg_replace_callback("#\[url\](https?://$url_exp)\[/url\]#isu", array(&$this, 'url_callback'), $text);
$text = preg_replace_callback("#\[url\]((?:https?://)?$url_exp)\[/url\]#isu", array(&$this, 'url_callback'), $text);
$text = preg_replace_callback("#\[url\](www\.$url_exp)\[/url\]#isu", array(&$this, 'url_callback'), $text);
$text = preg_replace_callback("#\[url=(https?://$url_exp)\]([^?\n\t].*?)\[/url\]#isu", array(&$this, 'url_callback'), $text);
$text = preg_replace_callback("#\[url=((?:https?://)?$url_exp)\]([^?\n\t].*?)\[/url\]#isu", array(&$this, 'url_callback'), $text);
$text = preg_replace_callback("#\[url=(www\.$url_exp)\]([^?\n\t].*?)\[/url\]#isu", array(&$this, 'url_callback'), $text);
// Normalize block level tags wrapped with new lines
@ -619,7 +619,7 @@ class bbcode
/**
* Spam filter
*/
static function spam_filter ($text)
private function spam_filter ($text)
{
global $bb_cfg;
static $spam_words = null;
@ -704,6 +704,8 @@ class bbcode
$url = trim($m[1]);
$url_name = (isset($m[2])) ? trim($m[2]) : $url;
if (!preg_match("#^http://#", $url) && !preg_match("/^#/", $url)) $url = 'http://' . $url;
if (in_array(parse_url($url, PHP_URL_HOST), $bb_cfg['nofollow']['allowed_url']) || $bb_cfg['nofollow']['disabled'])
{
$link = "<a href=\"$url\" class=\"postLink\">$url_name</a>";

View file

@ -23,55 +23,51 @@ class upload_common
var $file_size = '';
var $ext_ids = array(); // array_flip($bb_cfg['file_id_ext'])
var $errors = array();
var $img_types = array(1=>'gif', 2=>'jpg', 3=>'png', 6=>'bmp', 7=>'tiff', 8=>'tiff');
var $img_types = array(
1 => 'gif',
2 => 'jpg',
3 => 'png',
6 => 'bmp',
7 => 'tiff',
8 => 'tiff',
);
function init ($cfg = array(), $post_params = array(), $uploaded_only = true)
{
global $bb_cfg, $lang;
$lang['upload_error_common'] = 'Ошибка загрузки файла';
$lang['upload_errors'] = array(
UPLOAD_ERR_INI_SIZE => 'превышен максимальный размер файлов для сервера',
UPLOAD_ERR_FORM_SIZE => 'превышен максимальный размер загружаемого файла',
UPLOAD_ERR_PARTIAL => 'файл был загружен частично',
UPLOAD_ERR_NO_FILE => 'файл не был загружен',
UPLOAD_ERR_NO_TMP_DIR => 'временная директория не найдена',
UPLOAD_ERR_CANT_WRITE => 'ошибка записи',
UPLOAD_ERR_EXTENSION => 'загрузка остановлена из-за расширения',
);
$this->cfg = array_merge($this->cfg, $cfg);
$this->file = $post_params;
// upload errors from $_FILES
if ($this->file['error'])
{
$msg = $lang['upload_error_common'];
$msg .= ($err_desc =& $lang['upload_errors'][$this->file['error']]) ? " ($err_desc)" : '';
$msg = $lang['UPLOAD_ERROR_COMMON'];
$msg .= ($err_desc =& $lang['UPLOAD_ERRORS'][$this->file['error']]) ? " ($err_desc)" : '';
$this->errors[] = $msg;
return false;
}
// file_exists
if (!file_exists($this->file['tmp_name']))
{
$this->errors[] = "uploaded file not exists: {$this->file['tmp_name']}";
$this->errors[] = "Uploaded file not exists: {$this->file['tmp_name']}";
return false;
}
// size
if (!$this->file_size = filesize($this->file['tmp_name']))
{
$this->errors[] = "uploaded file is empty: {$this->file['tmp_name']}";
$this->errors[] = "Uploaded file is empty: {$this->file['tmp_name']}";
return false;
}
if ($this->cfg['max_size'] && $this->file_size > $this->cfg['max_size'])
{
$this->errors[] = 'Загруженный файл превышает максимальный размер '. humn_size($this->cfg['max_size']);
$this->errors[] = sprintf($lang['UPLOAD_ERROR_SIZE'], humn_size($this->cfg['max_size']));
return false;
}
// is_uploaded_file
if ($uploaded_only && !is_uploaded_file($this->file['tmp_name']))
{
$this->errors[] = "not uploaded file: {$this->file['tmp_name']}";
$this->errors[] = "Not uploaded file: {$this->file['tmp_name']}";
return false;
}
// get ext
@ -89,7 +85,7 @@ class upload_common
// redefine ext
if (!$width || !$height || !$type || !isset($this->img_types[$type]))
{
$this->errors[] = 'Недопустимый тип файла изображения';
$this->errors[] = $lang['UPLOAD_ERROR_FORMAT'];
return false;
}
$this->file_ext = $this->img_types[$type];
@ -97,20 +93,20 @@ class upload_common
// width & height
if (($this->cfg['max_width'] && $width > $this->cfg['max_width']) || ($this->cfg['max_height'] && $height > $this->cfg['max_height']))
{
$this->errors[] = "Размеры изображения превышают максимально допустимые {$this->cfg['max_width']}x{$this->cfg['max_height']} px";
$this->errors[] = sprintf($lang['UPLOAD_ERROR_DIMENSIONS'], $this->cfg['max_width'], $this->cfg['max_height']);
return false;
}
}
else
{
$this->errors[] = 'Загруженный файл не является изображением';
$this->errors[] = $lang['UPLOAD_ERROR_NOT_IMAGE'];
return false;
}
}
// check ext
if (!isset($this->ext_ids[$this->file_ext]) || !in_array($this->file_ext, $this->cfg['allowed_ext'], true))
{
$this->errors[] = 'Расширение '. htmlCHR($this->file_ext) .' для загружаемых файлов не разрешено';
$this->errors[] = sprintf($lang['UPLOAD_ERROR_NOT_ALLOWED'], htmlCHR($this->file_ext));
return false;
}
$this->file_ext_id = $this->ext_ids[$this->file_ext];
@ -135,7 +131,7 @@ class upload_common
}
else
{
trigger_error("invalid upload mode: $mode", E_USER_ERROR);
trigger_error("Invalid upload mode: $mode", E_USER_ERROR);
}
}

View file

@ -10,7 +10,7 @@ $sql = "SELECT forum_name, allow_reg_tracker, forum_tpl_id FROM ". BB_FORUMS ."
if (!$forum_id OR !$f_data = DB()->fetch_row($sql))
{
bb_die('Форум не найден');
bb_die($lang['FORUM_NOT_EXIST']);
}
// tpl_data
$tpl_data = array();
@ -25,7 +25,7 @@ if (!$f_data['forum_tpl_id'] OR !$tpl_data = DB()->fetch_row($sql))
}
$template->assign_vars(array(
'PAGE_TITLE' => 'Новый релиз',
'PAGE_TITLE' => $lang['NEW_RELEASE'],
'FORUM_NAME' => $f_data['forum_name'],
'FORUM_ID' => $forum_id,
'TPL_FORM_ACTION' => POSTING_URL . "?mode=newtopic&amp;f=$forum_id",

View file

@ -765,6 +765,7 @@ $template->assign_vars(array(
'AVATAR_EXPLAIN' => sprintf($lang['AVATAR_EXPLAIN'], $bb_cfg['avatars']['max_width'], $bb_cfg['avatars']['max_height'], (round($bb_cfg['avatars']['max_size'] / 1024))),
'AVATAR_DISALLOWED' => bf($pr_data['user_opt'], 'user_opt', 'dis_avatar'),
'AVATAR_DIS_EXPLAIN' => sprintf($lang['AVATAR_DISABLE'], $bb_cfg['terms_and_conditions_url']),
'SIGNATURE_EXPLAIN' => sprintf($lang['SIGNATURE_EXPLAIN'], $bb_cfg['max_sig_chars']),
'SIG_DISALLOWED' => bf($pr_data['user_opt'], 'user_opt', 'dis_sig'),

View file

@ -38,11 +38,11 @@ which indicated to us the following information:</p>
<p>WARNING!</p>
<p>а) We reserve the right to publish on the site of any information sent to us by mail <strong><a href="mailto:<?php echo $bb_cfg['abuse_email']; ?>" class="gen"><?php echo $bb_cfg['abuse_email']; ?></a></strong></p>
<p>a) We reserve the right to publish on the site of any information sent to us by mail <strong><a href="mailto:<?php echo $bb_cfg['abuse_email']; ?>" class="gen"><?php echo $bb_cfg['abuse_email']; ?></a></strong></p>
<p>б) We have no control over the actions of users who may be re-post links to information, which is the object of your copyright. Any information the forum, place automatically, without any control from any quarter whatsoever, which corresponds to the generally accepted international practice of placing information on the Internet. However, in any case, we consider all your queries regarding the reference to the information that violates your rights.</p>
<p>b) We have no control over the actions of users who may be re-post links to information, which is the object of your copyright. Any information the forum, place automatically, without any control from any quarter whatsoever, which corresponds to the generally accepted international practice of placing information on the Internet. However, in any case, we consider all your queries regarding the reference to the information that violates your rights.</p>
<p>в) According to the Law on Copyright and Related Rights, a reference to any data (information message), by itself, is not subject to copyright law (although it may violate the "Agreement on the use of the website"). Thus, it is not necessary to send letters containing threats or demands, as not having a real reason.</p>
<p>c) According to the Law on Copyright and Related Rights, a reference to any data (information message), by itself, is not subject to copyright law (although it may violate the "Agreement on the use of the website"). Thus, it is not necessary to send letters containing threats or demands, as not having a real reason.</p>
</div><!--/infobox-body-->
</div>

View file

@ -235,8 +235,8 @@ $lang['VIEW_TOPIC'] = 'View topic';
$lang['GUEST'] = 'Guest';
$lang['POST_SUBJECT'] = 'Post subject';
$lang['SUBMIT_VOTE'] = 'Submit Vote';
$lang['VIEW_RESULTS'] = 'View Results';
$lang['SUBMIT_VOTE'] = 'Submit vote';
$lang['VIEW_RESULTS'] = 'View results';
$lang['NO_NEWER_TOPICS'] = 'There are no newer topics in this forum';
$lang['NO_OLDER_TOPICS'] = 'There are no older topics in this forum';
@ -326,29 +326,29 @@ $lang['POST_DOWNLOAD'] = 'Download';
$lang['CONFIRM_DELETE'] = 'Are you sure you want to delete this post?';
$lang['CONFIRM_DELETE_POLL'] = 'Are you sure you want to delete this poll?';
$lang['FLOOD_ERROR'] = 'You cannot make another post so soon after your last; please try again in a short while.';
$lang['EMPTY_SUBJECT'] = 'You must specify a subject.';
$lang['EMPTY_MESSAGE'] = 'You must enter a message.';
$lang['FORUM_LOCKED'] = 'This forum is locked: you cannot post, reply to, or edit topics.';
$lang['TOPIC_LOCKED'] = 'This topic is locked: you cannot edit posts or make replies.';
$lang['FLOOD_ERROR'] = 'You cannot make another post so soon after your last; please try again in a short while';
$lang['EMPTY_SUBJECT'] = 'You must specify a subject';
$lang['EMPTY_MESSAGE'] = 'You must enter a message';
$lang['FORUM_LOCKED'] = 'This forum is locked: you cannot post, reply to, or edit topics';
$lang['TOPIC_LOCKED'] = 'This topic is locked: you cannot edit posts or make replies';
$lang['TOPIC_LOCKED_SHORT'] = 'Topic locked';
$lang['NO_POST_ID'] = 'You must select a post to edit';
$lang['NO_TOPIC_ID'] = 'You must select a topic to reply to';
$lang['NO_VALID_MODE'] = 'You can only post, reply, edit, or quote messages. Please return and try again.';
$lang['NO_SUCH_POST'] = 'There is no such post. Please return and try again.';
$lang['EDIT_OWN_POSTS'] = 'Sorry, but you can only edit your own posts.';
$lang['DELETE_OWN_POSTS'] = 'Sorry, but you can only delete your own posts.';
$lang['CANNOT_DELETE_REPLIED'] = 'Sorry, but you may not delete posts that have been replied to.';
$lang['CANNOT_DELETE_POLL'] = 'Sorry, but you cannot delete an active poll.';
$lang['EMPTY_POLL_TITLE'] = 'You must enter a title for your poll.';
$lang['TO_FEW_POLL_OPTIONS'] = 'You must enter at least two poll options.';
$lang['TO_MANY_POLL_OPTIONS'] = 'You have tried to enter too many poll options.';
$lang['POST_HAS_NO_POLL'] = 'This post has no poll.';
$lang['ALREADY_VOTED'] = 'You have already voted in this poll.';
$lang['NO_VOTE_OPTION'] = 'You must specify an option when voting.';
$lang['NO_VALID_MODE'] = 'You can only post, reply, edit, or quote messages. Please return and try again';
$lang['NO_SUCH_POST'] = 'There is no such post. Please return and try again';
$lang['EDIT_OWN_POSTS'] = 'Sorry, but you can only edit your own posts';
$lang['DELETE_OWN_POSTS'] = 'Sorry, but you can only delete your own posts';
$lang['CANNOT_DELETE_REPLIED'] = 'Sorry, but you may not delete posts that have been replied to';
$lang['CANNOT_DELETE_POLL'] = 'Sorry, but you cannot delete an active poll';
$lang['EMPTY_POLL_TITLE'] = 'You must enter a title for your poll';
$lang['TO_FEW_POLL_OPTIONS'] = 'You must enter at least two poll options';
$lang['TO_MANY_POLL_OPTIONS'] = 'You have tried to enter too many poll options';
$lang['POST_HAS_NO_POLL'] = 'This post has no poll';
$lang['ALREADY_VOTED'] = 'You have already voted in this poll';
$lang['NO_VOTE_OPTION'] = 'You must specify an option when voting';
$lang['LOCKED_WARN'] = 'You posted into locked topic!';
$lang['ADD_POLL'] = 'Add a Poll';
$lang['ADD_POLL'] = 'Add a poll';
$lang['ADD_POLL_EXPLAIN'] = 'If you do not want to add a poll to your topic, leave the fields blank.';
$lang['POLL_QUESTION'] = 'Poll question';
$lang['POLL_OPTION'] = 'Poll option';
@ -357,7 +357,7 @@ $lang['UPDATE'] = 'Update';
$lang['POLL_FOR'] = 'Run poll for';
$lang['DAYS'] = 'Days';
$lang['POLL_FOR_EXPLAIN'] = '[ Enter 0 or leave blank for a never-ending poll ]';
$lang['DELETE_POLL'] = 'Delete Poll';
$lang['DELETE_POLL'] = 'Delete poll';
$lang['MAX_SMILIES_PER_POST'] = 'Emoticons limit of %s emoticons exceeded.';
@ -581,20 +581,22 @@ $lang['PASSWORD_CONFIRM_IF_CHANGED'] = 'You only need to confirm your password i
$lang['AUTOLOGIN'] = 'Autologin';
$lang['RESET_AUTOLOGIN'] = 'Reset autologin key';
$lang['RESET_AUTOLOGIN_EXPL'] = '';
$lang['RESET_AUTOLOGIN_EXPL'] = 'including all the places you\'ve visited the forum enabled auto-login';
$lang['AVATAR'] = 'Avatar';
$lang['AVATAR_EXPLAIN'] = 'Displays a small graphic image below your details in posts. Only one image can be displayed at a time, its width can be no greater than %d pixels, the height no greater than %d pixels, and the file size no more than %d KB.';
$lang['UPLOAD_AVATAR_FILE'] = 'Upload Avatar';
$lang['AVATAR_DELETE'] = 'Delete avatar';
$lang['AVATAR_DISABLE'] = 'Avatar control option disabled for violation <a href="%s"><b>forum rules</b></a>';
$lang['UPLOAD_AVATAR_FILE'] = 'Upload avatar';
$lang['SELECT_AVATAR'] = 'Select avatar';
$lang['RETURN_PROFILE'] = 'Return to profile';
$lang['SELECT_CATEGORY'] = 'Select category';
$lang['DELETE_IMAGE'] = 'Delete Image';
$lang['CURRENT_IMAGE'] = 'Current Image';
$lang['DELETE_IMAGE'] = 'Delete image';
$lang['CURRENT_IMAGE'] = 'Current image';
$lang['NOTIFY_ON_PRIVMSG'] = 'Notify on new Private Message';
$lang['NOTIFY_ON_PRIVMSG'] = 'Notify on new private message';
$lang['HIDE_USER'] = 'Hide your online status';
$lang['HIDDEN_USER'] = 'Hidden user';
@ -617,10 +619,6 @@ $lang['EMAIL_TOO_LONG'] = 'Your email is too long.';
$lang['SIGNATURE_TOO_LONG'] = 'Your signature is too long.';
$lang['SIGNATURE_ERROR_HTML'] = 'The signature can contain only BBCode';
$lang['FIELDS_EMPTY'] = 'You must fill in the required fields.';
$lang['AVATAR_FILETYPE'] = 'The avatar filetype must be .jpg, .gif or .png';
$lang['AVATAR_FILESIZE'] = 'The avatar image file size must be less than %d KB'; // The avatar image file size must be less than 6 KB
$lang['AVATAR_IMAGESIZE'] = 'The avatar must be less than %d pixels wide and %d pixels high';
$lang['AVATAR_DISABLE'] = 'Forbidden to show avatar';
$lang['WELCOME_SUBJECT'] = 'Welcome to %s Forums'; // Welcome to my.com forums
$lang['NEW_ACCOUNT_SUBJECT'] = 'New user account';
@ -1909,6 +1907,7 @@ $lang['SET_PRUNE_DATA'] = 'You have turned on auto-prune for this forum but did
$lang['MOVE_AND_DELETE'] = 'Move and Delete';
$lang['DELETE_ALL_POSTS'] = 'Delete all posts';
$lang['DELETE_ALL_TOPICS'] = 'Delete all topics, including announcements and sticky';
$lang['NOWHERE_TO_MOVE'] = 'Nowhere to move to';
$lang['EDIT_CATEGORY'] = 'Edit Category';
@ -2533,7 +2532,8 @@ $lang['CRON_DISABLE'] = 'Disable';
$lang['CRON_ENABLE'] = 'Enable';
$lang['RUN_MAIN_CRON'] = 'Start cron';
$lang['ADD_JOB'] = 'Add cron';
$lang['ADD_JOB'] = 'Add cron job';
$lang['DELETE_JOB'] = 'Are you sure you want to delete cron job?';
$lang['CRON_WORKS'] = 'Cron is now works or is broken -> ';
$lang['REPAIR_CRON'] = 'Repair Cron';
@ -2881,3 +2881,52 @@ $lang['HASH_NOT_FOUND'] = 'Release with hash %s not found';
$lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url=http://%s/admin/admin_terms.php]admin/admin_terms.php[/url]. This line can see only administrators.[/align]';
$lang['TERMS_EXPLAIN'] = 'On this page, you can specify the text of the basic rules of the resource is displayed to users.';
$lang['TR_STATS'] = array(
0 => 'inactive users in 30 days',
1 => 'inactive users for 90 days',
2 => 'medium size distributions on the tracker (many megabytes)',
3 => 'how many total hands on the tracker',
4 => 'how many live hands (there is at least 1 led)',
5 => 'how many hands where that seeding more than 5 seeds',
6 => 'how many of us uploaders (those who filled at least 1 hand)',
7 => 'how many uploaders over the last 30 days',
);
$lang['NEW_POLL_START'] = 'Poll enabled';
$lang['NEW_POLL_END'] = 'Poll completed';
$lang['NEW_POLL_ENDED'] = 'This poll has already been completed';
$lang['NEW_POLL_DELETE'] = 'Poll deleted';
$lang['NEW_POLL_ADDED'] = 'Poll added';
$lang['NEW_POLL_ALREADY'] = 'Theme already has a poll';
$lang['NEW_POLL_RESULTS'] = 'Poll changed and the old results deleted';
$lang['NEW_POLL_VOTES'] = 'You must enter a correct response options (minimum 2, maximum is %s)';
$lang['NEW_POLL_DAYS'] = 'The time of the poll (%s days from the moment of creation theme) already ended';
$lang['NEW_POLL_U_NOSEL'] = 'You have not selected that vote';
$lang['NEW_POLL_U_CHANGE'] = 'Edit poll';
$lang['NEW_POLL_U_EDIT'] = 'Change the poll (the old results will be deleted)';
$lang['NEW_POLL_U_VOTED'] = 'All voted';
$lang['NEW_POLL_U_START'] = 'Enable poll';
$lang['NEW_POLL_U_END'] = 'Finish poll';
$lang['NEW_POLL_M_TITLE'] = 'Title of poll';
$lang['NEW_POLL_M_VOTES'] = 'Options';
$lang['NEW_POLL_M_EXPLAIN'] = 'Each row corresponds to one answer (max';
$lang['OLD_BROWSER'] = 'You are using an outdated browser. The website will not display correctly.';
$lang['GO_BACK'] = 'Go back';
$lang['UPLOAD_ERROR_COMMON'] = 'File upload error';
$lang['UPLOAD_ERROR_SIZE'] = 'The uploaded file exceeds the maximum size of %s';
$lang['UPLOAD_ERROR_FORMAT'] = 'Invalid file type of image';
$lang['UPLOAD_ERROR_DIMENSIONS'] = 'Image dimensions exceed the maximum allowable %sx%s px';
$lang['UPLOAD_ERROR_NOT_IMAGE'] = 'The uploaded file is not an image';
$lang['UPLOAD_ERROR_NOT_ALLOWED'] = 'Extension %s for downloads is not allowed';
$lang['UPLOAD_ERRORS'] = array(
UPLOAD_ERR_INI_SIZE => 'you have exceeded the maximum file size for the server',
UPLOAD_ERR_FORM_SIZE => 'you have exceeded the maximum file upload size',
UPLOAD_ERR_PARTIAL => 'the file was partially downloaded',
UPLOAD_ERR_NO_FILE => 'file was not uploaded',
UPLOAD_ERR_NO_TMP_DIR => 'temporary directory not found',
UPLOAD_ERR_CANT_WRITE => 'write error',
UPLOAD_ERR_EXTENSION => 'upload stopped by extension',
);

View file

@ -326,16 +326,16 @@ $lang['POST_DOWNLOAD'] = 'Скачиваемая';
$lang['CONFIRM_DELETE'] = 'Вы уверены, что хотите удалить это сообщение?';
$lang['CONFIRM_DELETE_POLL'] = 'Вы уверены, что хотите удалить этот опрос?';
$lang['FLOOD_ERROR'] = 'Вы не можете отправить следующее сообщение сразу после предыдущего. Пожалуйста, попробуйте чуть попозже.';
$lang['FLOOD_ERROR'] = 'Вы не можете отправить следующее сообщение сразу после предыдущего. Пожалуйста, попробуйте чуть попозже';
$lang['EMPTY_SUBJECT'] = 'Вы должны указать заголовок сообщения, когда начинаете новую тему';
$lang['EMPTY_MESSAGE'] = 'Вы должны ввести текст сообщения';
$lang['FORUM_LOCKED'] = 'Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.';
$lang['TOPIC_LOCKED'] = 'Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.';
$lang['FORUM_LOCKED'] = 'Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые';
$lang['TOPIC_LOCKED'] = 'Эта тема закрыта, вы не можете писать ответы и редактировать сообщения';
$lang['TOPIC_LOCKED_SHORT'] = 'Тема закрыта';
$lang['NO_POST_ID'] = 'Вы должны выбрать сообщение для редактирования';
$lang['NO_TOPIC_ID'] = 'Вы должны выбрать тему для ответа';
$lang['NO_VALID_MODE'] = 'Вы можете только создавать темы, отвечать и редактировать сообщения. Вернитесь и попробуйте еще раз.';
$lang['NO_SUCH_POST'] = 'Сообщение отсутствует. Вернитесь и попробуйте еще раз.';
$lang['NO_VALID_MODE'] = 'Вы можете только создавать темы, отвечать и редактировать сообщения. Вернитесь и попробуйте еще раз';
$lang['NO_SUCH_POST'] = 'Сообщение отсутствует. Вернитесь и попробуйте еще раз';
$lang['EDIT_OWN_POSTS'] = 'Извините, вы можете редактировать только ваши собственные сообщения';
$lang['DELETE_OWN_POSTS'] = 'Извините, вы можете удалять только ваши собственные сообщения';
$lang['CANNOT_DELETE_REPLIED'] = 'Извините, вы не можете удалить сообщение, на которое были получены ответы';
@ -573,7 +573,7 @@ $lang['PUBLIC_VIEW_EMAIL'] = 'Показывать мой адрес e-mail в
$lang['EMAIL_EXPLAIN'] = 'На этот адрес вам будет отправлено письмо для завершения регистрации';
$lang['CURRENT_PASSWORD'] = 'Текущий пароль';
$lang['NEW_PASSWORD'] = "Новый пароль";
$lang['NEW_PASSWORD'] = 'Новый пароль';
$lang['CONFIRM_PASSWORD'] = 'Подтвердите пароль';
$lang['CONFIRM_PASSWORD_EXPLAIN'] = 'Вы должны указать ваш текущий пароль, если хотите изменить его или поменять свой email.';
$lang['PASSWORD_IF_CHANGED'] = 'Указывайте пароль только если вы хотите его поменять';
@ -584,7 +584,9 @@ $lang['RESET_AUTOLOGIN'] = 'Удалить ключ автоматическог
$lang['RESET_AUTOLOGIN_EXPL'] = 'включая все места, где вы заходили на форум с включенным авто-входом';
$lang['AVATAR'] = 'Аватара';
$lang['AVATAR_EXPLAIN'] = 'Показывает небольшое изображение под информацией о вас в сообщениях. Может быть показано только одно изображение, шириной не более %d пикселов, высотой не более %d пикселов и объемом не более %d кб.';
$lang['AVATAR_EXPLAIN'] = 'Показывает небольшое изображение под информацией о вас в сообщениях. Может быть показано только одно изображение, шириной не более %d пикселов, высотой не более %d пикселов и объемом не более %d КВ.';
$lang['AVATAR_DELETE'] = 'Удалить аватар';
$lang['AVATAR_DISABLE'] = 'Опция управления аватарой отключена за нарушение <a href="%s"><b>правил форума</b></a>';
$lang['UPLOAD_AVATAR_FILE'] = 'Загрузить аватару';
$lang['SELECT_AVATAR'] = 'Выберите аватару';
@ -617,10 +619,6 @@ $lang['EMAIL_TOO_LONG'] = 'Слишком длинный email адрес';
$lang['SIGNATURE_TOO_LONG'] = 'Слишком длинная подпись';
$lang['SIGNATURE_ERROR_HTML'] = 'Подпись может содержать только BBCode';
$lang['FIELDS_EMPTY'] = 'Вы должны заполнить обязательные поля';
$lang['AVATAR_FILETYPE'] = 'Файл аватары должен быть .jpg, .gif или .png';
$lang['AVATAR_FILESIZE'] = 'Объем файла аватары должен быть не более %d кб';
$lang['AVATAR_IMAGESIZE'] = 'Аватара должна быть не больше %d пикселов в ширину и %d пикселов в высоту';
$lang['AVATAR_DISABLE'] = 'Запрещено показывать аватар';
$lang['WELCOME_SUBJECT'] = 'Добро пожаловать на сайт %s';
$lang['NEW_ACCOUNT_SUBJECT'] = 'Новый пользователь';
@ -1909,6 +1907,7 @@ $lang['SET_PRUNE_DATA'] = 'Вы выбрали для этого форума а
$lang['MOVE_AND_DELETE'] = 'Перенести и удалить';
$lang['DELETE_ALL_POSTS'] = 'Удалить все темы';
$lang['DELETE_ALL_TOPICS'] = 'Удалить все темы, включая объявления и прилепленные';
$lang['NOWHERE_TO_MOVE'] = 'Некуда переносить';
$lang['EDIT_CATEGORY'] = 'Изменить категорию';
@ -2534,6 +2533,7 @@ $lang['CRON_ENABLE'] = 'включить';
$lang['RUN_MAIN_CRON'] = 'Запустить крон';
$lang['ADD_JOB'] = 'Добавить задачу';
$lang['DELETE_JOB'] = 'Вы действительно хотите удалить крон задачу?';
$lang['CRON_WORKS'] = 'Крон в данный момент запущен или завис &#0183; ';
$lang['REPAIR_CRON'] = 'Восстановить';
@ -2881,3 +2881,52 @@ $lang['HASH_NOT_FOUND'] = 'Раздача с хэшем %s не найдена';
$lang['TERMS_EMPTY_TEXT'] = '[align=center]Текст этой страницы редактируется по адресу: [url=http://%s/admin/admin_terms.php]admin/admin_terms.php[/url]. Эту строку видят только администраторы.[/align]';
$lang['TERMS_EXPLAIN'] = 'На данной странице вы можете указать текст основных правил ресурса, выводящихся пользователям.';
$lang['TR_STATS'] = array(
0 => 'неактивные пользователи в течение 30 дней',
1 => 'неактивные пользователи в течение 90 дней',
2 => 'средний размер раздачи на трекере (сколько мегабайт)',
3 => 'сколько у нас всего раздач на трекере',
4 => 'сколько живых раздач (есть хотя бы 1 сид)',
5 => 'сколько раздач где которые сидируются больше 5 сидами',
6 => 'сколько у нас аплоадеров (те, кто залили хотя бы 1 раздачу)',
7 => 'сколько аплоадеров за последние 30 дней',
);
$lang['NEW_POLL_START'] = 'Опрос включен';
$lang['NEW_POLL_END'] = 'Опрос завершен';
$lang['NEW_POLL_ENDED'] = 'Этот опрос уже завершен';
$lang['NEW_POLL_DELETE'] = 'Опрос удален';
$lang['NEW_POLL_ADDED'] = 'Опрос добавлен';
$lang['NEW_POLL_ALREADY'] = 'Тема уже имеет опрос';
$lang['NEW_POLL_RESULTS'] = 'Опрос изменен и старые результаты удалены';
$lang['NEW_POLL_VOTES'] = 'Вы должны правильно указать варианты ответа (минимум 2, максимум %s)';
$lang['NEW_POLL_DAYS'] = 'Время для этого опроса (%s дней с момента создания темы) уже закончилось';
$lang['NEW_POLL_U_NOSEL'] = 'Вы не выбрали, за что голосуете';
$lang['NEW_POLL_U_CHANGE'] = 'Изменить опрос';
$lang['NEW_POLL_U_EDIT'] = 'Изменить опрос (старые результаты будут удалены)';
$lang['NEW_POLL_U_VOTED'] = 'Всего проголосовало';
$lang['NEW_POLL_U_START'] = 'Включить опрос';
$lang['NEW_POLL_U_END'] = 'Завершить опрос';
$lang['NEW_POLL_M_TITLE'] = 'Заголовок опроса';
$lang['NEW_POLL_M_VOTES'] = 'Варианты ответа';
$lang['NEW_POLL_M_EXPLAIN'] = 'Каждая строка соответствует одному варианту ответа (максимум';
$lang['OLD_BROWSER'] = 'Вы используете устаревший браузер. Сайт может отображаться некорректно.';
$lang['GO_BACK'] = 'Вернуться обратно';
$lang['UPLOAD_ERROR_COMMON'] = 'Ошибка загрузки файла';
$lang['UPLOAD_ERROR_SIZE'] = 'Загруженный файл превышает максимальный размер %s';
$lang['UPLOAD_ERROR_FORMAT'] = 'Недопустимый тип файла изображения';
$lang['UPLOAD_ERROR_DIMENSIONS'] = 'Размеры изображения превышают максимально допустимые %sx%s px';
$lang['UPLOAD_ERROR_NOT_IMAGE'] = 'Загруженный файл не является изображением';
$lang['UPLOAD_ERROR_NOT_ALLOWED'] = 'Расширение %s для загружаемых файлов не разрешено';
$lang['UPLOAD_ERRORS'] = array(
UPLOAD_ERR_INI_SIZE => 'превышен максимальный размер файлов для сервера',
UPLOAD_ERR_FORM_SIZE => 'превышен максимальный размер загружаемого файла',
UPLOAD_ERR_PARTIAL => 'файл был загружен частично',
UPLOAD_ERR_NO_FILE => 'файл не был загружен',
UPLOAD_ERR_NO_TMP_DIR => 'временная директория не найдена',
UPLOAD_ERR_CANT_WRITE => 'ошибка записи',
UPLOAD_ERR_EXTENSION => 'загрузка остановлена из-за расширения',
);

View file

@ -326,16 +326,16 @@ $lang['POST_DOWNLOAD'] = 'Завантажувальна';
$lang['CONFIRM_DELETE'] = 'Ви впевнені, що хочете видалити це повідомлення?';
$lang['CONFIRM_DELETE_POLL'] = 'Ви впевнені, що хочете видалити опитування?';
$lang['FLOOD_ERROR'] = 'Ви не можете відправити наступне повідомлення відразу після попереднього. Будь ласка, спробуйте трохи пізніше.';
$lang['FLOOD_ERROR'] = 'Ви не можете відправити наступне повідомлення відразу після попереднього. Будь ласка, спробуйте трохи пізніше';
$lang['EMPTY_SUBJECT'] = 'Ви повинні вказати заголовок повідомлення, коли починаєте нову тему';
$lang['EMPTY_MESSAGE'] = 'Ви повинні ввести текст повідомлення';
$lang['FORUM_LOCKED'] = 'Цей форум закритий, ви не можете писати нові повідомлення і редагувати старі.';
$lang['TOPIC_LOCKED'] = 'Ця тема закрита і ви не можете писати відповіді і редагувати повідомлення.';
$lang['FORUM_LOCKED'] = 'Цей форум закритий, ви не можете писати нові повідомлення і редагувати старі';
$lang['TOPIC_LOCKED'] = 'Ця тема закрита і ви не можете писати відповіді і редагувати повідомлення';
$lang['TOPIC_LOCKED_SHORT'] = 'Тема закрита';
$lang['NO_POST_ID'] = 'Ви повинні вибрати повідомлення для редагування';
$lang['NO_TOPIC_ID'] = 'Ви повинні вибрати тему для відповіді';
$lang['NO_VALID_MODE'] = 'Ви можете тільки створювати теми, відповідати і редагувати повідомлення. Поверніться назад і спробуйте ще раз.';
$lang['NO_SUCH_POST'] = 'Повідомлення відсутнє. Поверніться назад і спробуйте ще раз.';
$lang['NO_VALID_MODE'] = 'Ви можете тільки створювати теми, відповідати і редагувати повідомлення. Поверніться назад і спробуйте ще раз';
$lang['NO_SUCH_POST'] = 'Повідомлення відсутнє. Поверніться назад і спробуйте ще раз';
$lang['EDIT_OWN_POSTS'] = 'Вибачте, ви можете редагувати лише власні повідомлення';
$lang['DELETE_OWN_POSTS'] = 'Вибачте, ви можете видаляти лише власні повідомлення';
$lang['CANNOT_DELETE_REPLIED'] = 'Вибачте, ви не можете видалити повідомлення, на яке були отримані відповіді';
@ -573,7 +573,7 @@ $lang['PUBLIC_VIEW_EMAIL'] = 'Показувати мою адресу e-mail в
$lang['EMAIL_EXPLAIN'] = 'На цю адресу вам буде відіслано лист для завершення реєстрації';
$lang['CURRENT_PASSWORD'] = 'Поточний пароль';
$lang['NEW_PASSWORD'] = "Новий пароль";
$lang['NEW_PASSWORD'] = 'Новий пароль';
$lang['CONFIRM_PASSWORD'] = 'Підтвердіть пароль';
$lang['CONFIRM_PASSWORD_EXPLAIN'] = 'Ви повинні вказати ваш поточний пароль, якщо хочете змінити його або змінити свій email.';
$lang['PASSWORD_IF_CHANGED'] = 'Вказуйте свій пароль, якщо ви хочете його змінити';
@ -584,8 +584,10 @@ $lang['RESET_AUTOLOGIN'] = 'Видалити ключ автоматичного
$lang['RESET_AUTOLOGIN_EXPL'] = 'включаючи всі місця, де ви заходили на форум з включеним авто-входом';
$lang['AVATAR'] = 'Аватар';
$lang['AVATAR_EXPLAIN'] = "Показує невелике зображення під інформацією про вас в повідомленнях. Може бути показано тільки одне зображення, шириною не більше %d пікселів, висотою не більше %d пікселів і об'ємом не більше %d кб.";
$lang['UPLOAD_AVATAR_FILE'] = "Завантажити аватару";
$lang['AVATAR_EXPLAIN'] = "Показує невелике зображення під інформацією про вас в повідомленнях. Може бути показано тільки одне зображення, шириною не більше %d пікселів, висотою не більше %d пікселів і об'ємом не більше %d КВ.";
$lang['AVATAR_DELETE'] = 'Видалити аватар';
$lang['AVATAR_DISABLE'] = 'Опція управління аватарою відключена за порушення <a href="%s"><b>правил форуму</b></a>';
$lang['UPLOAD_AVATAR_FILE'] = 'Завантажити аватару';
$lang['SELECT_AVATAR'] = 'Виберіть аватару';
$lang['RETURN_PROFILE'] = 'Повернутися до профілю';
@ -617,10 +619,6 @@ $lang['EMAIL_TOO_LONG'] = 'Занадто довга email адреса';
$lang['SIGNATURE_TOO_LONG'] = 'Занадто довгий підпис';
$lang['SIGNATURE_ERROR_HTML'] = 'Підпис може містити тільки BBCode';
$lang['FIELDS_EMPTY'] = "Ви повинні заповнити обов'язкові поля";
$lang['AVATAR_FILETYPE'] = 'Файл аватари повинен бути .jpg, .gif або .png';
$lang['AVATAR_FILESIZE'] = 'розмір файлу аватари повинен бути не більше %d кб';
$lang['AVATAR_IMAGESIZE'] = 'Аватара повинна бути не більше %d пікселів в ширину і %d пікселів у висоту';
$lang['AVATAR_DISABLE'] = 'Заборонено показувати аватар';
$lang['WELCOME_SUBJECT'] = 'Ласкаво просимо на сайт %s';
$lang['NEW_ACCOUNT_SUBJECT'] = 'Новий користувач';
@ -1909,6 +1907,7 @@ $lang['SET_PRUNE_DATA'] = 'Ви вибрали для цього форуму а
$lang['MOVE_AND_DELETE'] = 'Перенести і видалити';
$lang['DELETE_ALL_POSTS'] = 'Видалити всі теми';
$lang['DELETE_ALL_TOPICS'] = 'Видалити всі теми, включаючи оголошення і приліплені';
$lang['NOWHERE_TO_MOVE'] = 'Нікуди переносити';
$lang['EDIT_CATEGORY'] = 'Змінити категорію';
@ -2193,13 +2192,13 @@ $lang['WHOIS_INFO'] = 'Інформація про IP адресу';
$lang['SHOW_MOD_HOME_PAGE'] = 'Показувати модераторів на головній';
$lang['PREMOD_HELP'] = '<h4><span class="tor-icon tor-dup">&#8719;</span> Премодерації</h4> <h6>Якщо у релізера немає роздач зі статусом <span class="tor-icon tor-approved">&radic;</span>, <span class="tor-icon tor-approved">#</span> або <span class="tor-icon tor-dup">T</span> в поточному розділі, включаючи підрозділи, то роздача автоматично отримує статус</h6>';
$lang['TOR_COMMENT'] = '<h4>Коментар до статусу роздачі</h4> <h6>Коментар дозволяє вказати релізерам допущені помилки. При недооформлених статусах релізерам доступна форма відповіді про виправлення релізу</h6>';
$lang['SEED_BONUS_ADD'] = '<h4>Додавання сид бонусу</h4><h6>Кількість роздаваємих роздач користувачем і розмір нарахування бонусів за них (нарахування раз на годину)</h6>';
$lang['SEED_BONUS_ADD'] = '<h4>Додавання сидбонусу</h4><h6>Кількість роздаваємих роздач користувачем і розмір нарахування бонусів за них (нарахування раз на годину)</h6>';
$lang['SEED_BONUS_RELEASE'] = 'до N-числа релізів';
$lang['SEED_BONUS_POINTS'] = 'бонусів на годину';
$lang['SEED_BONUS_TOR_SIZE'] = '<h4>Мінімальний розмір роздачі, за який будуть нараховуватися бонуси</h4><h6>Якщо хочете нараховувати бонуси за все роздачі, залиште поле порожнім.</h6>';
$lang['SEED_BONUS_USER_REGDATA'] = '<h4>Мінімальний стаж користувача на трекері, після якого будуть нараховуватися бонуси</h4><h6>Якщо хочете нараховувати бонуси всім користувачам, залиште поле порожнім.</h6>';
$lang['SEED_BONUS_WARNING'] = 'УВАГА! Сид Бонуси повинні бути в порядку зростання';
$lang['SEED_BONUS_EXCHANGE'] = 'Налаштування обміну Сид Бонусів';
$lang['SEED_BONUS_WARNING'] = 'УВАГА! Сидбонуси повинні бути в порядку зростання';
$lang['SEED_BONUS_EXCHANGE'] = 'Налаштування обміну сидбонусів';
$lang['SEED_BONUS_ROPORTION'] = 'Додавання пропорції для обміну бонусів на GB';
// Modules, this replaces the keys used
@ -2534,6 +2533,7 @@ $lang['CRON_ENABLE'] = 'включити';
$lang['RUN_MAIN_CRON'] = 'Запустити крон';
$lang['ADD_JOB'] = 'Додати завдання';
$lang['DELETE_JOB'] = 'Ви дійсно хочете видалити крон завдання?';
$lang['CRON_WORKS'] = 'Крон у даний момент запущений або завис &#0183; ';
$lang['REPAIR_CRON'] = 'Відновити';
@ -2881,3 +2881,52 @@ $lang['HASH_NOT_FOUND'] = 'Роздача з хешем %s не знайдено
$lang['TERMS_EMPTY_TEXT'] = '[align=center]Текст цієї сторінки редагується за адресою: [url=http://%s/admin/admin_terms.php]admin/admin_terms.php[/url]. Цю рядок бачать тільки адміністраторам.[/align]';
$lang['TERMS_EXPLAIN'] = 'На цій сторінці ви можете вказати текст основних правил ресурсу, які виводяться користувачам.';
$lang['TR_STATS'] = array(
0 => 'неактивні користувачі протягом 30 днів',
1 => 'неактивні користувачі протягом 90 днів',
2 => 'середній розмір роздачі на трекері (скільки мегабайт)',
3 => 'скільки у нас всього роздачі на трекері',
4 => 'скільки живих роздач (є хоча б 1 сід)',
5 => 'скільки роздач де які сидируются більше 5 сидами',
6 => 'скільки у нас аплоадеров (ті, хто залили хоча б 1 роздачу)',
7 => 'скільки аплоадеров за останні 30 днів',
);
$lang['NEW_POLL_START'] = 'Опитування включений';
$lang['NEW_POLL_END'] = 'Опитування завершено';
$lang['NEW_POLL_ENDED'] = 'Це опитування вже завершено';
$lang['NEW_POLL_DELETE'] = 'Опитування видалений';
$lang['NEW_POLL_ADDED'] = 'Опитування додано';
$lang['NEW_POLL_ALREADY'] = 'Тема вже має опитування';
$lang['NEW_POLL_RESULTS'] = 'Опитування змінений і старі результати видалені';
$lang['NEW_POLL_VOTES'] = 'Ви повинні правильно вказати варіанти відповіді (мінімум 2, максимум %s)';
$lang['NEW_POLL_DAYS'] = 'Час для цього опитування (%s днів з моменту створення теми) вже закінчилося';
$lang['NEW_POLL_U_NOSEL'] = 'Ви не вибрали, за що голосуєте';
$lang['NEW_POLL_U_CHANGE'] = 'Змінити опитування';
$lang['NEW_POLL_U_EDIT'] = 'Змінити опитування (старі результати будуть видалені)';
$lang['NEW_POLL_U_VOTED'] = 'Всього проголосувало';
$lang['NEW_POLL_U_START'] = 'Включити опитування';
$lang['NEW_POLL_U_END'] = 'Завершити опитування';
$lang['NEW_POLL_M_TITLE'] = 'Заголовок опитування';
$lang['NEW_POLL_M_VOTES'] = 'Варіанти відповіді';
$lang['NEW_POLL_M_EXPLAIN'] = 'Кожен рядок відповідає одному варіанту відповіді (максимум';
$lang['OLD_BROWSER'] = 'Ви використовуєте застарілий браузер. Сайт може відображатися некоректно.';
$lang['GO_BACK'] = 'Повернутися назад';
$lang['UPLOAD_ERROR_COMMON'] = 'Помилка завантаження файлу';
$lang['UPLOAD_ERROR_SIZE'] = 'Завантажений файл перевищує максимальний розмір %s';
$lang['UPLOAD_ERROR_FORMAT'] = 'Некоректний тип файлу зображення';
$lang['UPLOAD_ERROR_DIMENSIONS'] = 'Розміри зображення перевищують максимально допустимі %sx%s px';
$lang['UPLOAD_ERROR_NOT_IMAGE'] = 'Завантажений файл не є зображенням';
$lang['UPLOAD_ERROR_NOT_ALLOWED'] = 'Розширення %s для файлів, що завантажуються не дозволено';
$lang['UPLOAD_ERRORS'] = array(
UPLOAD_ERR_INI_SIZE => 'перевищено максимальний розмір файлів для сервера',
UPLOAD_ERR_FORM_SIZE => 'перевищено максимальний розмір завантажуваного файлу',
UPLOAD_ERR_PARTIAL => 'файл був завантажений частково',
UPLOAD_ERR_NO_FILE => 'файл не був завантажений',
UPLOAD_ERR_NO_TMP_DIR => 'тимчасова директорія не знайдено',
UPLOAD_ERR_CANT_WRITE => 'помилка запису',
UPLOAD_ERR_EXTENSION => 'завантаження зупинено через розширення',
);

View file

@ -24,7 +24,7 @@ if (!$topic_id)
}
if (!$t_data = DB()->fetch_row("SELECT * FROM ". BB_TOPICS ." WHERE topic_id = $topic_id LIMIT 1"))
{
bb_die('Тема не найдена');
bb_die('Topic not found');
}
// проверка прав
@ -32,16 +32,16 @@ if ($mode != 'poll_vote')
{
if ($t_data['topic_poster'] != $userdata['user_id'])
{
if (!IS_AM) bb_die('Нет прав');
if (!IS_AM) bb_die($lang['NOT_AUTHORISED']);
}
}
// проверка на возможность вносить изменения
if ($mode == 'poll_delete')
{
if ($t_data['topic_time'] < TIMENOW - $bb_cfg['poll_max_days']*86400)
if ($t_data['topic_time'] < TIMENOW - $bb_cfg['poll_max_days'] * 86400)
{
bb_die("Время для этого опроса ({$bb_cfg['poll_max_days']} дней с момента создания темы) уже закончилось");
bb_die(sprintf($lang['NEW_POLL_DAYS'], $bb_cfg['poll_max_days']));
}
if (!IS_ADMIN && ($t_data['topic_vote'] != POLL_FINISHED))
{
@ -63,7 +63,7 @@ switch ($mode)
}
if (!poll_is_active($t_data))
{
bb_die('Этот опрос уже завершен');
bb_die($lang['NEW_POLL_ENDED']);
}
if (!$vote_id)
{
@ -100,7 +100,7 @@ switch ($mode)
bb_die($lang['POST_HAS_NO_POLL']);
}
DB()->query("UPDATE ". BB_TOPICS ." SET topic_vote = 1 WHERE topic_id = $topic_id LIMIT 1");
bb_die('Опрос включен');
bb_die($lang['NEW_POLL_START']);
break;
// завершить опрос
@ -110,7 +110,7 @@ switch ($mode)
bb_die($lang['POST_HAS_NO_POLL']);
}
DB()->query("UPDATE ". BB_TOPICS ." SET topic_vote = ". POLL_FINISHED ." WHERE topic_id = $topic_id LIMIT 1");
bb_die('Опрос завершен');
bb_die($lang['NEW_POLL_END']);
break;
// удаление
@ -120,14 +120,14 @@ switch ($mode)
bb_die($lang['POST_HAS_NO_POLL']);
}
$poll->delete_poll($topic_id);
bb_die('Опрос удален');
bb_die($lang['NEW_POLL_DELETE']);
break;
// добавление
case 'poll_add':
if ($t_data['topic_vote'])
{
bb_die('Тема уже имеет опрос');
bb_die($lang['NEW_POLL_ALREADY']);
}
$poll->build_poll_data($_POST);
if ($poll->err_msg)
@ -135,7 +135,7 @@ switch ($mode)
bb_die($poll->err_msg);
}
$poll->insert_votes_into_db($topic_id);
bb_die('Опрос добавлен');
bb_die($lang['NEW_POLL_ADDED']);
break;
// редакторование
@ -151,21 +151,18 @@ switch ($mode)
}
$poll->insert_votes_into_db($topic_id);
CACHE('bb_poll_data')->rm("poll_$topic_id");
bb_die('Опрос изменен и старые результаты удалены');
bb_die($lang['NEW_POLL_RESULTS']);
break;
default:
bb_die("Invalid mode: ". htmlCHR($mode));
bb_die('Invalid mode: '. htmlCHR($mode));
}
// ----------------------------------------------------------- //
// Functions
//
class bb_poll
{
var $err_msg = '';
var $poll_votes = array(); // array(vote_id => vote_text)
var $poll_votes = array();
var $max_votes = 0;
function bb_poll ()
@ -199,7 +196,8 @@ class bb_poll
// проверять на "< 3" -- 2 варианта ответа + заголовок
if (count($this->poll_votes) < 3 || count($this->poll_votes) > $this->max_votes + 1)
{
return $this->err_msg = "Вы должны правильно указать варианты ответа (минимум 2, максимум {$this->max_votes})";
global $lang;
return $this->err_msg = sprintf($lang['NEW_POLL_VOTES'], $this->max_votes);
}
}

View file

@ -430,11 +430,18 @@ if (!$items_found)
// Search words
if ($var =& $_REQUEST[$text_match_key])
{
if ($tmp = substr(trim($var), 0, $text_match_max_len))
if ($tmp = mb_substr(trim($var), 0, $text_match_max_len))
{
if ($bb_cfg['autocorrect_wkl'])
{
// Autocorrect wrong keyboard layout
$tlc = new Text_LangCorrect();
$title_match_val = $tlc->parse($tlc->parse($tmp, 1), 2);
}
else
{
$title_match_val = $tmp;
}
$text_match_sql = clean_text_match($title_match_val, $all_words_val, false, true);
}
}

View file

@ -6,16 +6,7 @@ require(BB_ROOT .'common.php');
$user->session_start();
if (!IS_ADMIN) die('Unauthorized');
$titles[] = 'неактивные пользователи в течение 30 дней';
$titles[] = 'неактивные пользователи в течение 90 дней';
$titles[] = 'средний размер раздачи на трекере (сколько мегабайт)';
$titles[] = 'сколько у нас всего раздач на трекере';
$titles[] = 'сколько живых раздач (есть хотя бы 1 сид)';
$titles[] = 'сколько раздач где которые сидируются больше 5 сидами';
$titles[] = 'сколько у нас аплоадеров (те, кто залили хотя бы 1 раздачу)';
$titles[] = 'сколько аплоадеров за последние 30 дней';
if (!IS_ADMIN) bb_die($lang['NOT_AUTHORISED']);
$sql[] = 'SELECT count(*) FROM `'.BB_USERS.'` WHERE `user_lastvisit` < UNIX_TIMESTAMP()-2592000';
$sql[] = 'SELECT count(*) FROM `'.BB_USERS.'` WHERE `user_lastvisit` < UNIX_TIMESTAMP()-7776000';
@ -26,8 +17,32 @@ $sql[] = 'SELECT count(distinct(topic_id)) FROM `'.BB_BT_TRACKER_SNAP.'` WHERE s
$sql[] = 'SELECT count(distinct(poster_id)) FROM `'.BB_BT_TORRENTS.'`';
$sql[] = 'SELECT count(distinct(poster_id)) FROM `'.BB_BT_TORRENTS.'` WHERE reg_time >= UNIX_TIMESTAMP()-2592000';
foreach($sql as $i => $query) {
$res = DB()->query($query) or die('Oh shit!');
$row = mysql_fetch_row($res);
echo "<li>{$titles[$i]} - <b>{$row[0]}</b>";
echo '<html><body><head></head>';
echo '
<br /><br />
<table border="1" cellspacing="0" cellpadding="6" align="center">';
foreach ($sql as $i => $query)
{
$row = mysql_fetch_row(DB()->query($query));
echo "<tr><td>{$lang['TR_STATS'][$i]}</td><td><b>{$row[0]}</b></td>";
}
echo '</table>';
echo '<div align="center"><pre>';
if ($l = sys('la'))
{
$l = explode(' ', $l);
for ($i=0; $i < 3; $i++)
{
$l[$i] = round($l[$i], 1);
}
echo "\n\n<b>loadavg: </b>$l[0] $l[1] $l[2]\n\n";
}
echo 'gen time: <b>'. sprintf('%.3f', (array_sum(explode(' ', microtime())) - TIMESTART)) ."</b> sec\n";
echo '</pre></div>';
echo '</body></html>';

View file

@ -6,7 +6,7 @@ require(BB_ROOT .'common.php');
$user->session_start();
if (!IS_ADMIN) die('Unauthorized');
if (!IS_ADMIN) bb_die($lang['NOT_AUTHORISED']);
$peers_in_last_minutes = array(30, 15, 5, 1);
$peers_in_last_sec_limit = 300;
@ -79,7 +79,7 @@ ob_start('commify_ob');
echo '<html><body><head></head>';
echo '
<br /><br /><br />
<br /><br />
<table border="1" cellspacing="0" cellpadding="6" align="center">
<col width="40%">
<col width="60%">

View file

@ -1,4 +1,3 @@
<h1>{L_CONTROL_PANEL_TITLE}</h1>
<p>{L_CONTROL_PANEL_EXPLAIN}</p>
@ -189,15 +188,16 @@
</script>
<form method="post" name="attach_list" action="{S_MODE_ACTION}">
<table width="100%">
<table width="100%">
<tr>
<td align="right" nowrap="nowrap"><span class="med">{L_VIEW}:&nbsp;{S_VIEW_SELECT}&nbsp;&nbsp;{L_SORT_BY}:&nbsp;{S_MODE_SELECT}&nbsp;&nbsp;{L_ORDER}&nbsp;{S_ORDER_SELECT}&nbsp;&nbsp;
<td align="right" nowrap="nowrap">
<span class="med">{L_VIEW}:&nbsp;{S_VIEW_SELECT}&nbsp;&nbsp;{L_SORT_BY}:&nbsp;{S_MODE_SELECT}&nbsp;&nbsp;{L_ORDER}&nbsp;{S_ORDER_SELECT}&nbsp;&nbsp;
<input type="submit" name="submit" value="{L_SUBMIT}" class="liteoption" />
</span>
</td>
</tr>
</table>
<table class="forumline">
</table>
<table class="forumline">
<tr>
<th>#</th>
<th>{L_FILENAME}</th>
@ -230,7 +230,7 @@
<input type="submit" name="delete" value="{L_DELETE_MARKED}" class="liteoption" />
</td>
</tr>
</table>
</table>
<!-- BEGIN switch_user_based -->
{S_USER_HIDDEN}

View file

@ -175,4 +175,3 @@
</form>
<br clear="all" />

View file

@ -93,7 +93,7 @@ tr.hl-tr:hover td { background-color: #CFC !important; }
<td nowrap="nowrap" align="center">
<a href="admin_cron.php?mode=run&id={list.CRON_ID}"><img src="{SITE_URL}images/icon_sync.gif" alt="[Run]" title="{L_CRON_RUN}" /></a>
<a href="admin_cron.php?mode=edit&id={list.CRON_ID}"><img src="{SITE_URL}images/icon_edit.gif" alt="[Edit]" title="{L_CRON_EDIT_HEAD_EDIT}" /></a>
<a href="admin_cron.php?mode=delete&id={list.CRON_ID}"><img src="{SITE_URL}images/icon_delete.gif" alt="[Del]" title="{L_CRON_DEL}" onclick="return cfm('Вы действительно хотите удалить крон задачу?');" /></a>
<a href="admin_cron.php?mode=delete&id={list.CRON_ID}"><img src="{SITE_URL}images/icon_delete.gif" alt="[Del]" title="{L_CRON_DEL}" onclick="return cfm('{L_DELETE_JOB}');" /></a>
</td>
</tr>
<!-- END list -->

View file

@ -1,4 +1,3 @@
<h1>{L_DISALLOW_CONTROL}</h1>
<p>{L_DISALLOW_EXPLAIN}</p>

View file

@ -1,4 +1,3 @@
<!-- IF TPL_ATTACH_EXTENSIONS -->
<!--========================================================================-->
@ -217,4 +216,3 @@
<!-- ENDIF / TPL_ATTACH_EXTENSION_GROUPS_PERMISSIONS -->
<br clear="all" />

View file

@ -1,4 +1,3 @@
<h1>{L_FORUM_PRUNE}</h1>
<p>{L_FORUM_PRUNE_EXPLAIN}</p>
@ -36,7 +35,7 @@
<tr>
<td colspan="2" class="row1 tCenter">
<p>{L_PRUNE_TOPICS_NOT_POSTED} <input class="post" type="text" name="prunedays" size="4" /> {L_DAYS}</p>
<p class="med"><label><input class="post" type="checkbox" name="prune_all_topic_types" value="1" />Удалить все темы, включая объявления и прилепленные</label></p>
<p class="med"><label><input class="post" type="checkbox" name="prune_all_topic_types" value="1" />{L_DELETE_ALL_TOPICS}</label></p>
</td>
</tr>
<tr>

View file

@ -1,4 +1,3 @@
<!-- IF TPL_AUTH_FORUM_LIST -->
<!--========================================================================-->
@ -86,9 +85,8 @@
<input type="reset" value="{L_RESET}" name="reset" class="liteoption" />
</td>
</tr>
</table>
</table>
</form>
<!--========================================================================-->
<!-- ENDIF / TPL_AUTH_CAT -->

View file

@ -1,4 +1,3 @@
<!-- IF TPL_EDIT_FORUM -->
<!--========================================================================-->

View file

@ -1,4 +1,3 @@
<style type="text/css">
.log_msg { max-height: 100px; overflow: auto; }
table.log_filters { padding: 6px; width: 100%; }

View file

@ -1,4 +1,3 @@
<h1>{L_EMAIL}</h1>
<p>{L_MASS_EMAIL_EXPLAIN}</p>

View file

@ -1,4 +1,3 @@
<!-- IF TPL_RANKS_EDIT -->
<!--========================================================================-->

View file

@ -1,4 +1,3 @@
<!-- IF TPL_REBUILD_SEARCH_MAIN -->
<!--========================================================================-->
@ -256,4 +255,3 @@ function updateButton()
<!--========================================================================-->
<!-- ENDIF / TPL_REBUILD_SEARCH_PROGRESS -->

View file

@ -1,10 +1,9 @@
<!-- IF TPL_SMILE_MAIN -->
<!--========================================================================-->
<h1>{L_SMILEY_TITLE}</h1>
<P>{L_SMILE_DESC}</p>
<p>{L_SMILE_DESC}</p>
<br />
<form method="post" action="{S_SMILEY_ACTION}">
@ -115,4 +114,3 @@ function update_smiley(newimage)
<!--========================================================================-->
<!-- ENDIF / TPL_SMILE_IMPORT -->

View file

@ -1,4 +1,3 @@
<h1>{L_TERMS}</h1>
<p>{L_TERMS_EXPLAIN}</p>

View file

@ -323,4 +323,3 @@ function mark_changed (f_id, acl_id)
<!--========================================================================-->
<!-- ENDIF / TPL_SELECT_GROUP -->

View file

@ -1,4 +1,3 @@
<h1>{L_BAN_CONTROL}</h1>
<p>{L_BAN_EXPLAIN}</p>

View file

@ -1,4 +1,3 @@
<!-- IF TPL_ADMIN_WORDS_LIST -->
<!--========================================================================-->
@ -60,4 +59,3 @@
<!--========================================================================-->
<!-- ENDIF / TPL_ADMIN_WORDS_EDIT -->

View file

@ -1,4 +1,3 @@
<!-- IF TPL_ADMIN_FRAMESET -->
<!--========================================================================-->
<!DOCTYPE html>

View file

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Before After
Before After

View file

@ -1,4 +1,3 @@
<h1 class="pagetitle">{PAGE_TITLE}</h1>
<form action="{S_LOGIN_ACTION}" method="post">

View file

@ -19,8 +19,12 @@ function toggle_cbox (cb_id, tr_id)
<table width="100%">
<tr>
<td style="padding-left: 0;" class="nav"><a href="{U_INDEX}" class="nav">{T_INDEX}</a><span class="nav">
&raquo;&nbsp;<a href="{U_VIEW_FORUM}" class="nav">{FORUM_NAME}</a></span></td>
<td style="padding-left: 0;" class="nav">
<a href="{U_INDEX}" class="nav">{T_INDEX}</a>
<span class="nav">
&raquo;&nbsp;<a href="{U_VIEW_FORUM}" class="nav">{FORUM_NAME}</a>
</span>
</td>
</tr>
</table>

View file

@ -233,7 +233,7 @@ function go_to_page ()
<div id="page_header">
<div id="old-browser-warn" style="background: #FFF227; padding: 8px 0 10px; text-align: center; font-size: 14px; display: none; ">
<b>Вы используете устаревший браузер. Сайт может отображаться некорректно.</b>
<b>{L_OLD_BROWSER}</b>
</div>
<script>
if ( (typeof(window.opera) != "undefined" && window.opera.version() < 12) || (window.attachEvent && !window.addEventListener) /* IE < 9 */ ) {

View file

@ -1,4 +1,3 @@
<span class="maintitle">{PAGE_TITLE}</span>
<table width="100%">

View file

@ -269,7 +269,7 @@ ajax.callback.posts = function(data){
</tr>
<!-- IF AVATAR_DISALLOWED -->
<tr>
<td colspan="2" class="tCenter pad_12">Опция управления аватарой отключена за нарушение <a href="{$bb_cfg['terms_and_conditions_url']}"><b>правил форума</b></a></td>
<td colspan="2" class="tCenter pad_12">{AVATAR_DIS_EXPLAIN}</td>
</tr>
<!-- ELSE -->
<tr>
@ -279,10 +279,7 @@ ajax.callback.posts = function(data){
<col class="w40">
<tr>
<td>
Изображение под вашим именем в сообщениях<br />
Максимальные ШИРИНАхВЫСОТА {$bb_cfg['avatars']['max_width']}x{$bb_cfg['avatars']['max_height']} пикселов<br />
Максимальный объём {AVATARS_MAX_SIZE}<br />
{AVATAR_EXPLAIN}
<!-- IF $bb_cfg['avatars']['up_allowed'] -->
<div class="spacer_4"></div>
{L_UPLOAD_AVATAR_FILE}:

View file

@ -207,7 +207,7 @@ ajax.callback.gen_passkey = function(data){
<div id="avatar-img" class="mrg_4 med">
{AVATAR_IMG}
<!-- IF IS_ADMIN || PROFILE_USER -->
<p id="avatar-adm" class="med mrg_4">[ <a href="#" onclick="if (window.confirm('Удалить аватар?')){ ajax.avatar('delete', {PROFILE_USER_ID}); } return false;" class="adm">Удалить аватар</a> ]</p>
<p id="avatar-adm" class="med mrg_4">[ <a href="#" onclick="if (window.confirm('{L_AVATAR_DELETE}?')){ ajax.avatar('delete', {PROFILE_USER_ID}); } return false;" class="adm">{L_AVATAR_DELETE}</a> ]</p>
<!-- ENDIF -->
</div>
<p class="small mrg_4">

View file

@ -201,7 +201,7 @@ function poll_manage (mode, confirm_msg)
function build_poll_add_form (src_el)
{
$('#poll').empty().append( $('#poll-edit-tpl').contents() ).show();
$('#poll-legend').html('Добавить опрос');
$('#poll-legend').html('{L_ADD_POLL}');
$('#poll-edit-submit-btn').click(function(){
return poll_manage('poll_add');
});
@ -213,12 +213,12 @@ function build_poll_add_form (src_el)
<table class="med bCenter"><tr><td>
<fieldset style="padding: 0 8px;">
<legend id="poll-legend"></legend>
<div style="margin-top: 4px;">заголовок опроса:</div>
<div style="margin-top: 4px;">{L_NEW_POLL_M_TITLE}:</div>
<input id="poll-caption-inp" name="poll_caption" type="text" value="" class="bold" style="width: 550px;" />
<div class="med" style="margin-top: 4px;">варианты ответа:</div>
<div class="med" style="margin-top: 4px;">{L_NEW_POLL_M_VOTES}:</div>
<textarea id="poll-votes-inp" rows="8" cols="10" wrap="off" class="gen" style="width: 550px;"></textarea>
<div class="med mrg_4"><i>каждая строка соответствует одному варианту ответа (максимум: {$bb_cfg['max_poll_options']} вариантов)</i></div>
<div class="mrg_8 tCenter"><input id="poll-edit-submit-btn" type="button" value="Отправить" class="bold" style="width: 100px;" /></div>
<div class="med mrg_4"><i>{L_NEW_POLL_M_EXPLAIN}: {$bb_cfg['max_poll_options']})</i></div>
<div class="mrg_8 tCenter"><input id="poll-edit-submit-btn" type="button" value="{L_SUBMIT}" class="bold" style="width: 100px;" /></div>
</fieldset>
</td></tr></table>
</div>

View file

@ -1,4 +1,3 @@
<script type="text/javascript">
var bb_poll = {};
bb_poll.data = {POLL_VOTES_JS}; // [["заголовок", "result"], ...]
@ -66,7 +65,7 @@ function submit_vote ()
var $voted_id = $('input.vote-inp:checked');
if ($voted_id.length == 0) {
alert('Вы не выбрали, за что голосуете');
alert('{L_NEW_POLL_U_NOSEL}');
}
else {
$('#poll-mode').val('poll_vote');
@ -79,9 +78,9 @@ function submit_vote ()
function build_poll_edit_form ()
{
$('#poll').empty().append($('#poll-edit-tpl').contents());
$('#poll-legend').html('Изменить опрос');
$('#poll-legend').html('{L_NEW_POLL_U_CHANGE}');
$('#poll-edit-submit-btn').click(function(){
return poll_manage('poll_edit', 'Изменить опрос (старые результаты будут удалены)?');
return poll_manage('poll_edit', '{L_NEW_POLL_U_EDIT}?');
});
$('#poll-caption-inp').val( html2text(bb_poll.title) );
@ -131,10 +130,10 @@ function html2text (str)
<div id="vote-btn-a" class="mrg_8 tCenter">[ <a href="#" onclick="build_votes(); return false;" class="gen"><b>{L_SUBMIT_VOTE}</b></a> ]</div>
<div id="vote-btn-input" class="mrg_6 tCenter" style="display: none;"><input type="button" onclick="submit_vote(); return false;" value="{L_SUBMIT_VOTE}" class="bold" /></div>
<!-- ELSE -->
<div class="mrg_8 tCenter">[ <b>Опрос завершен</b> ]</div>
<div class="mrg_8 tCenter">[ <b>{L_NEW_POLL_END}</b> ]</div>
<!-- ENDIF -->
<div id="votes-sum-block" class="mrg_8 tCenter">Всего проголосовало: <span id="votes-sum-val"></span><b></b></div>
<div id="votes-sum-block" class="mrg_8 tCenter">{L_NEW_POLL_U_VOTED}: <span id="votes-sum-val"></span><b></b></div>
<!-- IF CAN_MANAGE_POLL -->
<div id="poll-manage" class="mrg_8 tCenter">
@ -142,9 +141,9 @@ function html2text (str)
<!-- IF POLL_IS_EDITABLE -->
[ <a href="#" onclick="return build_poll_edit_form();" class="med">{L_EDIT}</a> ]&nbsp;&nbsp;
<!-- IF POLL_IS_FINISHED -->
[ <a href="#" onclick="return poll_manage('poll_start', 'Включить опрос?');" class="med">Включить опрос</a> ]&nbsp;&nbsp;
[ <a href="#" onclick="return poll_manage('poll_start', '{L_NEW_POLL_U_START}?');" class="med">{L_NEW_POLL_U_START}</a> ]
<!-- ELSE -->
[ <a href="#" onclick="return poll_manage('poll_finish', 'Завершить опрос?');" class="med">Завершить опрос</a> ]&nbsp;&nbsp;
[ <a href="#" onclick="return poll_manage('poll_finish', '{L_NEW_POLL_U_END}?');" class="med">{L_NEW_POLL_U_END}</a> ]
<!-- ENDIF -->
<!-- ENDIF -->
</div>

View file

@ -460,10 +460,17 @@ if (!$set_default)
if ($tm =& $_REQUEST[$title_match_key] AND is_string($tm))
{
if ($tmp = mb_substr(trim($tm), 0, $title_match_max_len))
{
if ($bb_cfg['autocorrect_wkl'])
{
// Autocorrect wrong keyboard layout
$tlc = new Text_LangCorrect();
$title_match_val = $tlc->parse($tlc->parse($tmp, 1), 2);
}
else
{
$title_match_val = $tmp;
}
$title_match_sql = clean_text_match($title_match_val, true, false, false);
}
}