Додана українська локалізація інтерфейсу - начиная с данного момента, в движке официально будут поддерживаться три языка интерфейса (русский, украинский, английский). За предоставленную локализацию на украинский язык - спасибо Dr_Brown. Пользователям добавлена возможность указывать свой аккаунт Twitter в настройках профиля. Произведено переименование всех языков интерфейса в укороченный вариант. В config.php добавлена возможность настраивать список языков, доступных для выбора пользователю (возможность скрывать "шуточные" языки и т.п.). Опция в класс email, для возможности отправки писем в html. Исправления найденных ошибок. Для обновления баз данных существующих проектов, используйте файл r588-short_lang.php из папки upgrade. Папки с языковыми переменными можно просто переименовать по аналогии. Изменения вносились только в указанные переменные: $lang['ICQ'], $lang['SKYPE_ERROR'] и были добавлены две новые переменные: $lang['TWITTER'], $lang['TWITTER_ERROR']. git-svn-id: https://torrentpier2.googlecode.com/svn/trunk@588 a8ac35ab-4ca4-ca47-4c2d-a49a94f06293
This commit is contained in:
glix08@gmail.com 2014-06-17 22:15:03 +00:00
parent 9fff84bab9
commit ab3c480fe0
155 changed files with 4214 additions and 171 deletions

View file

@ -32,6 +32,7 @@ vasilich619
wint1000 (http://asmlocator.ru/)
Philstone (http://worldofminecraft.su/)
Nightwolf
nord51
********************************
** Прочая информация **

View file

@ -546,7 +546,7 @@ INSERT INTO `bb_config` VALUES ('bt_tor_browse_only_reg', '0');
INSERT INTO `bb_config` VALUES ('bt_unset_dltype_on_tor_unreg', '1');
INSERT INTO `bb_config` VALUES ('cron_last_check', '1211477514');
INSERT INTO `bb_config` VALUES ('default_dateformat', 'Y-m-d H:i');
INSERT INTO `bb_config` VALUES ('default_lang', 'russian');
INSERT INTO `bb_config` VALUES ('default_lang', 'ru');
INSERT INTO `bb_config` VALUES ('flood_interval', '15');
INSERT INTO `bb_config` VALUES ('hot_threshold', '300');
INSERT INTO `bb_config` VALUES ('login_reset_time', '30');
@ -1342,6 +1342,7 @@ CREATE TABLE IF NOT EXISTS `bb_users` (
`user_next_birthday_greeting` int(11) NOT NULL DEFAULT '0',
`user_email` varchar(255) NOT NULL DEFAULT '',
`user_skype` varchar(32) NOT NULL DEFAULT '',
`user_twitter` varchar(15) NOT NULL DEFAULT '',
`user_icq` varchar(15) NOT NULL DEFAULT '',
`user_website` varchar(100) NOT NULL DEFAULT '',
`user_from` varchar(100) NOT NULL DEFAULT '',
@ -1364,9 +1365,9 @@ CREATE TABLE IF NOT EXISTS `bb_users` (
-- Дамп данных таблицы `bb_users`
--
INSERT INTO `bb_users` VALUES (-1, 0, 'Guest', 'd41d8cd98f00b204e9800998ecf8427e', 0, 0, '0', 0, '0', 0, 0, 0.00, '', 0, 0, 0, 0, 0, '', 0, 0, 0, '', '', '', '', '', '', '', '', '', '', '', 0, 0, 'default');
INSERT INTO `bb_users` VALUES (2, 1, 'admin', 'c3284d0f94606de1fd2af172aba15bf3', 0, 0, '0', 0, '0', 1, 1, 4.00, '', 0, 0, 0, 304, 1, '', 0, 0, 0, 'admin@admin.com', '', '', '', '', '', '', '', '', '', '', 0, 0, 'default');
INSERT INTO `bb_users` VALUES (-746, 0, 'bot', 'd41d8cd98f00b204e9800998ecf8427e', 0, 0, '0', 0, '0', 0, 0, 0.00, '', 0, 0, 0, 144, 0, '', 0, 0, 0, 'bot@bot.bot', '', '', '', '', '', '', '', '', '', '', 0, 0, 'default');
INSERT INTO `bb_users` VALUES (-1, 0, 'Guest', 'd41d8cd98f00b204e9800998ecf8427e', 0, 0, '0', 0, '0', 0, 0, 0.00, '', 0, 0, 0, 0, 0, '', 0, 0, 0, '', '', '', '', '', '', '', '', '', '', '', '', 0, 0, 'default');
INSERT INTO `bb_users` VALUES (2, 1, 'admin', 'c3284d0f94606de1fd2af172aba15bf3', 0, 0, '0', 0, '0', 1, 1, 4.00, '', 0, 0, 0, 304, 1, '', 0, 0, 0, 'admin@admin.com', '', '', '', '', '', '', '', '', '', '', '', 0, 0, 'default');
INSERT INTO `bb_users` VALUES (-746, 0, 'bot', 'd41d8cd98f00b204e9800998ecf8427e', 0, 0, '0', 0, '0', 0, 0, 0.00, '', 0, 0, 0, 144, 0, '', 0, 0, 0, 'bot@bot.bot', '', '', '', '', '', '', '', '', '', '', '', 0, 0, 'default');
-- --------------------------------------------------------

View file

@ -93,9 +93,10 @@ function convert_user($user)
"user_email" => $user['email'],
"user_website" => $user['website'],
"user_icq" => $user['icq'],
"user_skype" => $user['skype'], // Added
"user_gender" => $user['gender'], // Added
"user_birthday" => $user['user_birthday'], // Added
"user_skype" => $user['skype'],
"user_twitter" => $user['twitter'],
"user_gender" => $user['gender'],
"user_birthday" => $user['user_birthday'],
);
$columns = $values = array();
@ -250,7 +251,7 @@ function append_images($tor)
}
if(!empty($tor['image2']))
{
$screens = '[spoiler="Ñêðèíøîòû"][img]'.make_img_path($tor['image2'])."[/img][/spoiler]";
$screens = '[spoiler="Скриншоты"][img]'.make_img_path($tor['image2'])."[/img][/spoiler]";
}
break;
case 'sky':
@ -261,7 +262,7 @@ function append_images($tor)
$has_screens = !empty($tor['screenshot1']) || !empty($tor['screenshot2']) || !empty($tor['screenshot3']) || !empty($tor['screenshot4']);
if ($has_screens)
{
$screens .= '[spoiler="Ñêðèíøîòû"]';
$screens .= '[spoiler="Скриншоты"]';
for ($i = 1; $i<=4; $i++)
{
if(!empty($tor['screenshot'.$i]))

68
readme.txt Normal file
View file

@ -0,0 +1,68 @@
********************
** Установка **
********************
Распаковываем на сервер содержимое папки upload.
Заходим в phpmyadmin, открываем или создаем новую базу, потом импортируем дамп (install/sql/mysql.sql)
Правим файл конфигурации config.php (изменяем данные входа в БД, остальное по усмотрению)
* Файлы favicon.ico (меняем на свою иконку, если есть), robots.txt(допуск или запрет ботам поисковиков к серверу, блокирует не все, меняем адреса в строках Host: и Sitemap: на свои адреса)
************************************
** Права доступа на папки и файлы **
************************************
Устанавливаем права доступа на данные папки 777, на файлы внутри этих папок (кроме .htaccess) 666:
- ajax
- ajax/html
- cache
- cache/filecache
- cache/filecache/bb_cache
- cache/filecache/bb_cap_sid
- cache/filecache/bb_login_err
- cache/filecache/bb_poll_data
- cache/filecache/datastore
- cache/filecache/session_cache
- cache/filecache/tr_cache
- files
- files/thumbs
- images
- images/avatars
- images/captcha
- images/logo
- images/ranks
- images/smiles
- log
- triggers
************************************
** Необходимые значения в php.ini **
************************************
mbstring.internal_encoding = UTF-8
magic_quotes_gpc = Off
************************************
** Необходимые модули для php **
************************************
php5-tidy
php5-sqlite
************************************
** Необходимый запуск cron.php **
************************************
Подробнее в теме http://torrentpier.me/threads/Отвязка-запуск-крона.52/
************************************
** Часто задаваемые вопросы **
************************************
http://torrentpier.me/threads/faq-для-новичков.260/
************************************
** Где задать вопрос **
************************************
http://torrentpier.me/forums/Основные-вопросы-по-torrentpier-ii.10/

View file

@ -2,7 +2,7 @@
define('IN_FORUM', true);
define('BB_ROOT', './');
require(BB_ROOT .'common.php');
require(BB_ROOT . 'common.php');
$user->session_start();
@ -11,8 +11,7 @@ if (!IS_SUPER_ADMIN) bb_die($lang['ONLY_FOR_SUPER_ADMIN']);
$confirm = request_var('confirm', '');
if ($confirm)
{
if ($confirm) {
DB()->query("
CREATE TEMPORARY TABLE tmp_buf_dlstatus (
user_id mediumint(9) NOT NULL default '0',
@ -45,9 +44,7 @@ if ($confirm)
DB()->query("DROP TABLE IF EXISTS bb_bt_dlstatus_new");
bb_die('<h1 style="color: green">База данных обновлена</h1>');
}
else
{
} else {
$msg = '<form method="POST">';
$msg .= '<h1 style="color: red">!!! Перед тем как нажать на кнопку, сделайте бекап базы данных !!!</h1><br />';
$msg .= '<input type="submit" name="confirm" value="Начать обновление Базы Данных (R571)" style="height: 30px; font:bold 14px Arial, Helvetica, sans-serif;" />';

View file

@ -2,7 +2,7 @@
define('IN_FORUM', true);
define('BB_ROOT', './');
require(BB_ROOT .'common.php');
require(BB_ROOT . 'common.php');
$user->session_start();
@ -11,8 +11,7 @@ if (!IS_SUPER_ADMIN) bb_die($lang['ONLY_FOR_SUPER_ADMIN']);
$confirm = request_var('confirm', '');
if ($confirm)
{
if ($confirm) {
DB()->query("
CREATE TABLE IF NOT EXISTS `bb_poll_users` (
`topic_id` int(10) unsigned NOT NULL,
@ -67,9 +66,7 @@ if ($confirm)
DB()->query("DROP TABLE IF EXISTS bb_vote_voters");
bb_die('<h1 style="color: green">База данных обновлена</h1>');
}
else
{
} else {
$msg = '<form method="POST">';
$msg .= '<h1 style="color: red">!!! Перед тем как нажать на кнопку, сделайте бекап базы данных !!!</h1><br />';
$msg .= '<input type="submit" name="confirm" value="Начать обновление Базы Данных (R575)" style="height: 30px; font:bold 14px Arial, Helvetica, sans-serif;" />';

View file

@ -2,10 +2,10 @@
define('IN_FORUM', true);
define('BB_ROOT', './');
require(BB_ROOT .'common.php');
require(INC_DIR .'functions_upload.php');
require(BB_ROOT . 'common.php');
require(INC_DIR . 'functions_upload.php');
while (@ob_end_flush());
while (@ob_end_flush()) ;
ob_implicit_flush();
error_reporting(E_ALL);
ini_set('display_errors', 1);
@ -17,57 +17,50 @@ if (!IS_SUPER_ADMIN) bb_die($lang['ONLY_FOR_SUPER_ADMIN']);
$confirm = request_var('confirm', '');
if ($confirm)
{
DB()->query("ALTER TABLE ". BB_USERS ." ADD `avatar_ext_id` TINYINT( 4 ) NOT NULL AFTER `user_rank`");
if ($confirm) {
DB()->query("ALTER TABLE " . BB_USERS . " ADD `avatar_ext_id` TINYINT( 4 ) NOT NULL AFTER `user_rank`");
$rows_per_cycle = 10000;
$row = DB()->fetch_row("SELECT MAX(user_id) AS end_id FROM ". BB_USERS);
$end_id = (int) $row['end_id'];
$row = DB()->fetch_row("SELECT MAX(user_id) AS end_id FROM " . BB_USERS);
$end_id = (int)$row['end_id'];
$start = $avatars_ok = $avatars_err = 0;
echo "<pre>\n";
while (true)
{
while (true) {
set_time_limit(600);
echo "$start [ $avatars_ok / $avatars_err ]\n";
$end = $start + $rows_per_cycle - 1;
$sql = "
SELECT user_id, avatar_ext_id, user_avatar
FROM ". BB_USERS ."
FROM " . BB_USERS . "
WHERE user_avatar != ''
AND avatar_ext_id = 0
AND user_id BETWEEN $start AND $end
ORDER BY NULL
";
foreach (DB()->fetch_rowset($sql) as $row)
{
foreach (DB()->fetch_rowset($sql) as $row) {
$FILE = array(
'name' => '',
'type' => '',
'size' => 0,
'tmp_name' => BB_ROOT . $bb_cfg['avatar_path'] .'/'. basename($row['user_avatar']),
'tmp_name' => BB_ROOT . $bb_cfg['avatar_path'] . '/' . basename($row['user_avatar']),
'error' => 0,
);
$upload = new upload_common();
if ($upload->init($bb_cfg['avatars'], $FILE, false) AND $upload->store('avatar', $row))
{
DB()->query("UPDATE ". BB_USERS ." SET avatar_ext_id = {$upload->file_ext_id} WHERE user_id = {$row['user_id']} LIMIT 1");
if ($upload->init($bb_cfg['avatars'], $FILE, false) AND $upload->store('avatar', $row)) {
DB()->query("UPDATE " . BB_USERS . " SET avatar_ext_id = {$upload->file_ext_id} WHERE user_id = {$row['user_id']} LIMIT 1");
$avatars_ok++;
}
else
{
} else {
echo "{$row['user_id']}: ", join("\n{$row['user_id']}: ", $upload->errors), "\n";
$avatars_err++;
}
}
if ($end > $end_id)
{
if ($end > $end_id) {
break;
}
$start += $rows_per_cycle;
@ -76,15 +69,13 @@ if ($confirm)
echo "---------- База данных успешно обновлена. Аватары указанных выше пользователей перенесены не были. ----------\n";
DB()->query("ALTER TABLE ". BB_USERS ." DROP `user_avatar`");
DB()->query("ALTER TABLE ". BB_USERS ." DROP `user_avatar_type`");
}
else
{
DB()->query("ALTER TABLE " . BB_USERS . " DROP `user_avatar`");
DB()->query("ALTER TABLE " . BB_USERS . " DROP `user_avatar_type`");
} else {
$msg = '<form method="POST">';
$msg .= '<h1 style="color: red">Перед тем как нажать на кнопку, сделайте бекап базы данных! В ходе обновления базы данных, произойдет автоматическая конвертация имеющихся аватаров пользователей
по новому алгоритму. Для конвертации аватарка пользователя должна соответствовать текущим значениям из конфига: ширина не более '.$bb_cfg['avatars']['max_width'].' пикселов, высота не более '.$bb_cfg['avatars']['max_height'].' пикселов
и объем не более '.$bb_cfg['avatars']['max_size'].' байт. Если эти условия не соблюдены - аватарка пользователя не будет конвертирована и пользователю придется залить ее заново! Если вы хотите поправить указанные
по новому алгоритму. Для конвертации аватарка пользователя должна соответствовать текущим значениям из конфига: ширина не более ' . $bb_cfg['avatars']['max_width'] . ' пикселов, высота не более ' . $bb_cfg['avatars']['max_height'] . ' пикселов
и объем не более ' . $bb_cfg['avatars']['max_size'] . ' байт. Если эти условия не соблюдены - аватарка пользователя не будет конвертирована и пользователю придется залить ее заново! Если вы хотите поправить указанные
значения - ПЕРЕД обновлением базы данных сделайте это в config.php!</h1><br />';
$msg .= '<input type="submit" name="confirm" value="Начать обновление Базы Данных (R583)" style="height: 30px; font:bold 14px Arial, Helvetica, sans-serif;" />';
$msg .= '</form>';

View file

@ -0,0 +1,52 @@
<?php
define('IN_FORUM', true);
define('BB_ROOT', './');
require(BB_ROOT . 'common.php');
while (@ob_end_flush()) ;
ob_implicit_flush();
error_reporting(E_ALL);
ini_set('display_errors', 1);
$user->session_start();
set_die_append_msg();
if (!IS_SUPER_ADMIN) bb_die($lang['ONLY_FOR_SUPER_ADMIN']);
$confirm = request_var('confirm', '');
if ($confirm) {
DB()->query("UPDATE " . BB_CONFIG . " SET `config_value` = 'ru' WHERE `config_name` = 'default_lang'");
DB()->query("ALTER TABLE " . BB_USERS . " ADD `user_twitter` varchar (15) NOT NULL DEFAULT '' AFTER `user_skype`");
$rows_per_cycle = 10000;
$row = DB()->fetch_row("SELECT MAX(user_id) AS end_id FROM " . BB_USERS);
$end_id = (int)$row['end_id'];
$start = 0;
while (true) {
set_time_limit(600);
$end = $start + $rows_per_cycle - 1;
DB()->query("UPDATE " . BB_USERS . " SET user_lang = 'ru' WHERE user_lang = 'russian'");
DB()->query("UPDATE " . BB_USERS . " SET user_lang = 'en' WHERE user_lang = 'english'");
if ($end > $end_id) {
break;
}
$start += $rows_per_cycle;
sleep(1);
}
bb_die("База данных успешно обновлена. Можно приступать к обновлению файлов. Не забудьте удалить этот файл.");
} else {
$msg = '<form method="POST">';
$msg .= '<h1 style="color: red">Перед тем как нажать на кнопку, сделайте бекап базы данных! В ходе обновления базы данных, произойдет автоматическая конвертация текущих языков интерфейса пользователей
на новое именование, а также будет добавлено поле в базу данных пользователей, для их Twitter-аккаунтов. После этого, вам можно будет приступать к обновлению файлов.</h1><br />';
$msg .= '<input type="submit" name="confirm" value="Начать обновление Базы Данных (R588)" style="height: 30px; font:bold 14px Arial, Helvetica, sans-serif;" />';
$msg .= '</form>';
bb_die($msg);
}

View file

@ -143,7 +143,7 @@ switch($mode)
'TOPICS_PER_PAGE' => $new['topics_per_page'],
'POSTS_PER_PAGE' => $new['posts_per_page'],
'HOT_TOPIC' => $new['hot_threshold'],
'LANG_SELECT' => language_select($new['default_lang'], 'default_lang', 'language'),
'LANG_SELECT' => language_select($new['default_lang'], 'language'),
'DEFAULT_DATEFORMAT' => $new['default_dateformat'],
'TIMEZONE_SELECT' => tz_select($new['board_timezone'], 'board_timezone'),
'MAX_LOGIN_ATTEMPTS' => $new['max_login_attempts'],

View file

@ -904,6 +904,10 @@ else
$text = sprintf($lang['SEARCH_FOR_USERFIELD_SKYPE'],$text);
$field = 'user_skype';
break;
case 'twitter':
$text = sprintf($lang['SEARCH_FOR_USERFIELD_TWITTER'],$text);
$field = 'user_twitter';
break;
case 'website':
$text = sprintf($lang['SEARCH_FOR_USERFIELD_WEBSITE'],$text);
$field = 'user_website';

View file

@ -109,6 +109,14 @@ switch ($field)
$this->response['new_value'] = $this->request['value'];
break;
case 'user_twitter':
if ($value && !preg_match("#^[a-zA-Z0-9_]{1,15}$#", $value))
{
$this->ajax_die($lang['TWITTER_ERROR']);
}
$this->response['new_value'] = $this->request['value'];
break;
case 'user_from':
case 'user_occ':
case 'user_interests':

View file

@ -21,13 +21,13 @@ function attach_mod_get_lang($language_file)
global $attach_config, $bb_cfg;
$language = $bb_cfg['default_lang'];
if (!file_exists(LANG_ROOT_DIR ."lang_$language/$language_file.php"))
if (!file_exists(LANG_ROOT_DIR ."$language/$language_file.php"))
{
$language = $attach_config['board_lang'];
if (!file_exists(LANG_ROOT_DIR ."lang_$language/$language_file.php"))
if (!file_exists(LANG_ROOT_DIR ."$language/$language_file.php"))
{
message_die(GENERAL_MESSAGE, 'Attachment Mod language file does not exist: language/lang_' . $language . '/' . $language_file . '.php');
message_die(GENERAL_MESSAGE, 'Attachment Mod language file does not exist: language/' . $language . '/' . $language_file . '.php');
}
else
{

View file

@ -55,8 +55,8 @@ $domain_name = (!empty($_SERVER['SERVER_NAME'])) ? $_SERVER['SERVER_NAME'] : $do
// Increase number of revision after update
$bb_cfg['tp_version'] = '2.6 (RC)';
$bb_cfg['tp_release_date'] = '15-06-2014';
$bb_cfg['tp_release_state'] = 'R587';
$bb_cfg['tp_release_date'] = '18-06-2014';
$bb_cfg['tp_release_state'] = 'R588';
// Database
$charset = 'utf8';
@ -253,21 +253,34 @@ if (!empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && $bb_cfg['auto_language'])
{
if (substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2) == 'ru')
{
$bb_cfg['default_lang_dir'] = LANG_ROOT_DIR .'lang_russian/';
$bb_cfg['default_lang'] = 'russian';
$bb_cfg['default_lang_dir'] = LANG_ROOT_DIR .'ru/';
$bb_cfg['default_lang'] = 'ru';
}
else if (substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2) == 'ua')
{
$bb_cfg['default_lang_dir'] = LANG_ROOT_DIR .'ua/';
$bb_cfg['default_lang'] = 'ua';
}
else
{
$bb_cfg['default_lang_dir'] = LANG_ROOT_DIR .'lang_english/';
$bb_cfg['default_lang'] = 'english';
$bb_cfg['default_lang_dir'] = LANG_ROOT_DIR .'en/';
$bb_cfg['default_lang'] = 'en';
}
}
else
{
if (isset($bb_cfg['default_lang']) && $bb_cfg['default_lang'] == 'russian') $bb_cfg['default_lang_dir'] = LANG_ROOT_DIR .'lang_russian/';
else $bb_cfg['default_lang_dir'] = LANG_ROOT_DIR .'lang_english/';
if (isset($bb_cfg['default_lang']) && $bb_cfg['default_lang'] == 'ru') $bb_cfg['default_lang_dir'] = LANG_ROOT_DIR .'ru/';
else if (isset($bb_cfg['default_lang']) && $bb_cfg['default_lang'] == 'ua') $bb_cfg['default_lang_dir'] = LANG_ROOT_DIR .'ua/';
else $bb_cfg['default_lang_dir'] = LANG_ROOT_DIR .'en/';
}
$bb_cfg['languages'] = array(
// 'folder' => 'Name',
'ru' => 'Русский',
'ua' => 'Український',
'en' => 'English',
);
// Templates
define('ADMIN_TPL_DIR', TEMPLATES_DIR .'/admin/');

View file

@ -96,7 +96,7 @@ class sql_db
$server = (DBG_USER) ? $this->cfg['dbhost'] : '';
header("HTTP/1.0 503 Service Unavailable");
bb_log(' ', "db_err/connect_failed_{$this->cfg['dbhost']}");
die("Could not connect to the server $server");
die("Could not connect to mysql server $server");
}
register_shutdown_function(array(&$this, 'close'));

View file

@ -98,11 +98,11 @@ class emailer
if (empty($this->tpl_msg[$template_lang . $template_file]))
{
$tpl_file = LANG_ROOT_DIR ."lang_$template_lang/email/$template_file.tpl";
$tpl_file = LANG_ROOT_DIR ."$template_lang/email/$template_file.tpl";
if (!@file_exists(@bb_realpath($tpl_file)))
{
$tpl_file = LANG_ROOT_DIR ."lang_{$bb_cfg['default_lang']}/email/$template_file.tpl";
$tpl_file = LANG_ROOT_DIR ."{$bb_cfg['default_lang']}/email/$template_file.tpl";
if (!@file_exists(@bb_realpath($tpl_file)))
{
@ -131,7 +131,7 @@ class emailer
}
// Send the mail out to the recipients set previously in var $this->address
function send ()
function send ($email_format = 'text')
{
global $bb_cfg, $lang;
@ -196,7 +196,8 @@ class emailer
$bcc = (@count($this->addresses['bcc'])) ? implode(', ', $this->addresses['bcc']) : '';
// Build header
$this->extra_headers = (($this->reply_to != '') ? "Reply-to: $this->reply_to\n" : '') . (($this->from != '') ? "From: $this->from\n" : "From: " . $bb_cfg['board_email'] . "\n") . "Return-Path: " . $bb_cfg['board_email'] . "\nMessage-ID: <" . md5(uniqid(TIMENOW)) . "@" . $bb_cfg['server_name'] . ">\nMIME-Version: 1.0\nContent-type: text/plain; charset=" . $this->encoding . "\nContent-transfer-encoding: 8bit\nDate: " . date('r', TIMENOW) . "\nX-Priority: 0\nX-MSMail-Priority: Normal\nX-Mailer: Microsoft Office Outlook, Build 11.0.5510\nX-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441\nX-Sender: " . $bb_cfg['board_email'] . "\n" . $this->extra_headers . (($cc != '') ? "Cc: $cc\n" : '') . (($bcc != '') ? "Bcc: $bcc\n" : '');
$type = ($email_format == 'html') ? 'html' : 'plain';
$this->extra_headers = (($this->reply_to != '') ? "Reply-to: $this->reply_to\n" : '') . (($this->from != '') ? "From: $this->from\n" : "From: " . $bb_cfg['board_email'] . "\n") . "Return-Path: " . $bb_cfg['board_email'] . "\nMessage-ID: <" . md5(uniqid(TIMENOW)) . "@" . $bb_cfg['server_name'] . ">\nMIME-Version: 1.0\nContent-type: text/$type; charset=" . $this->encoding . "\nContent-transfer-encoding: 8bit\nDate: " . date('r', TIMENOW) . "\nX-Priority: 0\nX-MSMail-Priority: Normal\nX-Mailer: Microsoft Office Outlook, Build 11.0.5510\nX-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441\nX-Sender: " . $bb_cfg['board_email'] . "\n" . $this->extra_headers . (($cc != '') ? "Cc: $cc\n" : '') . (($bcc != '') ? "Bcc: $bcc\n" : '');
// Send message
if ($this->use_smtp)

View file

@ -1567,7 +1567,7 @@ function bb_date ($gmepoch, $format = false, $tz = null)
global $bb_cfg, $lang, $userdata;
if (!$format) $format = $bb_cfg['default_dateformat'];
if (empty($lang)) require_once($bb_cfg['default_lang_dir'] .'lang_main.php');
if (empty($lang)) require_once($bb_cfg['default_lang_dir'] .'main.php');
if (is_null($tz) || $tz == 'false')
{
@ -1918,7 +1918,7 @@ function message_die ($msg_code, $msg_text = '', $msg_title = '', $err_line = ''
if (empty($lang))
{
require($bb_cfg['default_lang_dir'] .'lang_main.php');
require($bb_cfg['default_lang_dir'] .'main.php');
}
if (empty($userdata) && ($msg_code == GENERAL_MESSAGE || $msg_code == GENERAL_ERROR))
{

View file

@ -117,7 +117,7 @@ function report_modules($mode = 'all', $module = null)
// Include language file
$lang = array();
$lang_file = LANG_ROOT_DIR . "lang_{$bb_cfg['default_lang']}/report_hack/lang_{$row['report_module_name']}.php";
$lang_file = LANG_ROOT_DIR . "{$bb_cfg['default_lang']}/report_hack/{$row['report_module_name']}.php";
if (file_exists($lang_file)) {
include($lang_file);
}
@ -504,7 +504,7 @@ function &report_notify_lang($language)
global $lang;
} else {
$lang = array();
include(LANG_ROOT_DIR . "lang_$language/lang_main.php");
include(LANG_ROOT_DIR . "$language/main.php");
}
$languages[$language] = $lang;

View file

@ -87,7 +87,7 @@ function report_modules_inactive($mode = 'all', $module = null)
// Include language file
$lang = array();
$lang_file = LANG_ROOT_DIR . "lang_{$bb_cfg['default_lang']}/report_hack/lang_$module_name.php";
$lang_file = LANG_ROOT_DIR . "{$bb_cfg['default_lang']}/report_hack/$module_name.php";
if (file_exists($lang_file)) {
include($lang_file);
}

View file

@ -3,41 +3,23 @@
if (!defined('BB_ROOT')) die(basename(__FILE__));
//
// Pick a language, any language
// Languages
//
function language_select ($default, $select_name = "language", $dirname="language")
function language_select ($default_lang, $select_name = 'language')
{
global $bb_cfg;
if(!$default) $default = $bb_cfg['default_lang'];
$dir = opendir(BB_ROOT . $dirname);
$lang = array();
while ( $file = readdir($dir) )
$lang_select = '<select name="'. $select_name .'">';
$x = 0;
foreach ($bb_cfg['languages'] as $folder => $name)
{
if (preg_match('#^lang_#i', $file) && !is_file(@bb_realpath(BB_ROOT . $dirname . '/' . $file)) && !is_link(@bb_realpath(BB_ROOT . $dirname . '/' . $file)))
{
$filename = trim(str_replace("lang_", "", $file));
$displayname = preg_replace("/^(.*?)_(.*)$/", "\\1 [ \\2 ]", $filename);
$displayname = preg_replace("/\[(.*?)_(.*)\]/", "[ \\1 - \\2 ]", $displayname);
$lang[$displayname] = $filename;
}
}
closedir($dir);
@asort($lang);
@reset($lang);
$lang_select = '<select name="' . $select_name . '">';
while ( list($displayname, $filename) = @each($lang) )
{
$selected = ( strtolower($default) == strtolower($filename) ) ? ' selected="selected"' : '';
$lang_select .= '<option value="' . $filename . '"' . $selected . '>' . ucwords($displayname) . '</option>';
$selected = '';
if ($folder == $default_lang) $selected = ' selected="selected"';
$lang_select .= '<option value="'. $folder .'"'. $selected .'>'. $name .'</option>';
$x++;
}
$lang_select .= '</select>';
return $lang_select;
return ($x > 1) ? $lang_select : '';
}
//
@ -79,6 +61,6 @@ function templates_select ($default_style, $select_name = 'tpl_name')
$templates_select .= '<option value="'. $folder .'"'. $selected .'>'. $name .'</option>';
$x++;
}
$templates_select .= '</select>&nbsp;';
$templates_select .= '</select>';
return ($x > 1) ? $templates_select : '';
}

View file

@ -591,15 +591,15 @@ class user_common
if (defined('LANG_DIR')) return; // prevent multiple calling
define('DEFAULT_LANG_DIR', LANG_ROOT_DIR .'lang_'. $bb_cfg['default_lang'] .'/');
define('ENGLISH_LANG_DIR', LANG_ROOT_DIR .'lang_english/');
define('DEFAULT_LANG_DIR', LANG_ROOT_DIR . $bb_cfg['default_lang'] .'/');
define('ENGLISH_LANG_DIR', LANG_ROOT_DIR .'en/');
if ($this->data['user_id'] != GUEST_UID)
{
if ($this->data['user_lang'] && $this->data['user_lang'] != $bb_cfg['default_lang'])
{
$bb_cfg['default_lang'] = basename($this->data['user_lang']);
define('LANG_DIR', LANG_ROOT_DIR .'lang_'. $bb_cfg['default_lang'] .'/');
define('LANG_DIR', LANG_ROOT_DIR . $bb_cfg['default_lang'] .'/');
}
if (isset($this->data['user_timezone']))
@ -613,7 +613,7 @@ class user_common
if (!defined('LANG_DIR')) define('LANG_DIR', DEFAULT_LANG_DIR);
require(LANG_DIR .'lang_main.php');
require(LANG_DIR .'main.php');
$theme = setup_style();
$DeltaTime = new Date_Delta();

View file

@ -112,6 +112,7 @@ switch ($mode)
'avatar_ext_id' => true,
'user_icq' => true,
'user_skype' => true,
'user_twitter' => true,
'user_website' => true,
'user_from' => true,
'user_sig' => true,
@ -557,6 +558,23 @@ foreach ($profile_fields as $field => $can_edit)
$tp_data['USER_SKYPE'] = $pr_data['user_skype'];
break;
/**
* Twitter
*/
case 'user_twitter':
$twitter = isset($_POST['user_twitter']) ? (string) $_POST['user_twitter'] : $pr_data['user_twitter'];
if ($submit && $twitter != $pr_data['user_twitter'])
{
if ($twitter != '' && !preg_match("#^[a-zA-Z0-9_]{1,15}$#", $twitter))
{
$errors[] = $lang['TWITTER_ERROR'];
}
$pr_data['user_twitter'] = $twitter;
$db_data['user_twitter'] = (string) $twitter;
}
$tp_data['USER_TWITTER'] = $pr_data['user_twitter'];
break;
/**
* Выбор шаблона (edit)
*/
@ -772,8 +790,8 @@ $template->assign_vars(array(
'SHOW_PASS' => ($adm_edit || ($mode == 'register' && IS_ADMIN)),
'CAPTCHA_HTML' => ($need_captcha) ? CAPTCHA()->get_html() : '',
'LANGUAGE_SELECT' => language_select($user_lang, 'user_lang'),
'TIMEZONE_SELECT' => tz_select($user_timezone, 'user_timezone'),
'LANGUAGE_SELECT' => language_select($pr_data['user_lang'], 'user_lang'),
'TIMEZONE_SELECT' => tz_select($pr_data['user_timezone'], 'user_timezone'),
'USER_TIMEZONE' => $pr_data['user_timezone'],
'AVATAR_EXPLAIN' => sprintf($lang['AVATAR_EXPLAIN'], $bb_cfg['avatars']['max_width'], $bb_cfg['avatars']['max_height'], (round($bb_cfg['avatars']['max_size'] / 1024))),

View file

@ -119,6 +119,7 @@ $template->assign_vars(array(
'OCCUPATION' => $profiledata['user_occ'],
'INTERESTS' => $profiledata['user_interests'],
'SKYPE' => $profiledata['user_skype'],
'TWITTER' => $profiledata['user_twitter'],
'USER_POINTS' => $profiledata['user_points'],
'GENDER' => ($bb_cfg['gender'] && $profiledata['user_gender']) ? $lang['GENDER_SELECT'][$profiledata['user_gender']] : '',
'BIRTHDAY' => ($bb_cfg['birthday_enabled'] && $profiledata['user_birthday'] != '0000-00-00') ? date('Y-m-d', strtotime($profiledata['user_birthday'])) : '',

View file

@ -72,9 +72,13 @@ $lang['VIEW_LATEST_POST'] = 'View latest post';
$lang['VIEW_NEWEST_POST'] = 'View newest post';
$lang['PAGE_OF'] = 'Page <b>%d</b> of <b>%s</b>';
$lang['ICQ'] = 'ICQ Number';
$lang['ICQ'] = 'ICQ';
$lang['SKYPE'] = 'Skype';
$lang['SKYPE_ERROR'] = 'You entered an invalid login';
$lang['SKYPE_ERROR'] = 'You entered an invalid Skype login';
$lang['TWITTER'] = 'Twitter';
$lang['TWITTER_ERROR'] = 'You entered an invalid Twitter login';
$lang['FORUM_INDEX'] = '%s Forum Index'; // eg. sitename Forum Index, %s can be removed if you prefer
@ -1037,7 +1041,7 @@ $lang['SORRY_AUTH_VIEW_ATTACH'] = 'Sorry but you are not authorized to view or d
// Viewtopic -> Display of Attachments
$lang['DESCRIPTION'] = 'Description'; // used in Administration Panel too...
$lang['DOWNLOAD'] = 'Download'; // this Language Variable is defined in lang_admin.php too, but we are unable to access it from the main Language File
$lang['DOWNLOAD'] = 'Download'; // this Language Variable is defined in admin.php too, but we are unable to access it from the main Language File
$lang['FILESIZE'] = 'Filesize';
$lang['VIEWED'] = 'Viewed';
$lang['DOWNLOAD_NUMBER'] = '%d times'; // replace %d with count
@ -1373,7 +1377,7 @@ $lang['HIDDEN'] = 'Hidden';
// That's all, Folks!
// -------------------------------------------------
// from lang_admin
// from admin
$lang['NOT_ADMIN'] = 'You are not authorised to administer this board';
$lang['COOKIES_REQUIRED'] = 'Cookies must be enabled!';
@ -2961,6 +2965,7 @@ $lang['SEARCH_FOR_POSTCOUNT_RANGE'] = 'Searching for users with a post count bet
$lang['SEARCH_FOR_POSTCOUNT_EQUALS'] = 'Searching for users with a post count value of %d';
$lang['SEARCH_FOR_USERFIELD_ICQ'] = 'Searching for users with a ICQ address matching %s';
$lang['SEARCH_FOR_USERFIELD_SKYPE'] = 'Searching for users with an Skype matching %s';
$lang['SEARCH_FOR_USERFIELD_TWITTER'] = 'Searching for users with an Twitter matching %s';
$lang['SEARCH_FOR_USERFIELD_WEBSITE'] = 'Searching for users with an Website matching %s';
$lang['SEARCH_FOR_USERFIELD_LOCATION'] = 'Searching for users with a Location matching %s';
$lang['SEARCH_FOR_USERFIELD_INTERESTS'] = 'Searching for users with their Interests field matching %s';

View file

@ -72,8 +72,12 @@ $lang['VIEW_NEWEST_POST'] = 'Перейти к первому непрочита
$lang['PAGE_OF'] = 'Страница <b>%d</b> из <b>%s</b>';
$lang['ICQ'] = 'ICQ';
$lang['SKYPE'] = 'Skype';
$lang['SKYPE_ERROR'] = 'Вы ввели некорректный логин';
$lang['SKYPE_ERROR'] = 'Вы ввели некорректный логин Skype';
$lang['TWITTER'] = 'Twitter';
$lang['TWITTER_ERROR'] = 'Вы ввели некорректный логин Twitter';
$lang['FORUM_INDEX'] = 'Список форумов %s';
@ -1041,7 +1045,7 @@ $lang['SORRY_AUTH_VIEW_ATTACH'] = 'Вы <b>не можете</b> просмат
// Viewtopic -> Display of Attachments
$lang['DESCRIPTION'] = 'Описание'; // used in Administration Panel too...
$lang['DOWNLOAD'] = 'Скачать'; // this Language Variable is defined in lang_admin.php too, but we are unable to access it from the main Language File
$lang['DOWNLOAD'] = 'Скачать'; // this Language Variable is defined in admin.php too, but we are unable to access it from the main Language File
$lang['FILESIZE'] = 'Размер';
$lang['VIEWED'] = 'Просмотров';
$lang['DOWNLOAD_NUMBER'] = '%d раз'; // replace %d with count
@ -1377,7 +1381,7 @@ $lang['HIDDEN'] = 'Скрыт';
// That's all, Folks!
// -------------------------------------------------
// from lang_admin
// from admin
$lang['NOT_ADMIN'] = 'У вас нет прав на администрирование';
$lang['COOKIES_REQUIRED'] = 'Куки должны быть включены!';
@ -2973,6 +2977,7 @@ $lang['SEARCH_FOR_POSTCOUNT_RANGE'] = 'Поиск пользователей с
$lang['SEARCH_FOR_POSTCOUNT_EQUALS'] = 'Поиск пользователей с количеством сообщений %d';
$lang['SEARCH_FOR_USERFIELD_ICQ'] = 'Поиск пользователей с адресом ICQ %s';
$lang['SEARCH_FOR_USERFIELD_SKYPE'] = 'Поиск пользователей с логином в Skype %s';
$lang['SEARCH_FOR_USERFIELD_TWITTER'] = 'Поиск пользователей с логином в Twitter %s';
$lang['SEARCH_FOR_USERFIELD_WEBSITE'] = 'Поиск пользователей, чей веб-сайт %s';
$lang['SEARCH_FOR_USERFIELD_LOCATION'] = 'Поиск пользователей из %s';
$lang['SEARCH_FOR_USERFIELD_INTERESTS'] = 'Поиск пользователей с интересами %s';

View file

@ -0,0 +1,2 @@
order allow,deny
deny from all

View file

@ -0,0 +1,2 @@
order allow,deny
deny from all

View file

@ -0,0 +1,12 @@
Charset: UTF-8
Цей лист надіслано вам адміністратором сайту "{SITENAME}". Якщо це повідомлення є спамом, містить образи або інші неприємні вам коментарі, будь-ласка зв'яжіться з адміністратором сайту за адресою:
{BOARD_EMAIL}
Увімкніть дане повідомлення (особливо заголовки).
Надіслане повідомлення:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{MESSAGE}

View file

@ -0,0 +1 @@
{MESSAGE}

View file

@ -0,0 +1,12 @@
Subject: Ви були включені в групу
Charset: UTF-8
Вітаємо!
Ви були прийняті в групу "{GROUP_NAME}" на сайті {SITENAME}.
Це було зроблено модератором групи чи адміністратором сайту, зверніться до них за додатковою інформацією.
Перейдіть за посиланням, щоб побачити інформацію про ваше членство в групах:
{U_GROUPCP}
{EMAIL_SIG}

View file

@ -0,0 +1,11 @@
Subject: Ваше прохання було задоволено
Charset: UTF-8
Вітаємо!
Ваше прохання про вступ до групи "{GROUP_NAME}" на сайті {SITENAME} була задоволена.
Перейдіть за посиланням, щоб побачити інформацію про ваше членство в групах:
{U_GROUPCP}
{EMAIL_SIG}

View file

@ -0,0 +1,11 @@
Subject: Прохання про вступ в групу
Charset: UTF-8
Шановний(а) {GROUP_MODERATOR}!
Користувач {USER} попросив про вступ в групу (на сайті {SITENAME}), модератором якої Ви є.
Щоб задовольнити або відхилити це прохання, перейдіть за наступним посиланням:
{U_GROUPCP}
{EMAIL_SIG}

View file

@ -0,0 +1,14 @@
Subject: Нове приватне повідомлення
Charset: UTF-8
Привіт, {USERNAME}!
{NAME_FROM} відправив(ла) Вам особисте повідомлення на сайті {SITENAME}.
Ви можете прочитати його, перейшовши за наступним посиланням:
{U_INBOX}
Ви можете відмовитися від отримання таких повідомлень, якщо змініть настроювання в своєму профілі.
{EMAIL_SIG}

View file

@ -0,0 +1,14 @@
Charset: UTF-8
Привіт, {TO_USERNAME}!
Нижче є лист, відправлений вам користувачем {FROM_USERNAME} через вашу реєстрацію на сайті {SITENAME}. Якщо це повідомлення є спамом, містить образи або інші неприємні вам коментарі, будь-ласка зв'яжіться з адміністратором сайту за адресою:
{BOARD_EMAIL}
Увімкніть дане повідомлення (особливо заголовки). Будь ласка, зверніть увагу, що адреса відповіді в цьому повідомленні є адресою {FROM_USERNAME}.
Надіслане повідомлення:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{MESSAGE}

View file

@ -0,0 +1,14 @@
Subject: Повідомлення про відповіді - {TOPIC_TITLE}
Charset: UTF-8
Привіт, {USERNAME}!
Ви отримали це повідомлення тому, що слідкуєте за темою "{TOPIC_TITLE}" на сайті {SITENAME}. У цій темі з часу вашого останнього відвідування з'явилося нове повідомлення. Ви можете перейти за посиланням, щоб прочитати які надійшли відповіді; нові повідомлення не будуть приходити, поки ви не перегляньте тему:
{U_TOPIC}
Якщо ви більше не хочете слідкувати за темою, або натисніть на посилання "перестати стежити за темою" внизу сторінки, або перейдіть за наступним посиланням:
{U_STOP_WATCHING_TOPIC}
{EMAIL_SIG}

View file

@ -0,0 +1,10 @@
Subject: Повторна активація облікового запису
Charset: UTF-8
Привіт, {USERNAME}!
Ваш обліковий запис на сайті {SITENAME} був відключен, швидше за все, у наслідок внесених у ваш профіль змін. Щоб її активувати, перейдіть за цим посиланням:
{U_ACTIVATE}
{EMAIL_SIG}

View file

@ -0,0 +1,18 @@
Subject: Активація нового паролю
Charset: UTF-8
Привіт, {USERNAME}!
Ви отримали цей лист тому що ви (або хтось, що видає себе за вас) попросили вислати новий пароль до вашого облікового запису на сайті {SITENAME}. Якщо ви не просили вислати пароль, то не звертайте уваги на цей лист, якщо ж подібні листи будуть продовжувати приходити, зверніться до адміністратора сайту.
Перш ніж використовувати новий пароль, ви повинні його активувати. Для цього перейдіть за посиланням:
{U_ACTIVATE}
У разі успішної активації ви зможете входити у систему, використовуючи наступний пароль:
Пароль: {PASSWORD}
Ви зможете змінити пароль на сторінці редагування профілю. Якщо у вас виникнуть якісь труднощі, зверніться до адміністратора сайту.
{EMAIL_SIG}

View file

@ -0,0 +1,17 @@
Subject: Ласкаво просимо на сайт {SITENAME}
Charset: UTF-8
{WELCOME_MSG}
Будь ласка, збережіть це повідомлення. Параметри вашого облікового запису такі:
----------------------------
Ім'я користувача: {USERNAME}
Пароль: {PASSWORD}
----------------------------
Не забувайте свій пароль, він зберігається в базі даних в зашифрованому вигляді, і ми не зможемо вам його вислати. Якщо ви забудете пароль, то зможете запросити новий, який доведеться активувати таким же чином, як і ваш обліковий запис.
Дякуємо, що зареєструвались на нашому сайті.
{EMAIL_SIG}

View file

@ -0,0 +1,21 @@
Subject: Ласкаво просимо на сайт {SITENAME}
Charset: UTF-8
{WELCOME_MSG}
Будь ласка, збережіть це повідомлення. Параметри вашого облікового запису такі:
----------------------------
Ім'я користувача: {USERNAME}
Пароль: {PASSWORD}
----------------------------
Ваш обліковий запис ще не активен. Ви не зможете їм користуватися, поки не перейдете за наступним посиланням:
{U_ACTIVATE}
Не забувайте свій пароль, він зберігається в базі даних у зашифрованому вигляді, та ми не зможемо вам його вислати. Якщо ви забудете пароль, то зможете запросити новий, який доведеться активувати таким же чином, як і ваш обліковий запис.
Дякуємо, що зареєструвались на нашому сайті.
{EMAIL_SIG}

3031
upload/language/ua/main.php Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,2 @@
order allow,deny
deny from all

View file

@ -0,0 +1,17 @@
<?php
//
// Module information
//
$lang['MODULE_TITLE'] = 'Загальні порушення';
$lang['MODULE_EXPLAIN'] = 'Цей модуль дозволяє відправляти команді адміністраторів і модераторів повідомлення про порушення у вільній формі.';
//
// Language variables
//
$lang['REPORT_LIST_TITLE'] = 'Загальні порушення';
$lang['REPORT_TYPE'] = 'Загальні порушення';
$lang['WRITE_REPORT'] = 'Повідомити про порушення';
$lang['WRITE_REPORT_EXPLAIN'] = 'Використовуйте цю форму для відправки повідомлення команді адміністраторів і модераторів.';
$lang['AUTH_WRITE_ERROR'] = 'У вас немає прав для відправки повідомлень про порушення.';

View file

@ -0,0 +1,23 @@
<?php
//
// Module information
//
$lang['MODULE_TITLE'] = 'Порушення у повідомленнях користувачів';
$lang['MODULE_EXPLAIN'] = 'Цей модуль дозволяє повідомляти про порушення у повідомленнях теми.';
//
// Language variables
//
$lang['REPORT_LIST_TITLE'] = 'Порушення в повідомленнях';
$lang['REPORT_TYPE'] = 'Порушення в повідомленнях';
$lang['WRITE_REPORT'] = 'Повідомити про порушення';
$lang['DUPLICATE_REPORT'] = 'Про порушення повідомлено';
$lang['WRITE_REPORT_EXPLAIN'] = 'Використовуйте цю форму для відправки повідомлення про порушення. Робіть це тільки якщо ви помітили порушення Правил трекера.';
$lang['WRITE_REPORT_ERROR'] = 'Вибране повідомлення не існує.';
$lang['AUTH_WRITE_ERROR'] = 'У вас немає прав для надсилання повідомлення.';
$lang['DUPLICATE_ERROR'] = 'Про порушення в обраних повідомленнях вже повідомлено.';
$lang['DELETED_ERROR'] = 'Повідомлення з порушенням видалено.';
$lang['CLICK_RETURN'] = '%sНатиснить%s для повернення до повідомлення в темі.';

View file

@ -0,0 +1,27 @@
<?php
//
// Module information
//
$lang['MODULE_TITLE'] = 'Порушення в особистих повідомленнях користувачів';
$lang['MODULE_EXPLAIN'] = 'Цей модуль дозволяє повідомляти про порушення в особистих повідомленнях.';
//
// Language variables
//
$lang['REPORT_LIST_TITLE'] = 'Порушення в ОП';
$lang['REPORT_TYPE'] = 'Порушення в ОП';
$lang['MESSAGE_ID'] = 'ID';
$lang['MESSAGE_TITLE'] = 'Заголовок';
$lang['MESSAGE_TEXT'] = 'Текст';
$lang['MESSAGE_FROM'] = 'Від';
$lang['WRITE_REPORT'] = 'Повідомити про порушення у особистих повідомленнях';
$lang['DUPLICATE_REPORT'] = 'Про порушення вже повідомлено';
$lang['WRITE_REPORT_EXPLAIN'] = 'Використовуйте цю форму для відправки повідомлення про порушення. Робіть це тільки якщо ви помітили порушення Правил трекера.';
$lang['WRITE_REPORT_ERROR'] = 'Вибране особисте повідомлення не існує.';
$lang['AUTH_WRITE_ERROR'] = 'У вас немає прав для надсилання повідомлення.';
$lang['DUPLICATE_ERROR'] = 'Про порушення вже повідомлено.';
$lang['DELETED_ERROR'] = 'Особисте повідомлення з порушенням видалено.';
$lang['CLICK_RETURN'] = '%sНатиснить%s для повернення до особистих повідомлень.';

View file

@ -0,0 +1,23 @@
<?php
//
// Module information
//
$lang['MODULE_TITLE'] = 'Порушення в темах';
$lang['MODULE_EXPLAIN'] = 'Цей модуль дозволяє повідомляти про порушення Правил у темах.';
//
// Language variables
//
$lang['REPORT_LIST_TITLE'] = 'Порушення в темах';
$lang['REPORT_TYPE'] = 'Порушення в темах';
$lang['WRITE_REPORT'] = 'Повідомити про порушення в темі';
$lang['DUPLICATE_REPORT'] = 'Про порушення вже повідомлено';
$lang['WRITE_REPORT_EXPLAIN'] = 'Використовуйте цю форму для відправки повідомлення про порушення. Робіть це тільки якщо ви помітили порушення Правил трекера.';
$lang['WRITE_REPORT_ERROR'] = 'Обрана тема не існує.';
$lang['AUTH_WRITE_ERROR'] = 'У вас немає прав для надсилання повідомлення.';
$lang['DUPLICATE_ERROR'] = 'Про порушення вже повідомлено.';
$lang['DELETED_ERROR'] = 'Тему з порушенням видалено.';
$lang['CLICK_RETURN'] = '%sНатиснить%s для повернення в тему.';

View file

@ -0,0 +1,21 @@
<?php
//
// Module information
//
$lang['MODULE_TITLE'] = 'Порушення користувачів';
$lang['MODULE_EXPLAIN'] = 'Цей модуль дозволяє повідомляти про порушення Правил користувачами.';
//
// Language variables
//
$lang['REPORT_LIST_TITLE'] = 'Порушення користувачів';
$lang['REPORT_TYPE'] = 'Порушення користувачів';
$lang['WRITE_REPORT'] = 'Повідомити про порушення Правил користувачем';
$lang['WRITE_REPORT_EXPLAIN'] = 'Використовуйте цю форму для відправки повідомлення про порушення. Робіть це тільки якщо ви помітили порушення Правил трекера.';
$lang['WRITE_REPORT_ERROR'] = 'Обраний користувач не існує';
$lang['AUTH_WRITE_ERROR'] = 'У вас немає прав для надсилання повідомлення.';
$lang['DELETED_ERROR'] = 'Обраний користувач видалено.';
$lang['CLICK_RETURN'] = '%sНатиснить%s для повернення в профіль користувача.';

View file

@ -0,0 +1,469 @@
автор
алло
ало
английский
аннотация
аудио
аудиокнига
аудиоспектакль
без
битрейт
близко
более
больше
будем
будет
будете
будешь
будит
будто
буду
будут
будь
буедт
буит
бывает
был
была
были
было
быть
важная
важное
важные
важный
вам
вами
вас
ваш
ваша
ваше
ваши
вверх
вдали
вдруг
ведь
везде
версия
весь
видео
вниз
внизу
вокруг
вон
восемь
восьмой
вот
впрочем
времени
время
всё
все
всегда
всего
всем
всеми
всему
всех
всею
всю
всюду
вся
второй
выпуска
где
гоблинa
говорил
говорит
год
года
году
давай
давно
даже
дал
далеко
дальше
даром
два
двадцать
две
двенадцать
двух
двухголосый
девять
действительно
день
десять
для
дни
днями
довольно
долго
должно
доп
другая
другие
других
другова
другого
другое
другой
дублирование
дык
его
ему
если
есть
ещё
еще
жанр
закадровый
занят
занята
занято
заняты
затем
зато
зачем
здесь
зип
значит
ибо
издатель
издательство
изначально
или
именно
иметь
ими
имхо
имя
иногда
интерфейса
информация
исполнитель
кадра
каждая
каждое
каждые
каждый
кажется
как
какая
какже
какой
качество
кем
когда
кого
кодек
ком
компьютерное
кому
конечно
коотрый
которая
которого
которой
которые
который
которых
кроме
кругом
кто
куда
лет
либо
лишь
лол
лучше
любительский
люди
мало
мегалол
между
менее
меньше
меня
миллионов
мимо
минут
мля
мне
много
многоголосый
мной
мною
моё
мог
могли
могу
могут
модель
мое
может
можно
мои
мой
мочь
моя
наверху
над
надо
назад
название
наиболее
наконец
нам
нами
нас
нах
наш
наша
наше
наши
неё
него
недавно
недалеко
нее
ней
нельзя
нем
немного
нему
нередко
несжатый
несколько
нет
нею
нибудь
ниже
низко
никогда
никуда
ними
них
ничего
нужно
оба
обложка
обычно
обычный
один
однажды
однако
одного
одноголосый
одной
около
она
они
оно
операционные
описание
опять
оригинальное
особенно
особено
ответ
отовсюду
отсканированные
отсутствует
отсюда
очень
ошибками
ошибок
первый
перевод
перед
песен
платформа
под
пожалуйста
позже
пока
полное
пор
пора
после
посреди
постер
потом
потому
почему
почти
прекрасно
при
присутствует
про
продолжительность
просто
против
профессиональный
процент
процентов
прочем
пятый
пять
раз
разве
размер
разработчик
разработчика
рано
раньше
рар
режиссер
ролях
рус
русский
рядом
сайт
сам
сама
самаво
сами
самим
самими
самих
само
самого
самой
самом
самому
саму
сборки
своё
свое
своего
своей
свои
своих
свой
свою
своя
себе
себя
сегодня
седня
седьмой
сейчас
семь
сжатый
системные
системы
сих
сказал
сказала
сказать
сколько
скриншот
слишком
сначала
снова
собой
собою
совсем
спасибо
список
стал
страна
страницы
субтитры
суть
таб
таблэтка
тагда
так
такая
также
такие
такйо
такое
такой
там
тама
твоё
твой
твоя
тебе
тебя
текст
тем
теми
теперь
тех
тип
тобой
тобою
тогда
того
тоже
той
только
том
тому
топик
топика
торент
торрент
тот
точек
тоьлко
тою
транслит
требования
требуется
третий
три
трэклист
туда
тут
тысяч
тысяча
уже
уметь
упс
формат
форум
форума
хороше
хорошо
хотеть
хоть
хотя
хочешь
часто
чаще
чего
чей
человек
чем
чему
через
четвертый
четыре
что
чтоб
чтобы
чуть
чье
чья
шестой
шесть
щас
эта
эти
этим
этими
этих
это
этого
этой
этом
этому
этот
эту
язык

View file

@ -0,0 +1,75 @@
аббревиатура абревиатура
абонент абанент
агрессивный агресивный
агрессия агресия
агрессор агресор
аккумулятор акамулятор
аккумулятор акумулятор
аккуратно акуратно
аккуратный акуратный
апелляция апеляция
аппарат апарат
аппаратура апаратура
ассистент асистент
баррикада барикада
больше больеш
брэнд бренд
будущее будующее
будущем будующеем
будущем будующем
будущий будующий
видеть видить
всегда всигда
всегда свегда
всякий свякий
гауптвахта гаупвахта
грамотный граммотный
гуманизм гумманизм
делать деалть
дилер диллер
жизнь жизьнь
жизнь жызнь
зачет зачот
идти итти
именно миенно
инженер инжинер
интерес антирес
интерес интирес
инцидент инцедент
инцидент инциндент
легко лекго
легко лехко
машина машына
машина мошина
мощность мощьность
наконец наканец
например напирмер
ничего ничево
ничто ништо
новый нвоый
опечатка очепятка
офис оффис
перспектива переспектива
последний полседний
потом патом
потом поотм
программа софтинка
программист програмист
программу софтинку
просто рпосто
против проитв
раса расса
реклама рекламма
рекламу рекламму
свои сови
сказать сакзать
сколько сколко
случай случяй
смотреть смортеть
твой товй
теперь теепрь
функцыя функцыя
хороший хароший
черный чорный
черным чорным
эффект эфект

View file

@ -0,0 +1,37 @@
<?php
$translit_table = array(
'є' => 'ye', 'Є' => 'YE',
'а' => 'a', 'А' => 'A',
'б' => 'b', 'Б' => 'B',
'в' => 'v', 'В' => 'V',
'г' => 'g', 'Г' => 'G',
'д' => 'd', 'Д' => 'D',
'е' => 'e', 'Е' => 'E',
'ж' => 'zh', 'Ж' => 'ZH',
'з' => 'z', 'З' => 'Z',
'и' => 'y', 'И' => 'Y',
'i' => 'i', 'I' => 'I',
'ї' => 'yi', 'Ї' => 'YI',
'й' => 'y', 'Й' => 'Y',
'к' => 'k', 'К' => 'K',
'л' => 'l', 'Л' => 'L',
'м' => 'm', 'М' => 'M',
'н' => 'n', 'Н' => 'N',
'о' => 'o', 'О' => 'O',
'п' => 'p', 'П' => 'P',
'р' => 'r', 'Р' => 'R',
'с' => 's', 'С' => 'S',
'т' => 't', 'Т' => 'T',
'у' => 'u', 'У' => 'U',
'ф' => 'f', 'Ф' => 'F',
'х' => 'h', 'Х' => 'H',
'ц' => 'c', 'Ц' => 'C',
'ч' => 'ch', 'Ч' => 'CH',
'ш' => 'sh', 'Ш' => 'SH',
'щ' => 'sh', 'Щ' => 'SH',
'ь' => "'", 'Ь' => "'",
'ю' => 'yu', 'Ю' => 'YU',
'я' => 'ya', 'Я' => 'YA',
"'" => "'", "'" => "'",
);

View file

@ -1,4 +1,3 @@
<!-- IF TPL_ADMIN_USER_SEARCH_MAIN -->
<!--========================================================================-->
@ -81,7 +80,7 @@
<td class="row3"><img src="{SPACER}" width="1" height="1" alt="."></td>
</tr>
<tr>
<td class="row1" nowrap="nowrap"><span class="gen"><b>{L_USERFIELD}:</b>&nbsp;<select name="userfield_type"><option value="icq" selected="selected">{L_ICQ}</option><option value="skype">{L_SKYPE}</option><option value="website">{L_WEBSITE}</option><option value="location">{L_LOCATION}</option><option value="interests">{L_INTERESTS}</option></select>&nbsp;<input class="post" type="text" name="userfield_value" maxlength="25" size="25" />&nbsp;<input type="submit" class="post2" name="search_userfield" value="{L_SEARCH}" /> {L_REGULAR_EXPRESSION} <input type="checkbox" name="search_userfield_regex" value="true" /></span></td>
<td class="row1" nowrap="nowrap"><span class="gen"><b>{L_USERFIELD}:</b>&nbsp;<select name="userfield_type"><option value="icq" selected="selected">{L_ICQ}</option><option value="skype">{L_SKYPE}</option><option value="twitter">{L_TWITTER}</option><option value="website">{L_WEBSITE}</option><option value="location">{L_LOCATION}</option><option value="interests">{L_INTERESTS}</option></select>&nbsp;<input class="post" type="text" name="userfield_value" maxlength="25" size="25" />&nbsp;<input type="submit" class="post2" name="search_userfield" value="{L_SEARCH}" /> {L_REGULAR_EXPRESSION} <input type="checkbox" name="search_userfield_regex" value="true" /></span></td>
</tr>
<tr>
<td class="row2"><span class="small">{L_SEARCH_USERS_USERFIELD_EXPLAIN}</span></td>
@ -201,4 +200,3 @@
<!--========================================================================-->
<!-- ENDIF / TPL_ADMIN_USER_SEARCH_RESULTS -->

View file

Before

Width:  |  Height:  |  Size: 2 KiB

After

Width:  |  Height:  |  Size: 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.5 KiB

After

Width:  |  Height:  |  Size: 2.5 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.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Before After
Before After

Some files were not shown because too many files have changed in this diff Show more