diff --git a/README.md b/README.md new file mode 100644 index 000000000..05ffc6e54 --- /dev/null +++ b/README.md @@ -0,0 +1,59 @@ +TorrentPier II +====================== + +TorrentPier II - движок торрент-трекера, написанный на php. Высокая скорость работы, простота модификации, устойчивость к высоким нагрузкам, в том числе и поддержка альтернативных анонсеров (например, Ocelot). Помимо этого, крайне развитый официальный форум поддержки, где помимо прочего можно испытать движок в работе на демо-версии, не устанавливая его а также получить любую другую интересующую вас информацию и скачать моды. + +## Установка + +Для установки вам необходимо выполнить несколько простых шагов: + +1. Распаковываем на сервер содержимое папки **upload** + +2. Создаем базу данных, в которую при помощи phpmyadmin (или любого другого удобного инструмента) импортируем дамп, расположенный в папке **install/sql/mysql.sql** +3. Правим файл конфигурации **config.php**, загруженный на сервер: +> $bb_cfg['db']['db1'] = array('localhost', 'dbase', 'user', 'pass', $charset, $pconnect); +> В данной строке изменяем данные входа в базу данных, остальные правки в файле вносятся по усмотрению, исходя из необходимости из внесения (ориентируйтесь на описания, указанные у полей). + +4. Редактируем указанные файлы: + + **favicon.ico** (меняем на свою иконку, если есть) + + **robots.txt** (меняем адреса в строках **Host** и **Sitemap** на свои) + +## Права доступа на папки и файлы + +Исходя из настроек вашего сервера, устанавливаем рекомендуемые права доступа (chmod) на указанные папки **777**, а на файлы внутри этих папок (кроме файлов **.htaccess** и **.keep**) **666**: +- ajax/html +- cache +- cache/filecache +- files +- files/thumbs +- images +- images/avatars +- images/captcha +- images/ranks +- images/smiles +- log +- sitemap +- triggers + +## Необходимые настройки php + + mbstring.internal_encoding = UTF-8 + magic_quotes_gpc = Off +Внести данные настройки необходимо в файл **php.ini**. Их вам может установить ваш хостер по запросу, если у вас возникают какие-либо проблемы с их самостоятельной установкой. Впрочем, эти настройки могут быть установлены на сервере по-умолчанию, поэтому их внесение требуется исключительно по необходимости. + +## Необходимые модули php + + php5-tidy + +Начиная с версии 2.0.9 (ревизия 592 в старой нумерации) данный модуль не является обязательным, но его установка крайне рекомендуется для повышения качества обработки html-кода тем и сообщений пользователей. + +## Рекомендуемый способ запуска cron.php + +Для значительного ускорения работы трекера может потребоваться отвязка встроенного форумного крона. С более подробной информацией об отвязке крона, вы можете ознакомиться в данной теме http://torrentpier.me/threads/52/ на нашем форуме поддержки. + +## Полезные ссылки + ++ Наш форум http://torrentpier.me/ ++ Центр загрузки http://get.torrentpier.me/ ++ Часто задаваемые вопросы http://faq.torrentpier.me/ ++ Где задать вопрос http://torrentpier.me/forums/10/ diff --git a/install/sql/mysql.sql b/install/sql/mysql.sql index fe0a74fb6..66c0e5ab7 100644 --- a/install/sql/mysql.sql +++ b/install/sql/mysql.sql @@ -557,8 +557,10 @@ INSERT INTO `bb_config` VALUES ('seed_bonus_points', ''); INSERT INTO `bb_config` VALUES ('seed_bonus_tor_size', '0'); INSERT INTO `bb_config` VALUES ('seed_bonus_user_regdate', '0'); INSERT INTO `bb_config` VALUES ('site_desc', 'A little text to describe your forum'); +INSERT INTO `bb_config` VALUES ('sitemap_time', ''); INSERT INTO `bb_config` VALUES ('sitename', 'TorrentPier II - Torrent Tracker'); INSERT INTO `bb_config` VALUES ('smilies_path', 'images/smiles'); +INSERT INTO `bb_config` VALUES ('static_sitemap', ''); INSERT INTO `bb_config` VALUES ('topics_per_page', '50'); INSERT INTO `bb_config` VALUES ('xs_use_cache', '1'); INSERT INTO `bb_config` VALUES ('active_ads', ''); @@ -642,6 +644,7 @@ INSERT INTO `bb_cron` VALUES (18, 1, 'Seeder last seen', 'tr_update_seeder_last_ INSERT INTO `bb_cron` VALUES (19, 1, 'Captcha', 'captcha_gen_gc.php', 'daily', NULL, '05:00:00', 120, '', '', NULL, 0, '', 0, 0, 0); INSERT INTO `bb_cron` VALUES (20, 1, 'Tracker dl-complete count', 'tr_complete_count.php', 'interval', NULL, NULL, 255, '', '', '06:00:00', 0, '', 0, 0, 0); INSERT INTO `bb_cron` VALUES (21, 1, 'Cache garbage collector', 'cache_gc.php', 'interval', NULL, NULL, 255, '', '', '00:05:00', 0, '', 0, 0, 0); +INSERT INTO `bb_cron` VALUES (22, 1, 'Sitemap update', 'sitemap.php', 'daily', NULL, '06:00:00', 30, '', '', NULL, 0, '', 0, 0, 0); -- -------------------------------------------------------- diff --git a/other/converter/TBDevYSE_pre6/ReadMe.txt b/other/converter/TBDevYSE_pre6/ReadMe.txt index dd8137e3e..198424165 100644 --- a/other/converter/TBDevYSE_pre6/ReadMe.txt +++ b/other/converter/TBDevYSE_pre6/ReadMe.txt @@ -14,8 +14,8 @@ Quick guide: copy two files: automatically generated 'converter/passwords.php' and 'for_tbdev/pass.php' to your TBDevYSE root and run pass.php (Don't forget to remove these files after completion). You allow to change message text, see $msg in pass.php for this. -10. If you want to redirect peers from older announce to new announce everytime, replace original TBDev's announce.php with - 'for_tbdev/announce.php' +10. If you want to redirect peers from older announce to new announce everytime, replace original TBDev's announce.php with + 'for_tbdev/announce.php' Cheers, RoadTrain. http://torrentpier.me/ \ No newline at end of file diff --git a/other/converter/TBDevYSE_pre6/for_tbdev/announce.php b/other/converter/TBDevYSE_pre6/for_tbdev/announce.php index 7385a89f8..b69fed877 100644 --- a/other/converter/TBDevYSE_pre6/for_tbdev/announce.php +++ b/other/converter/TBDevYSE_pre6/for_tbdev/announce.php @@ -42,10 +42,10 @@ mysql_close(); mysql_query("SET NAMES $dbcharset"); // Get passkey for TorrentPier -$user_id += USER_ID_DIFF; +$user_id += USER_ID_DIFF; $res = mysql_query("SELECT auth_key FROM bb_bt_users WHERE user_id = $user_id") or err(mysql_error()); -if (mysql_affected_rows() == 0) +if (mysql_affected_rows() == 0) { err('Passkey doesn\'t created on new tracker or user doesn\'t exist'); } diff --git a/other/converter/TBDevYSE_pre6/for_tbdev/pass.php b/other/converter/TBDevYSE_pre6/for_tbdev/pass.php index 827609c81..b16622d6d 100644 --- a/other/converter/TBDevYSE_pre6/for_tbdev/pass.php +++ b/other/converter/TBDevYSE_pre6/for_tbdev/pass.php @@ -8,14 +8,12 @@ loggedinorreturn(); $new_tr_url = "http://torrentpier.me/"; // with ending slash $subject = "Переезд на новый движок"; -$msg = '[b]Внимание![/b] Наш трекер переехал на новый движок! Адрес трекера - [url='.$new_tr_url.']'.$new_tr_url.'[/url] - Вся база перенесена на новый движок, регистрироваться заново не надо. - Войти на трекер можно [url='.$new_tr_url.'login.php]здесь[/url]. Ваши данные на новом трекере: - [b]Логин:[/b] %s - [b]Пароль:[/b] %s +$msg = '[b]Внимание![/b] Наш трекер переехал на новый движок! Адрес трекера - [url='.$new_tr_url.']'.$new_tr_url.'[/url] + Вся база перенесена на новый движок, регистрироваться заново не надо. + Войти на трекер можно [url='.$new_tr_url.'login.php]здесь[/url]. Ваши данные на новом трекере: + [b]Логин:[/b] %s + [b]Пароль:[/b] %s Сменить пароль можно после входа на трекер в [url='.$new_tr_url.'profile.php?mode=editprofile]настройках[/url].'; - - if (empty($_POST['confirm'])) { @@ -32,14 +30,14 @@ if (empty($_POST['confirm'])) else { if(!file_exists('passwords.php')) stderr($tracker_lang['error'], 'passwords.php not exists'); - + include('passwords.php'); stdhead(); foreach ($passwords as $user) { $msg_sql = sprintf($msg, $user['username'], $user['new_passwd']); sql_query("INSERT INTO messages (receiver, added, subject, msg) VALUES({$user['tb_user_id']}, NOW(), ".sqlesc($subject).", ".sqlesc($msg_sql).")"); - } + } stdmsg('OK', 'Mass PM succesful'); } diff --git a/other/converter/TBDevYSE_pre6/root/convert.php b/other/converter/TBDevYSE_pre6/root/convert.php index e3bd985f7..dec5874d0 100644 --- a/other/converter/TBDevYSE_pre6/root/convert.php +++ b/other/converter/TBDevYSE_pre6/root/convert.php @@ -81,18 +81,18 @@ if (CONVERT_USERS) { $start = $i * C_USERS_PER_ONCE; $offset = C_USERS_PER_ONCE; - + $sql = " - SELECT - id, username, email, status, UNIX_TIMESTAMP(added) AS added, UNIX_TIMESTAMP(last_access) AS last_access, + SELECT + id, username, email, status, UNIX_TIMESTAMP(added) AS added, UNIX_TIMESTAMP(last_access) AS last_access, class, icq, msn, aim, yahoo, website, $_sql uploaded, downloaded, enabled, language - FROM ". TB_USERS_TABLE ." + FROM ". TB_USERS_TABLE ." ORDER BY id LIMIT $start, $offset"; $users = DB()->fetch_rowset($sql); - DB()->sql_freeresult(); + DB()->sql_freeresult(); foreach ($users as $user) { @@ -159,17 +159,17 @@ if (CONVERT_TORRENTS) print_ok ("Categories from TBDev converted"); unset($cats); - // Start of torrents converting + // Start of torrents converting switch(TR_TYPE) - { + { case 'yse': $_sql = 'image1, image2, '; break; - + case 'sky': $_sql = 'poster, screenshot1, screenshot2, screenshot3, screenshot4, '; break; - + default: $_sql = ''; break; @@ -187,9 +187,9 @@ if (CONVERT_TORRENTS) $start = $i * C_TORRENTS_PER_ONCE; $offset = C_TORRENTS_PER_ONCE; $sql = " - SELECT + SELECT id, info_hash, name, filename, search_text, descr, $_sql - category, UNIX_TIMESTAMP(added) AS added, size, views, + category, UNIX_TIMESTAMP(added) AS added, size, views, UNIX_TIMESTAMP(last_action) AS lastseed, times_completed, owner, sticky FROM ". TB_TORRENTS_TABLE ." ORDER BY id @@ -197,7 +197,7 @@ if (CONVERT_TORRENTS) $torrents = DB()->fetch_rowset($sql); DB()->sql_freeresult(); - + foreach ($torrents as $torrent) { $torrent['topic_id'] = $torrent['id'] + $max_topic_id; @@ -219,16 +219,16 @@ if (CONVERT_TORRENTS) $max_post_id = (int) get_max_val(BB_POSTS, 'post_id'); $max_topic_id = (int) get_max_val(BB_TOPICS, 'topic_id'); $max_attach_id = (int) get_max_val(BB_ATTACHMENTS, 'attach_id'); - + $comments_count = (int) get_count(TB_COMMENTS_TABLE, 'id'); $loops = (int) ceil($comments_count / C_COMMENTS_PER_ONCE); - + for ($i = 0; $i < $loops; $i++) { $start = $i * C_COMMENTS_PER_ONCE; - $offset = C_COMMENTS_PER_ONCE; + $offset = C_COMMENTS_PER_ONCE; $sql = " - SELECT + SELECT c.id, c.user, c.torrent, c.text, tor.category, UNIX_TIMESTAMP(c.added) AS added, UNIX_TIMESTAMP(c.editedat) AS editedat, c.ip FROM ". TB_COMMENTS_TABLE ." c @@ -236,10 +236,10 @@ if (CONVERT_TORRENTS) WHERE c.torrent <> 0 ORDER BY c.id LIMIT $start, $offset"; - + $comments = DB()->fetch_rowset($sql); DB()->sql_freeresult(); - + foreach ($comments as $comment) { $comment['user'] += $max_uid; diff --git a/other/converter/TBDevYSE_pre6/root/converter/functions.php b/other/converter/TBDevYSE_pre6/root/converter/functions.php index f014f5307..65b1fde53 100644 --- a/other/converter/TBDevYSE_pre6/root/converter/functions.php +++ b/other/converter/TBDevYSE_pre6/root/converter/functions.php @@ -21,7 +21,7 @@ function hex2bin($h) } function get_max_val($table_name, $column) -{ +{ $row = DB()->fetch_row("SELECT MAX($column) AS $column FROM $table_name LIMIT 1"); return $row[$column]; } @@ -43,19 +43,9 @@ function set_auto_increment($table_name, $column, $val = null) DB()->query("ALTER TABLE $table_name auto_increment = $val"); } -//Users functions +// Users functions function tp_users_cleanup() { - /* - if (!function_exists('user_delete')) require_once(INC_DIR .'functions_admin.php'); - - if ($row = DB()->fetch_row("SELECT user_id FROM ". BB_USERS ." WHERE user_id NOT IN(". EXCLUDED_USERS_CSV .');')) - { - foreach ($row as $user) - { - user_delete($user['user_id']); - } - }*/ DB()->query('DELETE FROM '. BB_USERS .' WHERE user_id NOT IN('. EXCLUDED_USERS_CSV .')'); DB()->query('TRUNCATE '. BB_BT_USERS); } @@ -91,7 +81,7 @@ function convert_user($user) "user_id" => $user['id'], "user_active" => ($user['enabled'] == 'yes') ? true : false, "username" => $user['username'], - "user_password" => md5($user['password']), + "user_password" => md5($user['password']), "user_lastvisit" => $user['last_access'], "user_regdate" => $user['added'], "user_level" => tp_user_level($user['class']), @@ -101,11 +91,11 @@ function convert_user($user) "user_avatar" => !empty($user['avatar']) ? $user['avatar'] : null, "user_avatar_type" => !empty($user['avatar']) ? 2 : null, "user_email" => $user['email'], - "user_website" => $user['website'], + "user_website" => $user['website'], ); $columns = $values = array(); - + foreach ($user_data as $column => $value) { $columns[] = $column; @@ -113,9 +103,9 @@ function convert_user($user) } $sql_columns = implode(',', $columns); $sql_values = implode(',', $values); - + DB()->query("INSERT IGNORE INTO ". BB_USERS . " ($sql_columns) VALUES($sql_values);"); - + $bt_user_data = array( "user_id" => $user['id'], "auth_key" => make_rand_str(BT_AUTH_KEY_LENGTH), @@ -123,7 +113,7 @@ function convert_user($user) "u_down_total" => $user['downloaded'], ); $columns = $values = array(); - + foreach ($bt_user_data as $column => $value) { $columns[] = $column; @@ -131,7 +121,7 @@ function convert_user($user) } $sql_bt_columns = implode(',', $columns); $sql_bt_values = implode(',', $values); - + DB()->query("INSERT IGNORE INTO ". BB_BT_USERS . " ($sql_bt_columns) VALUES($sql_bt_values);"); } @@ -143,7 +133,7 @@ function tp_categories_cleanup() function tp_add_category_old($id, $cat_title) { - DB()->query("INSERT IGNORE INTO ". BB_CATEGORIES ." (cat_id, cat_title) + DB()->query("INSERT IGNORE INTO ". BB_CATEGORIES ." (cat_id, cat_title) VALUES ($id, '". DB()->escape($cat_title) ."')"); return; } @@ -151,7 +141,7 @@ function tp_add_category_old($id, $cat_title) function tp_add_category($cat_data) { $columns = $values = array(); - + foreach ($cat_data as $column => $value) { $columns[] = $column; @@ -159,7 +149,7 @@ function tp_add_category($cat_data) } $sql_bt_columns = implode(',', $columns); $sql_bt_values = implode(',', $values); - + DB()->query("INSERT IGNORE INTO ". BB_CATEGORIES . " ($sql_bt_columns) VALUES($sql_bt_values);"); } @@ -173,16 +163,7 @@ function tp_topics_cleanup() DB()->query("TRUNCATE ". BB_POSTS_SEARCH); DB()->query("TRUNCATE ". BB_POSTS_TEXT); DB()->query("TRUNCATE ". BB_TOPICS); - /*if (!function_exists('topic_delete')) require_once(INC_DIR .'functions_admin.php'); - - if ($row = DB()->fetch_row("SELECT topic_id FROM ". BB_TOPICS)) - { - foreach ($row as $topic) - { - topic_delete($topic['topic_id']); - } - }*/ - + return; } @@ -196,7 +177,7 @@ function tp_add_topic($topic_data) } $sql_columns = implode(',', $columns); $sql_values = implode(',', $values); - + DB()->query("INSERT IGNORE INTO ". BB_TOPICS . " ($sql_columns) VALUES($sql_values);"); return; } @@ -213,7 +194,7 @@ function tp_add_post($post_data) } $sql_columns = implode(',', $columns); $sql_values = implode(',', $values); - + DB()->query("INSERT IGNORE INTO bb_{$key} ($sql_columns) VALUES($sql_values);"); } return; @@ -231,7 +212,7 @@ function tp_add_attach($attach_data) } $sql_columns = implode(',', $columns); $sql_values = implode(',', $values); - + DB()->query("INSERT IGNORE INTO bb_{$key} ($sql_columns) VALUES($sql_values);"); } return; @@ -248,19 +229,19 @@ function append_images($tor) { $poster = $screens = ''; switch(TR_TYPE) - { + { case 'yse': - if(!empty($tor['image1'])) + if(!empty($tor['image1'])) { $poster = "[img=right]".make_img_path($tor['image1'])."[/img]"; } - if(!empty($tor['image2'])) + if(!empty($tor['image2'])) { $screens = '[spoiler="Скриншоты"][img]'.make_img_path($tor['image2'])."[/img][/spoiler]"; } break; case 'sky': - if(!empty($tor['poster'])) + if(!empty($tor['poster'])) { $poster = "[img=right]".make_img_path($tor['poster'])."[/img]"; } @@ -270,7 +251,7 @@ function append_images($tor) $screens .= '[spoiler="Скриншоты"]'; for ($i = 1; $i<=4; $i++) { - if(!empty($tor['screenshot'.$i])) + if(!empty($tor['screenshot'.$i])) { $screens .= "[img]".make_img_path($tor['screenshot'.$i])."[/img] \n"; } @@ -299,9 +280,8 @@ function convert_torrent($torrent) "topic_last_post_time" => $torrent['added'], ); tp_add_topic($topic_data); - //$post_text = prepare_message($torrent['descr'], true, true); $post_text = stripslashes(prepare_message(addslashes(unprepare_message($torrent['descr'])), true, true)); - + $post_data = array( "posts" => array( "post_id" => $torrent['post_id'], @@ -321,7 +301,7 @@ function convert_torrent($torrent) ), ); tp_add_post($post_data); - + $attach_data = array( "attachments" => array( "attach_id" => $torrent['attach_id'], @@ -340,11 +320,11 @@ function convert_torrent($torrent) ), ); tp_add_attach($attach_data); - + //Torrents if (BDECODE) { - $filename = get_attachments_dir() .'/'. $torrent['id'] .".torrent"; + $filename = get_attachments_dir() .'/'. $torrent['id'] .".torrent"; if (!file_exists($filename)) { return; @@ -359,7 +339,7 @@ function convert_torrent($torrent) { $info_hash_sql = hex2bin($torrent['info_hash']); } - + $torrent_data = array( "info_hash" => $info_hash_sql, "post_id" => $torrent['post_id'], @@ -374,7 +354,7 @@ function convert_torrent($torrent) ); $columns = $values = array(); - + foreach ($torrent_data as $column => $value) { $columns[] = $column; @@ -382,16 +362,16 @@ function convert_torrent($torrent) } $sql_columns = implode(', ', $columns); $sql_values = implode(', ', $values); - + DB()->query("INSERT IGNORE INTO ". BB_BT_TORRENTS . " ($sql_columns) VALUES($sql_values);"); return; } -//Comments functions +// Comments functions function convert_comment($comment) { $post_text = prepare_message($comment['text'], true, true); - + $post_data = array( "posts" => array( "post_id" => $comment['id'], @@ -409,7 +389,6 @@ function convert_comment($comment) ), ); tp_add_post($post_data); - //add_search_words($comment['id'], stripslashes($post_text)); return; } @@ -431,7 +410,7 @@ function convert_cat($forum, $allow_torrents = true) ); $columns = $values = array(); - + foreach ($forum_data as $column => $value) { $columns[] = $column; @@ -439,7 +418,7 @@ function convert_cat($forum, $allow_torrents = true) } $sql_columns = implode(',', $columns); $sql_values = implode(',', $values); - + DB()->query("INSERT IGNORE INTO ". BB_FORUMS . " ($sql_columns) VALUES($sql_values);"); return; } diff --git a/other/converter/TBDevYSE_pre6/root/converter/passwords.php b/other/converter/TBDevYSE_pre6/root/converter/passwords.php index 5f7aafe87..63c2de744 100644 --- a/other/converter/TBDevYSE_pre6/root/converter/passwords.php +++ b/other/converter/TBDevYSE_pre6/root/converter/passwords.php @@ -1,2 +1,3 @@ -fetch_rowset($sql); DB()->sql_freeresult(); - + foreach ($torrents as $torrent) { - $filename = $attach_dir . $torrent['physical_filename']; + $filename = $attach_dir . $torrent['physical_filename']; if (!file_exists($filename)) { $not_exist[] = ''. $filename .''; } else - { + { $tor = bdecode_file($filename); $info = (!empty($tor['info'])) ? $tor['info'] : array(); $info_hash = pack('H*', sha1(bencode($info))); $info_hash_sql = rtrim(DB()->escape($info_hash), ' '); - + DB()->query("UPDATE ". BB_BT_TORRENTS ." SET info_hash = '$info_hash_sql' WHERE attach_id = {$torrent['attach_id']}"); @@ -91,9 +91,9 @@ for ($i = 0; $i < $loops; $i++) print_ok ("Completed"); -if(!empty($not_exist)) +if (!empty($not_exist)) { print_ok ("These torrents doesn't exist in filesystem: ". implode(', ', array_unique($not_exist))); } -} +} \ No newline at end of file diff --git a/other/recover/converter/functions.php b/other/recover/converter/functions.php index ebed5f614..640832cab 100644 --- a/other/recover/converter/functions.php +++ b/other/recover/converter/functions.php @@ -100,7 +100,7 @@ function convert_user($user) ); $columns = $values = array(); - + foreach ($user_data as $column => $value) { $columns[] = $column; @@ -108,9 +108,9 @@ function convert_user($user) } $sql_columns = implode(',', $columns); $sql_values = implode(',', $values); - + DB()->query("INSERT IGNORE INTO ". BB_USERS . " ($sql_columns) VALUES ($sql_values);"); - + $bt_user_data = array( "user_id" => $user['id'], "auth_key" => make_rand_str(BT_AUTH_KEY_LENGTH), @@ -118,7 +118,7 @@ function convert_user($user) "u_down_total" => $user['downloaded'], ); $columns = $values = array(); - + foreach ($bt_user_data as $column => $value) { $columns[] = $column; @@ -126,7 +126,7 @@ function convert_user($user) } $sql_bt_columns = implode(',', $columns); $sql_bt_values = implode(',', $values); - + DB()->query("INSERT IGNORE INTO ". BB_BT_USERS . " ($sql_bt_columns) VALUES ($sql_bt_values);"); } @@ -138,7 +138,7 @@ function tp_categories_cleanup() function tp_add_category_old($id, $cat_title) { - DB()->query("INSERT IGNORE INTO ". BB_CATEGORIES ." (cat_id, cat_title) + DB()->query("INSERT IGNORE INTO ". BB_CATEGORIES ." (cat_id, cat_title) VALUES ($id, '". DB()->escape($cat_title) ."')"); return; } @@ -146,7 +146,7 @@ function tp_add_category_old($id, $cat_title) function tp_add_category($cat_data) { $columns = $values = array(); - + foreach ($cat_data as $column => $value) { $columns[] = $column; @@ -154,12 +154,12 @@ function tp_add_category($cat_data) } $sql_bt_columns = implode(',', $columns); $sql_bt_values = implode(',', $values); - + DB()->query("INSERT IGNORE INTO ". BB_CATEGORIES . " ($sql_bt_columns) VALUES ($sql_bt_values);"); } function tp_topics_cleanup() -{ +{ DB()->query("TRUNCATE ". BB_ATTACHMENTS); DB()->query("TRUNCATE ". BB_ATTACHMENTS_DESC); DB()->query("TRUNCATE ". BB_BT_TORRENTS); @@ -168,21 +168,12 @@ function tp_topics_cleanup() DB()->query("TRUNCATE ". BB_POSTS_SEARCH); DB()->query("TRUNCATE ". BB_POSTS_TEXT); DB()->query("TRUNCATE ". BB_TOPICS); - /*if (!function_exists('topic_delete')) require_once('./includes/functions_admin.php'); - - if ($row = DB()->fetch_row("SELECT topic_id FROM ". TOPICS)) - { - foreach ($row as $topic) - { - topic_delete($topic['topic_id']); - } - }*/ - + return; } function tp_add_topic($topic_data) -{ +{ $columns = $values = array(); foreach ($topic_data as $column => $value) { @@ -191,13 +182,13 @@ function tp_add_topic($topic_data) } $sql_columns = implode(',', $columns); $sql_values = implode(',', $values); - + DB()->query("INSERT IGNORE INTO ". BB_TOPICS . " ($sql_columns) VALUES ($sql_values);"); return; } function tp_add_post($post_data) -{ +{ foreach ($post_data as $key => $data) { $columns = $values = array(); @@ -208,14 +199,14 @@ function tp_add_post($post_data) } $sql_columns = implode(',', $columns); $sql_values = implode(',', $values); - + DB()->query("INSERT IGNORE INTO bb_{$key} ($sql_columns) VALUES ($sql_values);"); } return; } function tp_add_attach($attach_data) -{ +{ foreach ($attach_data as $key => $data) { $columns = $values = array(); @@ -226,7 +217,7 @@ function tp_add_attach($attach_data) } $sql_columns = implode(',', $columns); $sql_values = implode(',', $values); - + DB()->query("INSERT IGNORE INTO bb_{$key} ($sql_columns) VALUES ($sql_values);"); } return; @@ -243,19 +234,19 @@ function append_images($tor) { $poster = $screens = ''; switch(TR_TYPE) - { + { case 'yse': - if(!empty($tor['image1'])) + if(!empty($tor['image1'])) { $poster = "[img=right]".make_img_path($tor['image1'])."[/img]"; } - if(!empty($tor['image2'])) + if(!empty($tor['image2'])) { $screens = '[spoiler="Скриншоты"][img]'.make_img_path($tor['image2'])."[/img][/spoiler]"; } break; case 'sky': - if(!empty($tor['poster'])) + if(!empty($tor['poster'])) { $poster = "[img=right]".make_img_path($tor['poster'])."[/img]"; } @@ -265,7 +256,7 @@ function append_images($tor) $screens .= '[spoiler="Скриншоты"]'; for ($i = 1; $i<=4; $i++) { - if(!empty($tor['screenshot'.$i])) + if(!empty($tor['screenshot'.$i])) { $screens .= "[img]".make_img_path($tor['screenshot'.$i])."[/img] \n"; } @@ -294,9 +285,9 @@ function convert_torrent($torrent) "topic_last_post_time" => $torrent['added'], ); tp_add_topic($topic_data); - + $post_text = stripslashes(prepare_message(addslashes(unprepare_message($torrent['descr'])), true, true)); - + $post_data = array( "posts" => array( "post_id" => $torrent['post_id'], @@ -316,7 +307,7 @@ function convert_torrent($torrent) ), ); tp_add_post($post_data); - + $attach_data = array( "attachments" => array( "attach_id" => $torrent['attach_id'], @@ -335,11 +326,11 @@ function convert_torrent($torrent) ), ); tp_add_attach($attach_data); - + //Torrents if (BDECODE) { - $filename = get_attachments_dir() .'/'. $torrent['id'] .".torrent"; + $filename = get_attachments_dir() .'/'. $torrent['id'] .".torrent"; if (!file_exists($filename)) { return; @@ -354,7 +345,7 @@ function convert_torrent($torrent) { $info_hash_sql = hex2bin($torrent['info_hash']); } - + $torrent_data = array( "info_hash" => $info_hash_sql, "post_id" => $torrent['post_id'], @@ -362,14 +353,14 @@ function convert_torrent($torrent) "topic_id" => $torrent['topic_id'], "forum_id" => $torrent['category'], "attach_id" => $torrent['attach_id'], - "size" => $torrent['size'], + "size" => $torrent['size'], "reg_time" => $torrent['added'], "complete_count" => $torrent['times_completed'], "seeder_last_seen" => $torrent['lastseed'], ); $columns = $values = array(); - + foreach ($torrent_data as $column => $value) { $columns[] = $column; @@ -377,7 +368,7 @@ function convert_torrent($torrent) } $sql_columns = implode(', ', $columns); $sql_values = implode(', ', $values); - + DB()->query("INSERT IGNORE INTO ". BB_BT_TORRENTS . " ($sql_columns) VALUES($sql_values);"); return; } @@ -386,7 +377,7 @@ function convert_torrent($torrent) function convert_comment($comment) { $post_text = prepare_message($comment['text'], true, true); - + $post_data = array( "posts" => array( "post_id" => $comment['id'], @@ -404,13 +395,12 @@ function convert_comment($comment) ), ); tp_add_post($post_data); - //add_search_words($comment['id'], stripslashes($post_text)); return; } //Forums functions function tp_forums_cleanup() -{ +{ DB()->query('TRUNCATE '. BB_FORUMS); } @@ -426,7 +416,7 @@ function convert_cat($forum, $allow_torrents = true) ); $columns = $values = array(); - + foreach ($forum_data as $column => $value) { $columns[] = $column; @@ -434,7 +424,7 @@ function convert_cat($forum, $allow_torrents = true) } $sql_columns = implode(',', $columns); $sql_values = implode(',', $values); - + DB()->query("INSERT IGNORE INTO ". BB_FORUMS . " ($sql_columns) VALUES ($sql_values);"); return; -} +} \ No newline at end of file diff --git a/other/recover/converter/passwords.php b/other/recover/converter/passwords.php index 5f7aafe87..63c2de744 100644 --- a/other/recover/converter/passwords.php +++ b/other/recover/converter/passwords.php @@ -1,2 +1,3 @@ -session_start(); @@ -52,36 +51,36 @@ $loops = (int) ceil($torrents_count / C_TORRENTS_PER_ONCE); $not_exist = array(); $attach_dir = get_attachments_dir() .'/'; - + for ($i = 0; $i < $loops; $i++) { $start = $i * C_TORRENTS_PER_ONCE; - $offset = C_TORRENTS_PER_ONCE; - - $sql = "SELECT + $offset = C_TORRENTS_PER_ONCE; + + $sql = "SELECT tor.attach_id, tor.topic_id, ad.physical_filename FROM ". BB_BT_TORRENTS ." tor LEFT JOIN ". BB_ATTACHMENTS_DESC ." ad ON(ad.attach_id = tor.attach_id) ORDER BY tor.attach_id LIMIT $start, $offset"; - + $torrents = DB()->fetch_rowset($sql); DB()->sql_freeresult(); - + foreach ($torrents as $torrent) { - $filename = $attach_dir . $torrent['physical_filename']; + $filename = $attach_dir . $torrent['physical_filename']; if (!file_exists($filename)) { $not_exist[] = ''. $filename .''; } else - { + { $tor = bdecode_file($filename); $info = (!empty($tor['info'])) ? $tor['info'] : array(); $info_hash = pack('H*', sha1(bencode($info))); $info_hash_sql = rtrim(DB()->escape($info_hash), ' '); - + DB()->query("UPDATE ". BB_BT_TORRENTS ." SET info_hash = '$info_hash_sql' WHERE attach_id = {$torrent['attach_id']}"); @@ -91,9 +90,9 @@ for ($i = 0; $i < $loops; $i++) print_ok ("Completed"); -if(!empty($not_exist)) +if (!empty($not_exist)) { print_ok ("These torrents doesn't exist in filesystem: ". implode(', ', array_unique($not_exist))); } -} +} \ No newline at end of file diff --git a/readme.txt b/readme.txt index fd68905d4..568d8cf97 100644 --- a/readme.txt +++ b/readme.txt @@ -1,58 +1,3 @@ -******************** -** Установка ** -******************** +Для получения информации об установке движка, откройте в своем браузере указаную ссылку: -Распаковываем на сервер содержимое папки upload. -Заходим в phpmyadmin, открываем или создаем новую базу, потом импортируем дамп (install/sql/mysql.sql) -Правим файл конфигурации config.php (изменяем данные входа в БД, остальное по усмотрению) - -* Файлы favicon.ico (меняем на свою иконку, если есть), robots.txt(допуск или запрет ботам поисковиков к серверу, блокирует не все, меняем адреса в строках Host: и Sitemap: на свои адреса) - -************************************ -** Права доступа на папки и файлы ** -************************************ - -Устанавливаем права доступа на данные папки 777, на файлы внутри этих папок (кроме .htaccess) 666: -- ajax/html -- cache -- cache/filecache -- files -- files/thumbs -- images -- images/avatars -- images/captcha -- images/ranks -- images/smiles -- log -- triggers - -************************************ -** Необходимые значения в php.ini ** -************************************ - -mbstring.internal_encoding = UTF-8 -magic_quotes_gpc = Off - -************************************ -** Необходимые модули для php ** -************************************ - -php5-tidy - -************************************ -** Необходимый запуск cron.php ** -************************************ - -Подробнее в теме http://torrentpier.me/threads/Отвязка-запуск-крона.52/ - -************************************ -** Часто задаваемые вопросы ** -************************************ - -http://torrentpier.me/threads/faq-для-новичков.260/ - -************************************ -** Где задать вопрос ** -************************************ - -http://torrentpier.me/forums/Основные-вопросы-по-torrentpier-ii.10/ \ No newline at end of file +https://github.com/torrentpier/tracker/tree/master#torrentpier-ii \ No newline at end of file diff --git a/upload/admin/admin_attach_cp.php b/upload/admin/admin_attach_cp.php index 6468f72e2..a285d4fc6 100644 --- a/upload/admin/admin_attach_cp.php +++ b/upload/admin/admin_attach_cp.php @@ -20,7 +20,7 @@ else $upload_dir = '../' . $attach_config['upload_dir']; } -include(BB_ROOT .'attach_mod/includes/functions_selects.php'); +include(ATTACH_DIR .'includes/functions_selects.php'); // Check if the language got included if (!isset($lang['TEST_SETTINGS_SUCCESSFUL'])) @@ -76,7 +76,6 @@ else $sort_order = 'ASC'; } - // Pagination ? $do_pagination = ($view != 'stats' && $view != 'search') ? true : false; diff --git a/upload/admin/admin_attachments.php b/upload/admin/admin_attachments.php index 9550e5db6..adf1bd92a 100644 --- a/upload/admin/admin_attachments.php +++ b/upload/admin/admin_attachments.php @@ -23,7 +23,7 @@ else $upload_dir = '../' . $attach_config['upload_dir']; } -include(BB_ROOT .'attach_mod/includes/functions_selects.php'); +include(ATTACH_DIR .'includes/functions_selects.php'); // Check if the language got included if (!isset($lang['TEST_SETTINGS_SUCCESSFUL'])) diff --git a/upload/admin/admin_board.php b/upload/admin/admin_board.php index 074c83457..32761b3d4 100644 --- a/upload/admin/admin_board.php +++ b/upload/admin/admin_board.php @@ -40,9 +40,7 @@ else if (isset($_POST['submit']) && $row['config_value'] != $new[$config_name]) { - if ($config_name == 'seed_bonus_points' || $config_name == 'seed_bonus_release') $new[$config_name] = serialize($new[$config_name]); - if ($config_name == 'bonus_upload' || $config_name == 'bonus_upload_price') $new[$config_name] = serialize($new[$config_name]); - + if ($config_name == ('seed_bonus_points' || 'seed_bonus_release' || 'bonus_upload' || 'bonus_upload_price')) $new[$config_name] = serialize(str_replace(',', '.', $new[$config_name])); bb_update_config(array($config_name => $new[$config_name])); } } @@ -89,7 +87,7 @@ switch($mode) if ($new['seed_bonus_points'] && $new['seed_bonus_release']) { - $seed_bonus = unserialize($new['seed_bonus_points']); + $seed_bonus = unserialize($new['seed_bonus_points']); $seed_release = unserialize($new['seed_bonus_release']); foreach ($seed_bonus as $i => $row) @@ -106,7 +104,7 @@ switch($mode) if ($new['bonus_upload'] && $new['bonus_upload_price']) { $upload_row = unserialize($new['bonus_upload']); - $price_row = unserialize($new['bonus_upload_price']); + $price_row = unserialize($new['bonus_upload_price']); foreach ($upload_row as $i => $row) { diff --git a/upload/admin/admin_extensions.php b/upload/admin/admin_extensions.php index d894660d9..9092c3aee 100644 --- a/upload/admin/admin_extensions.php +++ b/upload/admin/admin_extensions.php @@ -26,7 +26,7 @@ else $upload_dir = BB_ROOT . $attach_config['upload_dir']; } -include(BB_ROOT .'attach_mod/includes/functions_selects.php'); +include(ATTACH_DIR .'includes/functions_selects.php'); // Check if the language got included if (!isset($lang['TEST_SETTINGS_SUCCESSFUL'])) diff --git a/upload/admin/admin_forumauth_list.php b/upload/admin/admin_forumauth_list.php index d981ad6c4..846805280 100644 --- a/upload/admin/admin_forumauth_list.php +++ b/upload/admin/admin_forumauth_list.php @@ -9,7 +9,6 @@ if (!empty($setmodules)) require('./pagestart.php'); // ACP Header - END - // View Read Post Reply Edit Delete Sticky Announce Vote Poll PostAttach Download $simple_auth_ary = array( /* Public */ 0 => array(AUTH_ALL, AUTH_ALL, AUTH_ALL, AUTH_ALL, AUTH_REG, AUTH_REG, AUTH_MOD, AUTH_MOD, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_ALL), // Public diff --git a/upload/admin/admin_forums.php b/upload/admin/admin_forums.php index 44d9c7906..c3264607f 100644 --- a/upload/admin/admin_forums.php +++ b/upload/admin/admin_forums.php @@ -951,7 +951,6 @@ function renumber_order ($mode, $cat = 0) } $sql .= " ORDER BY $orderfield ASC"; - if (!$result = DB()->sql_query($sql)) { bb_die('Could not get list of categories / forums #2'); diff --git a/upload/admin/admin_log.php b/upload/admin/admin_log.php index 46d4f010f..4dcb6f772 100644 --- a/upload/admin/admin_log.php +++ b/upload/admin/admin_log.php @@ -245,7 +245,6 @@ else generate_pagination($url, $items_count, $per_page, $start); - $filter = array(); if ($log_rowset) diff --git a/upload/admin/admin_mass_email.php b/upload/admin/admin_mass_email.php index d2d8debb4..884a738ba 100644 --- a/upload/admin/admin_mass_email.php +++ b/upload/admin/admin_mass_email.php @@ -36,10 +36,10 @@ if (isset($_POST['submit'])) if ($group_id != -1) { $user_list = DB()->fetch_rowset(" - SELECT u.username, u.user_email, u.user_lang - FROM ". BB_USERS ." u, ". BB_USER_GROUP ." ug - WHERE ug.group_id = $group_id - AND ug.user_pending = 0 + SELECT u.username, u.user_email, u.user_lang + FROM ". BB_USERS ." u, ". BB_USER_GROUP ." ug + WHERE ug.group_id = $group_id + AND ug.user_pending = 0 AND u.user_id = ug.user_id AND u.user_active = 1 AND u.user_id NOT IN(". EXCLUDED_USERS_CSV . $user_id_sql .") @@ -48,8 +48,8 @@ if (isset($_POST['submit'])) else { $user_list = DB()->fetch_rowset(" - SELECT username, user_email, user_lang - FROM ". BB_USERS ." + SELECT username, user_email, user_lang + FROM ". BB_USERS ." WHERE user_active = 1 AND user_id NOT IN(". EXCLUDED_USERS_CSV . $user_id_sql .") "); diff --git a/upload/admin/admin_ranks.php b/upload/admin/admin_ranks.php index 2c3e9f8aa..220d1e8f8 100644 --- a/upload/admin/admin_ranks.php +++ b/upload/admin/admin_ranks.php @@ -36,7 +36,6 @@ else } } - if ($mode != '') { if ($mode == 'edit' || $mode == 'add') diff --git a/upload/admin/admin_sitemap.php b/upload/admin/admin_sitemap.php new file mode 100644 index 000000000..122178815 --- /dev/null +++ b/upload/admin/admin_sitemap.php @@ -0,0 +1,52 @@ +sql_query($sql)) +{ + bb_die('Could not query config information in admin_sitemap'); +} +else +{ + $new_params = array(); + + while ($row = DB()->sql_fetchrow($result)) + { + $config_name = $row['config_name']; + $config_value = $row['config_value']; + $default_config[$config_name] = $config_value; + $new[$config_name] = isset($_POST[$config_name]) ? $_POST[$config_name] : $default_config[$config_name]; + + if (isset($_POST['submit']) && $row['config_value'] != $new[$config_name]) + { + $new_params[$config_name] = $new[$config_name]; + } + } + + if (isset($_POST['submit'])) + { + if (!empty($new_params)) + { + bb_update_config($new_params); + } + } +} + +$s_mess = $lang['SITEMAP_CREATED'].': '.bb_date($new['sitemap_time'], $bb_cfg['post_date_format']).' '.$lang['SITEMAP_AVAILABLE'].': '.make_url('/sitemap/sitemap.xml').''; +$message = (@file_exists(BB_ROOT. "/sitemap/sitemap.xml")) ? $s_mess : $lang['SITEMAP_NOT_CREATED']; + +$template->assign_vars(array( + 'STATIC_SITEMAP' => $new['static_sitemap'], + 'MESSAGE' => $message, +)); + +print_page('admin_sitemap.tpl', 'admin'); \ No newline at end of file diff --git a/upload/admin/admin_user_search.php b/upload/admin/admin_user_search.php index 51b31f0e3..b4113f27d 100644 --- a/upload/admin/admin_user_search.php +++ b/upload/admin/admin_user_search.php @@ -795,10 +795,7 @@ else $base_url .= '&search_moderators=true&moderators_forum='. rawurlencode(stripslashes($moderators_forum)); $moderators_forum = intval($moderators_forum); - $sql = "SELECT forum_name - FROM ".BB_FORUMS." - WHERE forum_id = ".$moderators_forum; - + $sql = "SELECT forum_name FROM ".BB_FORUMS." WHERE forum_id = ".$moderators_forum; if (!$result = DB()->sql_query($sql)) { diff --git a/upload/admin/pagestart.php b/upload/admin/pagestart.php index 735740990..40449b461 100644 --- a/upload/admin/pagestart.php +++ b/upload/admin/pagestart.php @@ -5,8 +5,8 @@ define('IN_FORUM', true); define('IN_ADMIN', true); require(BB_ROOT .'common.php'); -require(BB_ROOT .'attach_mod/attachment_mod.php'); -require(BB_ROOT .'attach_mod/includes/functions_admin.php'); +require(ATTACH_DIR .'attachment_mod.php'); +require(ATTACH_DIR .'includes/functions_admin.php'); require_once(INC_DIR .'functions_admin.php'); $user->session_start(); diff --git a/upload/ajax.php b/upload/ajax.php index 27fad90d5..62c742b9f 100644 --- a/upload/ajax.php +++ b/upload/ajax.php @@ -34,12 +34,12 @@ switch ($ajax->action) case 'mod_action': case 'change_tor_status': case 'gen_passkey': - require(BB_ROOT . 'attach_mod/attachment_mod.php'); + require(ATTACH_DIR . 'attachment_mod.php'); require(INC_DIR . 'functions_torrent.php'); break; case 'change_torrent': - require(BB_ROOT . 'attach_mod/attachment_mod.php'); + require(ATTACH_DIR . 'attachment_mod.php'); require(INC_DIR . 'functions_torrent.php'); break; @@ -55,6 +55,10 @@ switch ($ajax->action) case 'group_membership': require(INC_DIR . 'functions_group.php'); break; + + case 'sitemap'; + require(INC_DIR .'class.sitemap.php'); + break; } // position in $ajax->valid_actions['xxx'] @@ -78,6 +82,7 @@ class ajax_common 'change_user_opt' => array('admin'), 'manage_user' => array('admin'), 'manage_admin' => array('admin'), + 'sitemap' => array('admin'), 'mod_action' => array('mod'), 'topic_tpl' => array('mod'), @@ -116,7 +121,7 @@ class ajax_common global $lang; // Exit if we already have errors - if (!empty($this->response['error_code'])) + if (!empty($this->response['error_code'])) { $this->send(); } @@ -127,7 +132,7 @@ class ajax_common if (!$action || !is_string($action)) { $this->ajax_die('no action specified'); - } + } elseif (!$action_params =& $this->valid_actions[$action]) { $this->ajax_die('invalid action: ' . $action); @@ -406,4 +411,9 @@ class ajax_common { require(AJAX_DIR . 'chat.php'); } + + function sitemap() + { + require(AJAX_DIR .'sitemap.php'); + } } \ No newline at end of file diff --git a/upload/ajax/edit_user_profile.php b/upload/ajax/edit_user_profile.php index 9f9aaec76..04e11f890 100644 --- a/upload/ajax/edit_user_profile.php +++ b/upload/ajax/edit_user_profile.php @@ -148,7 +148,7 @@ switch ($field) $btu[$field] = $value; $this->response['update_ids']['u_ratio'] = (string) get_bt_ratio($btu); break; - + case 'user_points': $value = htmlCHR($value); $value = (float) str_replace(',', '.', $this->request['value']); diff --git a/upload/ajax/mod_action.php b/upload/ajax/mod_action.php index f295ba29a..80153be06 100644 --- a/upload/ajax/mod_action.php +++ b/upload/ajax/mod_action.php @@ -72,13 +72,13 @@ switch ($mode) if (!$user_id) $this->ajax_die($lang['NO_USER_ID_SPECIFIED']); $reg_ip = DB()->fetch_rowset("SELECT username, user_id, user_rank FROM ". BB_USERS ." - WHERE user_reg_ip = '{$profiledata['user_reg_ip']}' + WHERE user_reg_ip = '{$profiledata['user_reg_ip']}' AND user_reg_ip != '' AND user_id != {$profiledata['user_id']} ORDER BY username ASC"); - $last_ip = DB()->fetch_rowset("SELECT username, user_id, user_rank FROM " .BB_USERS ." - WHERE user_last_ip = '{$profiledata['user_last_ip']}' + $last_ip = DB()->fetch_rowset("SELECT username, user_id, user_rank FROM " .BB_USERS ." + WHERE user_last_ip = '{$profiledata['user_last_ip']}' AND user_last_ip != '' AND user_id != {$profiledata['user_id']}"); @@ -101,7 +101,7 @@ switch ($mode) $link_last_ip .= profile_url($row) .' '; } } - + if ($profiledata['user_level'] == ADMIN && !IS_ADMIN) $reg_ip = $last_ip = $lang['HIDDEN']; elseif ($profiledata['user_level'] == MOD && IS_MOD) $reg_ip = $last_ip = $lang['HIDDEN']; else diff --git a/upload/ajax/post_mod_comment.php b/upload/ajax/post_mod_comment.php index d8ae99fc7..3cc5e0f5a 100644 --- a/upload/ajax/post_mod_comment.php +++ b/upload/ajax/post_mod_comment.php @@ -10,7 +10,7 @@ $mc_text = (string) $this->request['mc_text']; if (!$mc_text = prepare_message($mc_text)) $this->ajax_die($lang['EMPTY_MESSAGE']); $post = DB()->fetch_row(" - SELECT + SELECT p.post_id, p.poster_id FROM ". BB_POSTS ." p WHERE p.post_id = $post_id diff --git a/upload/ajax/sitemap.php b/upload/ajax/sitemap.php new file mode 100644 index 000000000..b5aa40e2a --- /dev/null +++ b/upload/ajax/sitemap.php @@ -0,0 +1,64 @@ +request['mode']; +$map = new sitemap(); +$html = ''; + +switch ($mode) +{ + case 'create': + $map->create(); + if (@file_exists(BB_ROOT. "/sitemap/sitemap.xml")) + { + $html .= $lang['SITEMAP_CREATED'].': '.bb_date(TIMENOW, $bb_cfg['post_date_format']).' '.$lang['SITEMAP_AVAILABLE'].': '.make_url('/sitemap/sitemap.xml').''; + } else { + $html .= $lang['SITEMAP_NOT_CREATED']; + } + break; + + case 'search_update': + if (!@file_exists(BB_ROOT. "/sitemap/sitemap.xml")) + { + $map->create(); + } + + $map_link = make_url('/sitemap/sitemap.xml'); + + if (strpos($map->send_url("http://google.com/webmasters/sitemaps/ping?sitemap=", $map_link), "successfully added") !== false) { + $html .= '
'.$lang['SITEMAP_NOTIFY_SEARCH'].' Google: '.$lang['SITEMAP_SENT'].''; + } else { + $html .= '
'.$lang['SITEMAP_NOTIFY_SEARCH'].' Google: '.$lang['SITEMAP_ERROR'].' URL: http://google.com/webmasters/sitemaps/ping?sitemap='.$map_link.''; + } + + if (strpos($map->send_url("http://ping.blogs.yandex.ru/ping?sitemap=", $map_link), "OK") !== false) { + $html .= '
'.$lang['SITEMAP_NOTIFY_SEARCH'].' Yandex: '.$lang['SITEMAP_SENT'].''; + } else { + $html .= '
'.$lang['SITEMAP_NOTIFY_SEARCH'].' Yandex: '.$lang['SITEMAP_ERROR'].' URL: http://ping.blogs.yandex.ru/ping?sitemap='.$map_link.''; + } + + if ($map->send_url("http://www.bing.com/webmaster/ping.aspx?siteMap=", $map_link)) { + $html .= '
'.$lang['SITEMAP_NOTIFY_SEARCH'].' Bing: '.$lang['SITEMAP_SENT'].''; + } else { + $html .= '
'.$lang['SITEMAP_NOTIFY_SEARCH'].' Bing: '.$lang['SITEMAP_ERROR'].' URL: http://www.bing.com/webmaster/ping.aspx?siteMap='.$map_link.''; + } + + if (strpos($map->send_url("http://rpc.weblogs.com/pingSiteForm?name=InfraBlog&url=", $map_link), "Thanks for the ping") !== false) { + $html .= '
'.$lang['SITEMAP_NOTIFY_SEARCH'].' Weblogs: '.$lang['SITEMAP_SENT'].''; + } else { + $html .= '
'.$lang['SITEMAP_NOTIFY_SEARCH'].' Weblogs: '.$lang['SITEMAP_ERROR'].' URL: http://rpc.weblogs.com/pingSiteForm?name=InfraBlog&url='.$map_link.''; + } + + if ($map->send_url("http://search.yahooapis.com/SiteExplorerService/V1/ping?sitemap=", $map_link)) { + $html .= '
'.$lang['SITEMAP_NOTIFY_SEARCH'].' Yahoo: '.$lang['SITEMAP_SENT'].''; + } else { + $html .= '
'.$lang['SITEMAP_NOTIFY_SEARCH'].' Yahoo: '.$lang['SITEMAP_ERROR'].' URL: http://search.yahooapis.com/SiteExplorerService/V1/ping?sitemap='.$map_link.''; + } + break; +} + +$this->response['html'] = $html; +$this->response['mode'] = $mode; \ No newline at end of file diff --git a/upload/ajax/view_torrent.php b/upload/ajax/view_torrent.php index cfd8657b2..5f9ed7227 100644 --- a/upload/ajax/view_torrent.php +++ b/upload/ajax/view_torrent.php @@ -10,6 +10,9 @@ if (!isset($this->request['attach_id'])) } $attach_id = (int) $this->request['attach_id']; +global $bnc_error; +$bnc_error = 0; + $torrent = DB()->fetch_row("SELECT at.attach_id, at.physical_filename FROM ". BB_ATTACHMENTS_DESC ." at WHERE at.attach_id = $attach_id LIMIT 1"); if (!$torrent) $this->ajax_die($lang['EMPTY_ATTACH_ID']); $filename = get_attachments_dir() .'/'. $torrent['physical_filename']; @@ -79,7 +82,7 @@ class torrent function build_filelist_array () { global $lang; - + $info = $this->tor_decoded['info']; if (isset($info['name.utf-8'])) @@ -126,7 +129,8 @@ class torrent { if (is_string($cur_files_ary)) { - bb_die($lang['ERROR_BUILD']); + $GLOBALS['bnc_error'] = 1; + break(1); } $cur_files_ary[] = $this->build_file_item($name, $length); } @@ -169,4 +173,6 @@ function clean_tor_dirname ($dirname) return str_replace(array('[', ']', '<', '>', "'"), array('[', ']', '<', '>', '''), $dirname); } +if ($bnc_error) $tor_filelist = ''.$lang['ERROR_BUILD'].'

'.$tor_filelist; + $this->response['html'] = $tor_filelist; \ No newline at end of file diff --git a/upload/attach_mod/attachment_mod.php b/upload/attach_mod/attachment_mod.php index 0e01672a6..3c87a76b0 100644 --- a/upload/attach_mod/attachment_mod.php +++ b/upload/attach_mod/attachment_mod.php @@ -2,11 +2,11 @@ if (!defined('IN_FORUM')) die("Hacking attempt"); -require(BB_ROOT .'attach_mod/includes/functions_includes.php'); -require(BB_ROOT .'attach_mod/includes/functions_attach.php'); -require(BB_ROOT .'attach_mod/includes/functions_delete.php'); -require(BB_ROOT .'attach_mod/includes/functions_thumbs.php'); -require(BB_ROOT .'attach_mod/includes/functions_filetypes.php'); +require(ATTACH_DIR .'includes/functions_includes.php'); +require(ATTACH_DIR .'includes/functions_attach.php'); +require(ATTACH_DIR .'includes/functions_delete.php'); +require(ATTACH_DIR .'includes/functions_thumbs.php'); +require(ATTACH_DIR .'includes/functions_filetypes.php'); if (defined('ATTACH_INSTALL')) { @@ -76,7 +76,7 @@ if (!($attach_config = CACHE('bb_cache')->get('attach_config'))) CACHE('bb_cache')->set('attach_config', $attach_config, 86400); } -include(BB_ROOT .'attach_mod/displaying.php'); -include(BB_ROOT .'attach_mod/posting_attachments.php'); +include(ATTACH_DIR .'displaying.php'); +include(ATTACH_DIR .'posting_attachments.php'); $upload_dir = $attach_config['upload_dir']; \ No newline at end of file diff --git a/upload/attach_mod/displaying.php b/upload/attach_mod/displaying.php index 4c544a2a6..1efd81481 100644 --- a/upload/attach_mod/displaying.php +++ b/upload/attach_mod/displaying.php @@ -344,7 +344,7 @@ function display_attachments($post_id) // bt if ($link && ($attachments['_'. $post_id][$i]['extension'] === TORRENT_EXT)) { - include(BB_ROOT .'attach_mod/displaying_torrent.php'); + include(ATTACH_DIR .'displaying_torrent.php'); } else if ($link) { diff --git a/upload/attach_mod/includes/functions_includes.php b/upload/attach_mod/includes/functions_includes.php index 897a35760..a4e8708ad 100644 --- a/upload/attach_mod/includes/functions_includes.php +++ b/upload/attach_mod/includes/functions_includes.php @@ -1,21 +1,5 @@
_________________
'; -$bb_cfg['user_signature_end'] = ''; // Это позволит использовать html теги, которые требуют закрытия. Например или +$bb_cfg['user_signature_start'] = '

_________________
'; +$bb_cfg['user_signature_end'] = '
'; // Это позволит использовать html теги, которые требуют закрытия. Например
или // Posts $bb_cfg['use_posts_cache'] = true; // if you switch from ON to OFF, you need to TRUNCATE `bb_posts_html` table @@ -475,7 +475,6 @@ $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['tidy_post'] = true; $bb_cfg['spam_filter_file_path'] = ''; //BB_PATH .'/misc/spam_filter_words.txt'; // Posting @@ -502,7 +501,7 @@ $bb_cfg['user_not_active_days_keep'] = 180; // inactive users but only wi $bb_cfg['groupcp_members_per_page'] = 300; // Tidy -if ($bb_cfg['tidy_post'] && !function_exists('tidy_repair_string') or !extension_loaded('tidy')) die('Set $bb_cfg[\'tidy_post\'] = false in config.php'); +$bb_cfg['tidy_post'] = (!extension_loaded('tidy')) ? false : true; // Ads $bb_cfg['show_ads'] = false; @@ -581,15 +580,14 @@ $banned_user_agents = array( # 'wget', ); -$bb_cfg['porno_forums_screenshots_topic_id'] = 0; // (int) 7 -$bb_cfg['trash_forum_id'] = 0; // (int) 7 +$bb_cfg['trash_forum_id'] = 0; // (int) 7 -$bb_cfg['first_logon_redirect_url'] = 'index.php'; -$bb_cfg['terms_and_conditions_url'] = 'index.php'; +$bb_cfg['first_logon_redirect_url'] = 'index.php'; +$bb_cfg['terms_and_conditions_url'] = 'index.php'; -$bb_cfg['user_agreement_url'] = 'misc.php?do=info&show=user_agreement'; -$bb_cfg['copyright_holders_url'] = 'misc.php?do=info&show=copyright_holders'; -$bb_cfg['advert_url'] = 'misc.php?do=info&show=advert'; +$bb_cfg['user_agreement_url'] = 'misc.php?do=info&show=user_agreement'; +$bb_cfg['copyright_holders_url'] = 'misc.php?do=info&show=copyright_holders'; +$bb_cfg['advert_url'] = 'misc.php?do=info&show=advert'; // Captcha $bb_cfg['captcha'] = array( diff --git a/upload/download.php b/upload/download.php index d9c87bb3d..6af6676dc 100644 --- a/upload/download.php +++ b/upload/download.php @@ -5,8 +5,8 @@ define('BB_SCRIPT', 'download'); define('IN_SERVICE', true); define('NO_GZIP', true); define('BB_ROOT', './'); -require(BB_ROOT ."common.php"); -require(BB_ROOT ."attach_mod/attachment_mod.php"); +require(BB_ROOT .'common.php'); +require(ATTACH_DIR .'attachment_mod.php'); $datastore->enqueue(array( 'attach_extensions', @@ -164,7 +164,6 @@ for ($i = 0; $i < $num_auth_pages && $authorised == false; $i++) } } - if (!$authorised) { bb_die($lang['SORRY_AUTH_VIEW_ATTACH']); diff --git a/upload/includes/sphinxapi.php b/upload/includes/api.sphinx.php old mode 100644 new mode 100755 similarity index 100% rename from upload/includes/sphinxapi.php rename to upload/includes/api.sphinx.php diff --git a/upload/includes/class.correct.php b/upload/includes/class.correct.php index b155797bb..4056e5f01 100644 --- a/upload/includes/class.correct.php +++ b/upload/includes/class.correct.php @@ -69,7 +69,7 @@ class Text_LangCorrect #английский (all) private $en = '[a-zA-Z]'; - + #английский (uppercase) private $en_uc = '[A-Z]'; @@ -2822,7 +2822,7 @@ class Text_LangCorrect /** * Исправляет клавиатурные опечатки в тексте. - * + * * @param scalar|null $s Текст в кодировке UTF-8. * @param int $mode Константы self::SIMILAR_CHARS и/или self::KEYBOARD_LAYOUT, * (их можно комбинировать). Описание констант см. выше. @@ -3055,7 +3055,7 @@ class Text_LangCorrect #если в $word были спецсимволы, а в $s их уже нет, возвращаем $s if ($is_sc && ! preg_match('/' . $this->sc . '/sSX', $s)) return $s; - + #если в $s спецсимволов больше чем букв, возвращаем $word $sc_count = 0; $s = preg_replace('/' . $this->sc . '/sSX', '', $s, -1, $sc_count); diff --git a/upload/includes/class.reflection.php b/upload/includes/class.reflection.php index ca8122581..49b113a7c 100644 --- a/upload/includes/class.reflection.php +++ b/upload/includes/class.reflection.php @@ -17,7 +17,7 @@ * Useful links * http://www.ilia.ws/archives/205-Type-hinting-for-PHP-5.3.html * http://php.net/manual/en/language.oop5.typehinting.php - * + * * @example ReflectionTypeHint_example.php * @link http://code.google.com/p/php5-reflection-type-hint/ * @license http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/upload/includes/class.sitemap.php b/upload/includes/class.sitemap.php new file mode 100644 index 000000000..75fd7a0e0 --- /dev/null +++ b/upload/includes/class.sitemap.php @@ -0,0 +1,229 @@ +home = 'http://'.$bb_cfg['server_name'].'/'; + } + + function build_map () { + $map = "\n\n"; + + $map .= $this->get_static(); + $map .= $this->get_forum(); + $map .= $this->get_topic(); + $map .= ""; + + return $map; + } + + function build_index ($count) { + $map = "\n\n"; + + $lastmod = date("Y-m-d"); + $map .= "\n{$this->home}sitemap/sitemap1.xml\n{$lastmod}\n\n"; + + for ($i = 0; $i < $count; $i++) { + $t = $i + 2; + $map .= "\n{$this->home}sitemap/sitemap{$t}.xml\n{$lastmod}\n\n"; + } + + $map .= ""; + + return $map; + } + + function build_stat () { + $map = "\n\n"; + + $map .= $this->get_static(); + $map .= $this->get_forum(); + $map .= ""; + + return $map; + } + + function build_map_topic ($n) { + $map = "\n\n"; + + $map .= $this->get_topic($n); + $map .= ""; + + return $map; + } + + function get_forum () { + global $datastore; + + $this->priority = $this->cat_priority; + $xml = ""; + $lastmod = date( "Y-m-d" ); + + if (!$forums = $datastore->get('cat_forums')) + { + $datastore->update('cat_forums'); + $forums = $datastore->get('cat_forums'); + } + $not_forums_id = $forums['not_auth_forums']['guest_view']; + + $ignore_forum_sql = ($not_forums_id) ? "WHERE forum_id NOT IN($not_forums_id)" : ''; + + $sql = DB()->sql_query("SELECT forum_id, forum_topics, forum_parent, forum_name FROM ".BB_FORUMS." ".$ignore_forum_sql." ORDER BY forum_id ASC"); + + while ($row = DB()->sql_fetchrow($sql)) { + if (function_exists('seo_url')) $loc = $this->home . seo_url(FORUM_URL . $row['forum_id'], $row['forum_name']); + else $loc = $this->home . FORUM_URL. $row['forum_id']; + $xml .= $this->get_xml( $loc, $lastmod ); + } + + return $xml; + } + + function get_topic ($page = false) { + global $datastore; + + $xml = ""; + $this->priority = $this->topic_priority; + + if ($page) { + $page = $page - 1; + $page = $page * 40000; + $this->limit = " LIMIT {$page},40000"; + } else { + if ($this->limit < 1) $this->limit = false; + if( $this->limit ) { + $this->limit = " LIMIT 0," . $this->limit; + } else { + $this->limit = ""; + } + } + + if (!$forums = $datastore->get('cat_forums')) { + $datastore->update('cat_forums'); + $forums = $datastore->get('cat_forums'); + } + + $not_forums_id = $forums['not_auth_forums']['guest_view']; + $ignore_forum_sql = ($not_forums_id) ? "WHERE forum_id NOT IN($not_forums_id)" : ''; + + $sql = DB()->sql_query("SELECT topic_id, topic_title, topic_time FROM " . BB_TOPICS . " ".$ignore_forum_sql." ORDER BY topic_time DESC" . $this->limit); + + while ($row = DB()->sql_fetchrow($sql)) { + if (function_exists('seo_url')) $loc = $this->home . seo_url(TOPIC_URL . $row['topic_id'], $row['topic_title']); + else $loc = $this->home . TOPIC_URL. $row['topic_id']; + $xml .= $this->get_xml($loc, date("Y-m-d", $row['topic_time'])); + } + + return $xml; + } + + function get_static () { + global $bb_cfg; + + $xml = ""; + $lastmod = date("Y-m-d"); + $this->priority = $this->stat_priority; + + if (isset($bb_cfg['static_sitemap'])) { + $static_url = preg_replace("/\s/", '', $bb_cfg['static_sitemap']); //вырезаем переносы строк + preg_match_all ('#(https?://[\w-]+[\.\w-]+/((?!https?://)[\w- ./?%&=])+)#', $static_url, $out); + + $static_url = count($out['0']); + if ($static_url > 0) + { + foreach($out['0'] as $url) + { + $loc = $url; + $xml .= $this->get_xml($loc, $lastmod); + } + } + } + + return $xml; + } + + function get_xml ($loc, $lastmod) { + $xml = "\t\n"; + + $xml .= "\t\t$loc\n"; + $xml .= "\t\t$lastmod\n"; + $xml .= "\t\t" . $this->priority . "\n"; + $xml .= "\t\n"; + + return $xml; + } + + function send_url ($url, $map) { + $data = false; + $file = $url.urlencode($map); + + if (function_exists('curl_init')) { + $ch = curl_init(); + + curl_setopt($ch, CURLOPT_URL, $file); + curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); + curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 6); + + $data = curl_exec($ch); + curl_close($ch); + + return $data; + } else { + return @file_get_contents($file); + } + } + + function create () { + $row = DB()->fetch_row("SELECT COUNT(*) AS count FROM ". BB_TOPICS); + + if (!$this->limit) $this->limit = $row['count']; + if ($this->limit > 40000) { + $pages_count = @ceil($row['count'] / 40000); + + $sitemap = $this->build_index($pages_count); + + $handler = fopen(BB_ROOT. "/sitemap/sitemap.xml", "wb+"); + fwrite($handler, $sitemap); + fclose($handler); + @chmod(BB_ROOT. "/sitemap/sitemap.xml", 0666); + + $sitemap = $this->build_stat(); + + $handler = fopen(BB_ROOT. "/sitemap/sitemap1.xml", "wb+"); + fwrite($handler, $sitemap); + fclose($handler); + @chmod(BB_ROOT. "/sitemap/sitemap.xml", 0666); + + for ($i = 0; $i < $pages_count; $i++) { + $t = $i + 2; + $n = $i + 1; + + $sitemap = $this->build_map_topic($n); + $handler = fopen(BB_ROOT. "/sitemap/sitemap{$t}.xml", "wb+"); + fwrite($handler, $sitemap); + fclose($handler); + @chmod(BB_ROOT. "/sitemap/sitemap{$t}.xml", 0666); + } + } else { + $sitemap = $this->build_map(); + + $handler = fopen(BB_ROOT. "/sitemap/sitemap.xml", "wb+"); + fwrite($handler, $sitemap); + fclose($handler); + @chmod(BB_ROOT. "/sitemap/sitemap.xml", 0666); + } + + $params['sitemap_time'] = TIMENOW; + bb_update_config($params); + } +} \ No newline at end of file diff --git a/upload/includes/class.utf8.php b/upload/includes/class.utf8.php index 3ac1eea84..ad740d657 100644 --- a/upload/includes/class.utf8.php +++ b/upload/includes/class.utf8.php @@ -2390,7 +2390,7 @@ class UTF8 /** * Convert UTF-16 / UCS-2 encoding string to UTF-8. * Surrogates UTF-16 are supported! - * + * * In Russian: * Преобразует строку из кодировки UTF-16 / UCS-2 в UTF-8. * Суррогаты UTF-16 поддерживаются! @@ -3078,7 +3078,6 @@ class UTF8 return self::convert_case($data, CASE_UPPER); } - /** * Convert all HTML entities to native UTF-8 characters * Функция декодирует гораздо больше именованных сущностей, чем стандартная html_entity_decode() diff --git a/upload/includes/cron/jobs/prune_inactive_users.php b/upload/includes/cron/jobs/prune_inactive_users.php index bbf9b1964..a170d8168 100644 --- a/upload/includes/cron/jobs/prune_inactive_users.php +++ b/upload/includes/cron/jobs/prune_inactive_users.php @@ -2,14 +2,9 @@ if (!defined('BB_ROOT')) die(basename(__FILE__)); -$users_per_cycle = 1000; - require_once(INC_DIR .'functions_admin.php'); -$excluded_users = join(',', array( - GUEST_UID, - BOT_UID, -)); +$users_per_cycle = 1000; while (true) { @@ -19,32 +14,30 @@ while (true) if ($not_activated_days = intval($bb_cfg['user_not_activated_days_keep'])) { - $sql = " - SELECT user_id - FROM ". BB_USERS ." - WHERE user_active = 0 - AND user_lastvisit = 0 - AND user_regdate < ". (TIMENOW - 86400*$not_activated_days) ." - AND user_id NOT IN($excluded_users) - LIMIT $users_per_cycle - "; - foreach (DB()->fetch_rowset($sql) as $row) + $sql = DB()->fetch_rowset("SELECT user_id FROM ". BB_USERS ." + WHERE user_level = 0 + AND user_lastvisit = 0 + AND user_session_time = 0 + AND user_regdate <= ". (TIMENOW - 86400 * $not_activated_days) ." + AND user_id NOT IN(". EXCLUDED_USERS_CSV .") + LIMIT $users_per_cycle"); + + foreach ($sql as $row) { $not_activated_users[] = $row['user_id']; } } + if ($not_active_days = intval($bb_cfg['user_not_active_days_keep'])) { - $sql = " - SELECT user_id - FROM ". BB_USERS ." - WHERE user_active = 1 - AND user_posts = 0 - AND user_lastvisit < ". (TIMENOW - 86400*$not_active_days) ." - AND user_id NOT IN($excluded_users) - LIMIT $users_per_cycle - "; - foreach (DB()->fetch_rowset($sql) as $row) + $sql = DB()->fetch_rowset("SELECT user_id FROM ". BB_USERS ." + WHERE user_level = 0 + AND user_posts = 0 + AND user_lastvisit <= ". (TIMENOW - 86400 * $not_active_days) ." + AND user_id NOT IN(". EXCLUDED_USERS_CSV .") + LIMIT $users_per_cycle"); + + foreach ($sql as $row) { $not_active_users[] = $row['user_id']; } @@ -61,6 +54,4 @@ while (true) } sleep(3); -} - -unset($prune_users, $not_activated_users, $not_active_users); \ No newline at end of file +} \ No newline at end of file diff --git a/upload/includes/cron/jobs/sitemap.php b/upload/includes/cron/jobs/sitemap.php new file mode 100644 index 000000000..5d9e55ae3 --- /dev/null +++ b/upload/includes/cron/jobs/sitemap.php @@ -0,0 +1,19 @@ +create(); + +if (@file_exists(BB_ROOT. "/sitemap/sitemap.xml")) +{ + $map_link = make_url('/sitemap/sitemap.xml'); + + $map->send_url("http://google.com/webmasters/sitemaps/ping?sitemap=", $map_link); + $map->send_url("http://ping.blogs.yandex.ru/ping?sitemap=", $map_link); + $map->send_url("http://www.bing.com/webmaster/ping.aspx?siteMap=", $map_link); + $map->send_url("http://rpc.weblogs.com/pingSiteForm?name=InfraBlog&url=", $map_link); + $map->send_url("http://search.yahooapis.com/SiteExplorerService/V1/ping?sitemap=", $map_link); +} \ No newline at end of file diff --git a/upload/includes/datastore/build_stats.php b/upload/includes/datastore/build_stats.php index 8d2a6282e..30d3cc851 100644 --- a/upload/includes/datastore/build_stats.php +++ b/upload/includes/datastore/build_stats.php @@ -41,7 +41,7 @@ if ($bb_cfg['gender']) $male = DB()->fetch_row("SELECT COUNT(user_id) AS male FROM ". BB_USERS ." WHERE user_gender = ". MALE ." AND user_id NOT IN(". EXCLUDED_USERS_CSV .")"); $female = DB()->fetch_row("SELECT COUNT(user_id) AS female FROM ". BB_USERS ." WHERE user_gender = ". FEMALE ." AND user_id NOT IN(". EXCLUDED_USERS_CSV .")"); $unselect = DB()->fetch_row("SELECT COUNT(user_id) AS unselect FROM ". BB_USERS ." WHERE user_gender = 0 AND user_id NOT IN(". EXCLUDED_USERS_CSV .")"); - + $data['male'] = $male['male']; $data['female'] = $female['female']; $data['unselect'] = $unselect['unselect']; @@ -51,10 +51,10 @@ if ($bb_cfg['gender']) if ($bb_cfg['birthday_check_day'] && $bb_cfg['birthday_enabled']) { $sql = DB()->fetch_rowset("SELECT user_id, username, user_rank , user_birthday - FROM ". BB_USERS ." - WHERE user_id NOT IN(". EXCLUDED_USERS_CSV .") + FROM ". BB_USERS ." + WHERE user_id NOT IN(". EXCLUDED_USERS_CSV .") AND user_birthday != '0000-00-00' - AND user_active = 1 + AND user_active = 1 ORDER BY user_level DESC, username "); diff --git a/upload/includes/functions.php b/upload/includes/functions.php index c24c1149f..adbba5681 100644 --- a/upload/includes/functions.php +++ b/upload/includes/functions.php @@ -1048,7 +1048,7 @@ function select_get_val ($key, &$val, $options_ary, $default, $num = true) * * @access private */ -function set_var(&$result, $var, $type, $multibyte = false, $strip = true) +function set_var (&$result, $var, $type, $multibyte = false, $strip = true) { settype($var, $type); $result = $var; @@ -1077,7 +1077,7 @@ function set_var(&$result, $var, $type, $multibyte = false, $strip = true) * * Used to get passed variable */ -function request_var($var_name, $default, $multibyte = false, $cookie = false) +function request_var ($var_name, $default, $multibyte = false, $cookie = false) { if (!$cookie && isset($_COOKIE[$var_name])) { @@ -1311,27 +1311,21 @@ function bb_update_config ($params, $table = BB_CONFIG) bb_get_config($table, true, true); } -function get_db_stat($mode) +function get_db_stat ($mode) { - switch( $mode ) + switch ($mode) { case 'usercount': - $sql = "SELECT COUNT(user_id) AS total - FROM " . BB_USERS; + $sql = "SELECT COUNT(user_id) AS total FROM " . BB_USERS; break; case 'newestuser': - $sql = "SELECT user_id, username - FROM " . BB_USERS . " - WHERE user_id <> " . GUEST_UID . " - ORDER BY user_id DESC - LIMIT 1"; + $sql = "SELECT user_id, username FROM " . BB_USERS . " WHERE user_id <> " . GUEST_UID . " ORDER BY user_id DESC LIMIT 1"; break; case 'postcount': case 'topiccount': - $sql = "SELECT SUM(forum_topics) AS topic_total, SUM(forum_posts) AS post_total - FROM " . BB_FORUMS; + $sql = "SELECT SUM(forum_topics) AS topic_total, SUM(forum_posts) AS post_total FROM " . BB_FORUMS; break; } @@ -1342,7 +1336,7 @@ function get_db_stat($mode) $row = DB()->sql_fetchrow($result); - switch ( $mode ) + switch ($mode) { case 'usercount': return $row['total']; @@ -1361,7 +1355,7 @@ function get_db_stat($mode) return false; } -function clean_username($username) +function clean_username ($username) { $username = mb_substr(htmlspecialchars(str_replace("\'", "'", trim($username))), 0, 25, 'UTF-8'); $username = bb_rtrim($username, "\\"); @@ -1650,7 +1644,7 @@ function generate_pagination ($base_url, $num_items, $per_page, $start_item, $ad $total_pages = ceil($num_items/$per_page); - if ( $total_pages == 1 || $num_items == 0 ) + if ($total_pages == 1 || $num_items == 0) { return ''; } @@ -1658,20 +1652,20 @@ function generate_pagination ($base_url, $num_items, $per_page, $start_item, $ad $on_page = floor($start_item / $per_page) + 1; $page_string = ''; - if ( $total_pages > ((2*($begin_end + $from_middle)) + 2) ) + if ($total_pages > ((2*($begin_end + $from_middle)) + 2)) { $init_page_max = ( $total_pages > $begin_end ) ? $begin_end : $total_pages; - for($i = 1; $i < $init_page_max + 1; $i++) + for ($i = 1; $i < $init_page_max + 1; $i++) { $page_string .= ( $i == $on_page ) ? '' . $i . '' : '' . $i . ''; - if ( $i < $init_page_max ) + if ($i < $init_page_max) { $page_string .= ", "; } } - if ( $total_pages > $begin_end ) + if ($total_pages > $begin_end) { - if ( $on_page > 1 && $on_page < $total_pages ) + if ($on_page > 1 && $on_page < $total_pages) { $page_string .= ( $on_page > ($begin_end + $from_middle + 1) ) ? ' ... ' : ', '; @@ -1679,10 +1673,10 @@ function generate_pagination ($base_url, $num_items, $per_page, $start_item, $ad $init_page_max = ( $on_page < $total_pages - ($begin_end + $from_middle) ) ? $on_page : $total_pages - ($begin_end + $from_middle); - for($i = $init_page_min - $from_middle; $i < $init_page_max + ($from_middle + 1); $i++) + for ($i = $init_page_min - $from_middle; $i < $init_page_max + ($from_middle + 1); $i++) { $page_string .= ($i == $on_page) ? '' . $i . '' : '' . $i . ''; - if ( $i < $init_page_max + $from_middle ) + if ($i < $init_page_max + $from_middle) { $page_string .= ', '; } @@ -1693,10 +1687,10 @@ function generate_pagination ($base_url, $num_items, $per_page, $start_item, $ad { $page_string .= ' ... '; } - for($i = $total_pages - ($begin_end - 1); $i < $total_pages + 1; $i++) + for ($i = $total_pages - ($begin_end - 1); $i < $total_pages + 1; $i++) { $page_string .= ( $i == $on_page ) ? '' . $i . '' : '' . $i . ''; - if( $i < $total_pages ) + if ($i < $total_pages) { $page_string .= ", "; } @@ -1705,24 +1699,24 @@ function generate_pagination ($base_url, $num_items, $per_page, $start_item, $ad } else { - for($i = 1; $i < $total_pages + 1; $i++) + for ($i = 1; $i < $total_pages + 1; $i++) { $page_string .= ( $i == $on_page ) ? '' . $i . '' : '' . $i . ''; - if ( $i < $total_pages ) + if ($i < $total_pages) { $page_string .= ', '; } } } - if ( $add_prevnext_text ) + if ($add_prevnext_text) { - if ( $on_page > 1 ) + if ($on_page > 1) { $page_string = ' ' . $lang['PREVIOUS_PAGE'] . '  ' . $page_string; } - if ( $on_page < $total_pages ) + if ($on_page < $total_pages) { $page_string .= '  ' . $lang['NEXT_PAGE'] . ''; } @@ -1746,7 +1740,7 @@ function generate_pagination ($base_url, $num_items, $per_page, $start_item, $ad // This does exactly what preg_quote() does in PHP 4-ish // If you just need the 1-parameter preg_quote call, then don't bother using this. // -function bb_preg_quote($str, $delimiter) +function bb_preg_quote ($str, $delimiter) { $text = preg_quote($str); $text = str_replace($delimiter, '\\' . $delimiter, $text); @@ -1759,7 +1753,7 @@ function bb_preg_quote($str, $delimiter) // calling script, note that the vars are passed as references this just makes it easier // to return both sets of arrays // -function obtain_word_list(&$orig_word, &$replacement_word) +function obtain_word_list (&$orig_word, &$replacement_word) { global $bb_cfg; @@ -1861,7 +1855,7 @@ function bb_simple_die ($txt) die($txt); } -function bb_realpath($path) +function bb_realpath ($path) { return (!@function_exists('realpath') || !@realpath(INC_DIR . 'functions.php')) ? $path : @realpath($path); } @@ -1871,13 +1865,11 @@ function login_redirect ($url = '') redirect(LOGIN_URL . '?redirect='. (($url) ? $url : $_SERVER['REQUEST_URI'])); } -function meta_refresh($url, $time = 5) +function meta_refresh ($url, $time = 5) { global $template; - $template->assign_var( - 'META' , '' - ); + $template->assign_var('META', ''); } function redirect ($url) @@ -1914,10 +1906,8 @@ function redirect ($url) exit; } -//-- mod : topic display order --------------------------------------------------------------------- -//-- add // build a list of the sortable fields or return field name -function get_forum_display_sort_option($selected_row=0, $action='list', $list='sort') +function get_forum_display_sort_option ($selected_row = 0, $action = 'list', $list = 'sort') { global $lang; @@ -1958,7 +1948,6 @@ function get_forum_display_sort_option($selected_row=0, $action='list', $list='s } return $res; } -//-- fin mod : topic display order ----------------------------------------------------------------- function topic_attachment_image($switch_attachment) { @@ -2010,12 +1999,12 @@ if (!function_exists('array_combine')) $key_count = count($keys); $value_count = count($values); if ($key_count !== $value_count) { - user_error('array_combine() Both parameters should have equal number of elements', E_USER_WARNING); + user_error('array_combine() both parameters should have equal number of elements', E_USER_WARNING); return false; } if ($key_count === 0 || $value_count === 0) { - user_error('array_combine() Both parameters should have number of elements at least 0', E_USER_WARNING); + user_error('array_combine() both parameters should have number of elements at least 0', E_USER_WARNING); return false; } @@ -2313,7 +2302,6 @@ function poll_is_active ($t_data) return ($t_data['topic_vote'] == 1 && $t_data['topic_time'] > TIMENOW - $bb_cfg['poll_max_days']*86400); } - function print_confirmation ($tpl_vars) { global $template, $lang; @@ -2483,12 +2471,6 @@ function clean_text_match ($text, $ltrim_star = true, $remove_stopwords = false, $ltrim_chars = ($ltrim_star) ? ' *-!' : ' '; $wrap_with_quotes = preg_match('#^"[^"]+"$#', $text); -# $min_word_len = max(2, $bb_cfg['search_min_word_len'] - 1); -# $max_word_len = $bb_cfg['search_max_word_len']; - -# $text = preg_replace('#\b\w{1,'. $min_word_len .'}\b#', '', $text); -# $text = preg_replace('#\b\w{'. $max_word_len .',}\b#', '', $text); - $text = ' '. str_compact(ltrim($text, $ltrim_chars)) .' '; if ($remove_stopwords) @@ -2498,23 +2480,19 @@ function clean_text_match ($text, $ltrim_star = true, $remove_stopwords = false, if ($bb_cfg['search_engine_type'] == 'sphinx') { - $text = preg_replace('#(?<=\S)\-#u', ' ', $text); // "1-2-3" -> "1 2 3" - $text = preg_replace('#[^0-9a-zA-Zа-яА-ЯёЁ\-_*|]#u', ' ', $text); // допустимые символы (кроме " которые отдельно) - $text = str_replace('-', ' -', $text); // - только в начале слова - $text = str_replace('*', '* ', $text); // * только в конце слова - $text = preg_replace('#\s*\|\s*#u', '|', $text); // "| " -> "|" - $text = preg_replace('#\|+#u', ' | ', $text); // "||" -> "|" - $text = preg_replace('#(?<=\s)[\-*]+\s#u', ' ', $text); // одиночные " - ", " * " + $text = preg_replace('#(?<=\S)\-#u', ' ', $text); // "1-2-3" -> "1 2 3" + $text = preg_replace('#[^0-9a-zA-Zа-яА-ЯёЁ\-_*|]#u', ' ', $text); // допустимые символы (кроме " которые отдельно) + $text = str_replace('-', ' -', $text); // - только в начале слова + $text = str_replace('*', '* ', $text); // * только в конце слова + $text = preg_replace('#\s*\|\s*#u', '|', $text); // "| " -> "|" + $text = preg_replace('#\|+#u', ' | ', $text); // "||" -> "|" + $text = preg_replace('#(?<=\s)[\-*]+\s#u', ' ', $text); // одиночные " - ", " * " $text = trim($text, ' -|'); $text = str_compact($text); $text_match_sql = ($wrap_with_quotes && $text != '') ? '"'. $text .'"' : $text; } else { -# if ($all_words) -# { -# $text = preg_replace('#\s(\b\w)#', ' +$1', $text); -# } $text_match_sql = DB()->escape(trim($text)); } @@ -2522,7 +2500,8 @@ function clean_text_match ($text, $ltrim_star = true, $remove_stopwords = false, { bb_die($lang['NO_SEARCH_MATCH']); } - return $text_match_sql; + + return $text_match_sql; } function init_sphinx () @@ -2531,14 +2510,12 @@ function init_sphinx () if (!isset($sphinx)) { - require(INC_DIR .'sphinxapi.php'); + require(INC_DIR .'api.sphinx.php'); $sphinx = new SphinxClient(); $sphinx->SetConnectTimeout(5); -# $sphinx->SetMaxQueryTime(2); $sphinx->SetRankingMode(SPH_RANK_NONE); $sphinx->SetMatchMode(SPH_MATCH_BOOLEAN); -# $sphinx->SetSortMode($mode, $sortby=""); } } @@ -2661,7 +2638,7 @@ function pad_with_space ($str) return ($str) ? " $str " : $str; } -function create_magnet($infohash, $auth_key, $logged_in) +function create_magnet ($infohash, $auth_key, $logged_in) { global $bb_cfg, $_GET, $userdata, $images; @@ -2680,7 +2657,7 @@ function set_die_append_msg ($forum_id = null, $topic_id = null) $template->assign_var('BB_DIE_APPEND_MSG', $msg); } -function set_pr_die_append_msg($pr_uid) +function set_pr_die_append_msg ($pr_uid) { global $lang, $template; @@ -2778,7 +2755,7 @@ function get_avatar ($user_id, $ext_id, $allow_avatar = true, $size = true, $hei { // TODO } - + $height = ($height != '') ? 'height="'. $height .'"' : ''; $width = ($width != '') ? 'width="'. $width .'"' : ''; @@ -2813,13 +2790,13 @@ function gender_image ($gender) switch ($gender) { case MALE: - $user_gender = ''. $lang['GENDER_SELECT'][1] .''; + $user_gender = ''. $lang['GENDER_SELECT'][MALE] .''; break; case FEMALE: - $user_gender = ''. $lang['GENDER_SELECT'][1] .''; + $user_gender = ''. $lang['GENDER_SELECT'][FEMALE] .''; break; default: - $user_gender = ''. $lang['GENDER_SELECT'][0] .''; + $user_gender = ''. $lang['GENDER_SELECT'][NOGENDER] .''; break; } } diff --git a/upload/includes/functions_post.php b/upload/includes/functions_post.php index 8a208bd94..04129124c 100644 --- a/upload/includes/functions_post.php +++ b/upload/includes/functions_post.php @@ -406,7 +406,7 @@ function user_notification($mode, &$post_data, &$topic_title, &$forum_id, &$topi if ($update_watched_sql) { DB()->query("UPDATE ". BB_TOPICS_WATCH ." - SET notify_status = ". TOPIC_WATCH_UN_NOTIFIED ." + SET notify_status = ". TOPIC_WATCH_UNNOTIFIED ." WHERE topic_id = $topic_id AND user_id IN ($update_watched_sql) "); @@ -423,7 +423,7 @@ function user_notification($mode, &$post_data, &$topic_title, &$forum_id, &$topi { DB()->query(" INSERT INTO " . BB_TOPICS_WATCH . " (user_id, topic_id, notify_status) - VALUES (". $userdata['user_id'] .", $topic_id, ". TOPIC_WATCH_NOTIFIED .") + VALUES (". $userdata['user_id'] .", $topic_id, ". TOPIC_WATCH_NOTIFIED .") "); } } diff --git a/upload/includes/functions_report.php b/upload/includes/functions_report.php index 6fb0ec122..40f7ab60f 100644 --- a/upload/includes/functions_report.php +++ b/upload/includes/functions_report.php @@ -581,7 +581,6 @@ function report_count_obtain() return $report_count; } - // // Obtains reports (for a specific report module if $module_id is defined) // Includes authorisation check if $auth_check is set to true. diff --git a/upload/includes/functions_validate.php b/upload/includes/functions_validate.php index 3f6fa9ecb..6f47589bb 100644 --- a/upload/includes/functions_validate.php +++ b/upload/includes/functions_validate.php @@ -16,7 +16,7 @@ function validate_username ($username, $check_ban_and_taken = true) if (mb_strlen($username, 'UTF-8') > USERNAME_MAX_LENGTH) { return $lang['USERNAME_TOO_LONG']; - } + } else if (mb_strlen($username, 'UTF-8') < USERNAME_MIN_LENGTH) { return $lang['USERNAME_TOO_SMALL']; @@ -102,7 +102,7 @@ function validate_email ($email, $check_ban_and_taken = true) $email_sql = DB()->escape($email); if ($row = DB()->fetch_row("SELECT `user_email` FROM ". BB_USERS ." WHERE user_email = '$email_sql' LIMIT 1")) - { + { if($row['user_email'] == $userdata['user_email']) return false; else diff --git a/upload/includes/init_bb.php b/upload/includes/init_bb.php index c2b061db1..46cf5c51a 100644 --- a/upload/includes/init_bb.php +++ b/upload/includes/init_bb.php @@ -161,7 +161,7 @@ define('TOPIC_LOCKED', 1); define('TOPIC_MOVED', 2); define('TOPIC_WATCH_NOTIFIED', 1); -define('TOPIC_WATCH_UN_NOTIFIED', 0); +define('TOPIC_WATCH_UNNOTIFIED', 0); // Topic types define('POST_NORMAL', 0); @@ -240,6 +240,7 @@ define('POST_REPORT_REASON_URL', 'r'); // Gender define('MALE', 1); define('FEMALE', 2); +define('NOGENDER', 0); // Poll # 1 - обычный опрос @@ -428,7 +429,7 @@ if (!empty($banned_user_agents)) { if (strstr(USER_AGENT, $agent)) { - $filename = 'Skachivajte fajly brauzerom (скачивайте файлы браузером)'; + $filename = 'Download files by using browser'; $output = '@'; header('Content-Type: text/plain'); header('Content-Disposition: attachment; filename="'. $filename .'"'); diff --git a/upload/includes/page_header.php b/upload/includes/page_header.php index 080ffda67..fb30f8cf8 100644 --- a/upload/includes/page_header.php +++ b/upload/includes/page_header.php @@ -46,7 +46,6 @@ if (defined('SHOW_ONLINE') && SHOW_ONLINE) 'LOGGED_IN_USER_LIST' => ${$online_list}['userlist'], 'USERS_ONLINE_COUNTS' => ${$online_list}['cnt'], 'RECORD_USERS' => sprintf($lang['RECORD_ONLINE_USERS'], $bb_cfg['record_online_users'], bb_date($bb_cfg['record_online_date'])), - 'U_VIEWONLINE' => "viewonline.php", )); } diff --git a/upload/includes/sessions.php b/upload/includes/sessions.php index 5e52c32ec..252cd1875 100644 --- a/upload/includes/sessions.php +++ b/upload/includes/sessions.php @@ -657,9 +657,6 @@ class user_common bb_setcookie(COOKIE_TOPIC, ''); bb_setcookie(COOKIE_FORUM, ''); bb_setcookie(COOKIE_MARK, ''); - - // Info message - # $template->assign_var('INFO_MESSAGE', $lang['FORUMS_MARKED_READ']); } } @@ -797,7 +794,6 @@ class user_common } } - // // userdata cache // diff --git a/upload/includes/template.php b/upload/includes/template.php index 17a108201..39e67ca21 100644 --- a/upload/includes/template.php +++ b/upload/includes/template.php @@ -33,8 +33,7 @@ define('XS_TAG_ELSEIF', 7); define('XS_TAG_ENDIF', 8); define('XS_TAG_BEGINELSE', 11); - -class Template +class Template { var $classname = "Template"; @@ -528,7 +527,6 @@ class Template return $varref; } - /** * Generates a reference to the array of data values for the given * (possibly nested) block namespace. This is a string of the form: @@ -1134,7 +1132,6 @@ class Template return $tokens; } - /** * Compiles code and writes to cache if needed */ diff --git a/upload/includes/ucp/email.php b/upload/includes/ucp/email.php index 69fa48db0..a1c3c90d0 100644 --- a/upload/includes/ucp/email.php +++ b/upload/includes/ucp/email.php @@ -43,7 +43,7 @@ if ($row = DB()->fetch_row($sql)) { $subject = trim(html_entity_decode($_POST['subject'])); $message = trim(html_entity_decode($_POST['message'])); - + if(!$subject) $errors[] = $lang['EMPTY_SUBJECT_EMAIL']; if(!$message) $errors[] = $lang['EMPTY_MESSAGE_EMAIL']; diff --git a/upload/includes/ucp/register.php b/upload/includes/ucp/register.php index 35f28cf1e..f6632b6a2 100644 --- a/upload/includes/ucp/register.php +++ b/upload/includes/ucp/register.php @@ -93,7 +93,7 @@ switch ($mode) */ case 'editprofile': if (IS_GUEST) login_redirect(); - + // field => can_edit $profile_fields = array( 'user_active' => IS_ADMIN, @@ -355,7 +355,7 @@ foreach ($profile_fields as $field => $can_edit) $errors[] = sprintf($lang['BIRTHDAY_TO_LOW'], $bb_cfg['birthday_min_age']); } } - + $pr_data['user_birthday'] = $user_birthday; $db_data['user_birthday'] = $user_birthday; } @@ -521,7 +521,6 @@ foreach ($profile_fields as $field => $can_edit) } $tp_data['USER_OCC'] = $pr_data['user_occ']; break; - /** * Интересы @@ -553,8 +552,7 @@ foreach ($profile_fields as $field => $can_edit) } $tp_data['USER_SKYPE'] = $pr_data['user_skype']; break; - - + /** * Twitter */ @@ -571,7 +569,7 @@ foreach ($profile_fields as $field => $can_edit) } $tp_data['USER_TWITTER'] = $pr_data['user_twitter']; break; - + /** * Выбор шаблона (edit) */ diff --git a/upload/includes/ucp/viewprofile.php b/upload/includes/ucp/viewprofile.php index 53d43f688..626d64c17 100644 --- a/upload/includes/ucp/viewprofile.php +++ b/upload/includes/ucp/viewprofile.php @@ -120,7 +120,7 @@ $template->assign_vars(array( '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']] : '', + 'GENDER' => ($bb_cfg['gender']) ? $lang['GENDER_SELECT'][$profiledata['user_gender']] : '', 'BIRTHDAY' => ($bb_cfg['birthday_enabled'] && $profiledata['user_birthday'] != '0000-00-00') ? $profiledata['user_birthday'] : '', 'AGE' => ($bb_cfg['birthday_enabled'] && $profiledata['user_birthday'] != '0000-00-00') ? birthday_age($profiledata['user_birthday']) : '', @@ -189,13 +189,13 @@ else if (IS_MOD) // Show users torrent-profile if (IS_AM || $profile_user_id || !bf($profiledata['user_opt'], 'user_opt', 'user_dls')) { - require(INC_DIR .'ucp/viewtorrent.php'); + require(INC_DIR .'ucp/viewtorrent.php'); } // Ajax bt_userdata if (IS_AM || $profile_user_id) { - show_bt_userdata($profiledata['user_id']); + show_bt_userdata($profiledata['user_id']); } else { @@ -227,13 +227,13 @@ if (IS_ADMIN) $user_restrictions = array(); -if (bf($profiledata['user_opt'], 'user_opt', 'dis_avatar')) $user_restrictions[] = $lang['HIDE_AVATARS']; -if (bf($profiledata['user_opt'], 'user_opt', 'dis_sig')) $user_restrictions[] = $lang['SHOW_CAPTION']; -if (bf($profiledata['user_opt'], 'user_opt', 'dis_passkey')) $user_restrictions[] = $lang['DOWNLOAD_TORRENT']; -if (bf($profiledata['user_opt'], 'user_opt', 'dis_pm')) $user_restrictions[] = $lang['SEND_PM']; -if (bf($profiledata['user_opt'], 'user_opt', 'dis_post')) $user_restrictions[] = $lang['SEND_MESSAGE']; -if (bf($profiledata['user_opt'], 'user_opt', 'dis_post_edit')) $user_restrictions[] = $lang['EDIT_POST']; -if (bf($profiledata['user_opt'], 'user_opt', 'dis_topic')) $user_restrictions[] = $lang['NEW_THREADS']; +if (bf($profiledata['user_opt'], 'user_opt', 'dis_avatar')) $user_restrictions[] = $lang['HIDE_AVATARS']; +if (bf($profiledata['user_opt'], 'user_opt', 'dis_sig')) $user_restrictions[] = $lang['SHOW_CAPTION']; +if (bf($profiledata['user_opt'], 'user_opt', 'dis_passkey')) $user_restrictions[] = $lang['DOWNLOAD_TORRENT']; +if (bf($profiledata['user_opt'], 'user_opt', 'dis_pm')) $user_restrictions[] = $lang['SEND_PM']; +if (bf($profiledata['user_opt'], 'user_opt', 'dis_post')) $user_restrictions[] = $lang['SEND_MESSAGE']; +if (bf($profiledata['user_opt'], 'user_opt', 'dis_post_edit')) $user_restrictions[] = $lang['EDIT_POST']; +if (bf($profiledata['user_opt'], 'user_opt', 'dis_topic')) $user_restrictions[] = $lang['NEW_THREADS']; $template->assign_var('USER_RESTRICTIONS', join('
  • ', $user_restrictions)); diff --git a/upload/includes/ucp/viewtorrent.php b/upload/includes/ucp/viewtorrent.php index 36d852d71..b3176ff4a 100644 --- a/upload/includes/ucp/viewtorrent.php +++ b/upload/includes/ucp/viewtorrent.php @@ -13,9 +13,9 @@ $not_auth_forums_sql = ($excluded_forums_csv) ? " " : ''; $sql = DB()->fetch_rowset(" - SELECT - f.forum_id, f.forum_name, t.topic_title, - tor.tor_type, tor.size, + SELECT + f.forum_id, f.forum_name, t.topic_title, + tor.tor_type, tor.size, sn.seeders, sn.leechers, tr.* FROM ". BB_FORUMS ." f, ". BB_TOPICS ." t, ". BB_BT_TRACKER ." tr, ". BB_BT_TORRENTS ." tor, ". BB_BT_TRACKER_SNAP ." sn WHERE tr.user_id = {$profiledata['user_id']} @@ -51,18 +51,18 @@ if ($releasing) $is_gold = ''; if ($tr_cfg['gold_silver_enabled']) { - if ($row['tor_type'] == TOR_TYPE_GOLD) - { - $is_gold = ' '; - } - elseif ($row['tor_type'] == TOR_TYPE_SILVER) - { - $is_gold = ' '; - } - } + if ($row['tor_type'] == TOR_TYPE_GOLD) + { + $is_gold = ' '; + } + elseif ($row['tor_type'] == TOR_TYPE_SILVER) + { + $is_gold = ' '; + } + } $topic_title = wbr($row['topic_title']); - + $template->assign_block_vars('released', array( 'ROW_CLASS' => !($i % 2) ? 'row1' : 'row2', 'FORUM_NAME' => htmlCHR($row['forum_name']), @@ -70,11 +70,11 @@ if ($releasing) 'U_VIEW_FORUM' => FORUM_URL . $row['forum_id'], 'U_VIEW_TOPIC' => TOPIC_URL . $row['topic_id'], 'TOR_TYPE' => $is_gold, - 'TOPIC_SEEDERS' => ($row['seeders']) ? $row['seeders'] : 0, - 'TOPIC_LEECHERS' => ($row['leechers']) ? $row['leechers'] : 0, + 'TOPIC_SEEDERS' => ($row['seeders']) ? $row['seeders'] : 0, + 'TOPIC_LEECHERS' => ($row['leechers']) ? $row['leechers'] : 0, 'SPEED_UP' => ($row['speed_up']) ? humn_size($row['speed_up'], 0, 'KB') .'/s' : '-', )); - + $releasing_count++; } } @@ -86,18 +86,18 @@ if ($seeding) $is_gold = ''; if ($tr_cfg['gold_silver_enabled']) { - if ($row['tor_type'] == TOR_TYPE_GOLD) - { - $is_gold = ' '; - } - elseif ($row['tor_type'] == TOR_TYPE_SILVER) - { - $is_gold = ' '; - } - } + if ($row['tor_type'] == TOR_TYPE_GOLD) + { + $is_gold = ' '; + } + elseif ($row['tor_type'] == TOR_TYPE_SILVER) + { + $is_gold = ' '; + } + } $topic_title = wbr($row['topic_title']); - + $template->assign_block_vars('seed', array( 'ROW_CLASS' => !($i % 2) ? 'row1' : 'row2', 'FORUM_NAME' => htmlCHR($row['forum_name']), @@ -105,11 +105,11 @@ if ($seeding) 'U_VIEW_FORUM' => FORUM_URL . $row['forum_id'], 'U_VIEW_TOPIC' => TOPIC_URL . $row['topic_id'], 'TOR_TYPE' => $is_gold, - 'TOPIC_SEEDERS' => ($row['seeders']) ? $row['seeders'] : 0, - 'TOPIC_LEECHERS' => ($row['leechers']) ? $row['leechers'] : 0, + 'TOPIC_SEEDERS' => ($row['seeders']) ? $row['seeders'] : 0, + 'TOPIC_LEECHERS' => ($row['leechers']) ? $row['leechers'] : 0, 'SPEED_UP' => ($row['speed_up']) ? humn_size($row['speed_up'], 0, 'KB') .'/s' : '-', )); - + $seeding_count++; } } @@ -121,20 +121,20 @@ if ($leeching) $is_gold = ''; if ($tr_cfg['gold_silver_enabled']) { - if ($row['tor_type'] == TOR_TYPE_GOLD) - { - $is_gold = ' '; - } - elseif ($row['tor_type'] == TOR_TYPE_SILVER) - { - $is_gold = ' '; - } - } + if ($row['tor_type'] == TOR_TYPE_GOLD) + { + $is_gold = ' '; + } + elseif ($row['tor_type'] == TOR_TYPE_SILVER) + { + $is_gold = ' '; + } + } $compl_size = ($row['remain'] && $row['size'] && $row['size'] > $row['remain']) ? ($row['size'] - $row['remain']) : 0; $compl_perc = ($compl_size) ? floor($compl_size * 100 / $row['size']) : 0; $topic_title = wbr($row['topic_title']); - + $template->assign_block_vars('leech', array( 'ROW_CLASS' => !($i % 2) ? 'row1' : 'row2', 'FORUM_NAME' => htmlCHR($row['forum_name']), @@ -143,11 +143,11 @@ if ($leeching) 'U_VIEW_TOPIC' => TOPIC_URL . $row['topic_id'], 'COMPL_PERC' => $compl_perc, 'TOR_TYPE' => $is_gold, - 'TOPIC_SEEDERS' => ($row['seeders']) ? $row['seeders'] : 0, - 'TOPIC_LEECHERS' => ($row['leechers']) ? $row['leechers'] : 0, + 'TOPIC_SEEDERS' => ($row['seeders']) ? $row['seeders'] : 0, + 'TOPIC_LEECHERS' => ($row['leechers']) ? $row['leechers'] : 0, 'SPEED_DOWN' => ($row['speed_down']) ? humn_size($row['speed_down'], 0, 'KB') .'/s' : '-', )); - + $leeching_count++; } } @@ -159,4 +159,4 @@ $template->assign_vars(array( 'L_SEEDINGS' => "{$lang['SEEDING']}: ". (($seeding_count) ? "$seeding_count" : '0'), 'L_LEECHINGS' => "{$lang['LEECHING']}: ". (($leeching_count) ? "$leeching_count" : '0'), 'USER_DLS' => $releasing_count || $seeding_count || $leeching_count, -)); +)); \ No newline at end of file diff --git a/upload/index.php b/upload/index.php index 5267759c7..4358fb7ec 100644 --- a/upload/index.php +++ b/upload/index.php @@ -24,7 +24,7 @@ if ($bb_cfg['show_latest_news']) } if ($bb_cfg['show_network_news']) { - $datastore->enqueue('network_news'); + $datastore->enqueue('network_news'); } // Init userdata @@ -368,7 +368,7 @@ if ($bb_cfg['birthday_check_day'] && $bb_cfg['birthday_enabled']) { $week_list = $today_list = array(); $week_all = $today_all = false; - + if ($stats['birthday_week_list']) { shuffle($stats['birthday_week_list']); diff --git a/upload/language/en/email/admin_send_email.tpl b/upload/language/en/email/admin_send_email.tpl index d092ee52e..04e6bcc44 100644 --- a/upload/language/en/email/admin_send_email.tpl +++ b/upload/language/en/email/admin_send_email.tpl @@ -4,7 +4,7 @@ The following is an email sent to you by an administrator of "{SITENAME}". If th {BOARD_EMAIL} -Include this full email (particularly the headers). +Include this full email (particularly the headers). Message sent to you follows: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/upload/language/en/html/copyright_holders.html b/upload/language/en/html/copyright_holders.html index 757cdd10f..9b1e41724 100644 --- a/upload/language/en/html/copyright_holders.html +++ b/upload/language/en/html/copyright_holders.html @@ -10,7 +10,6 @@ -

    Information for copyright holders.

    diff --git a/upload/language/en/html/user_agreement.html b/upload/language/en/html/user_agreement.html index d2e5c6481..786415569 100644 --- a/upload/language/en/html/user_agreement.html +++ b/upload/language/en/html/user_agreement.html @@ -5,7 +5,7 @@
    USER AGREEMENT
    - + -

    Информация для правообладателей.

    diff --git a/upload/language/ru/html/user_agreement.html b/upload/language/ru/html/user_agreement.html index 2af2cda5c..db0cec8d1 100644 --- a/upload/language/ru/html/user_agreement.html +++ b/upload/language/ru/html/user_agreement.html @@ -5,7 +5,7 @@
    ПОЛЬЗОВАТЕЛЬСКОЕ СОГЛАШЕНИЕ
    - + -

    Інформація для правовласників.

    diff --git a/upload/language/ua/html/user_agreement.html b/upload/language/ua/html/user_agreement.html index d41e22b32..36ec9f14a 100644 --- a/upload/language/ua/html/user_agreement.html +++ b/upload/language/ua/html/user_agreement.html @@ -5,7 +5,7 @@
    УГОДА
    - + + + + +

    {L_SITEMAP_ADMIN}

    + +
    +
  • + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_INFORMATION}:
    {MESSAGE}
    {L_SITEMAP_OPTIONS}: + {L_SITEMAP_CREATE}   + {L_SITEMAP_NOTIFY}
    +
    +
    {L_SITEMAP_WHAT_NEXT}
    +

    1. {L_SITEMAP_GOOGLE_1}

    +

    2. {L_SITEMAP_GOOGLE_2}

    +

    3. {L_SITEMAP_YANDEX_1}

    +

    4. {L_SITEMAP_YANDEX_2}

    +
    {L_SITEMAP_ADD_TITLE}
    + {L_SITEMAP_ADD_PAGE}: + +
    +

    {L_SITEMAP_ADD_EXP_1} {L_SITEMAP_ADD_EXP_2}

    +
    +    + +
    + \ No newline at end of file diff --git a/upload/templates/admin/report_module_edit_body.tpl b/upload/templates/admin/report_module_edit_body.tpl index 9854948ba..018f02cae 100644 --- a/upload/templates/admin/report_module_edit_body.tpl +++ b/upload/templates/admin/report_module_edit_body.tpl @@ -3,7 +3,7 @@ {L_EDIT_REPORT_MODULE} - + {L_REPORT_MODULE}: {MODULE_TITLE}
    diff --git a/upload/templates/admin/report_modules_body.tpl b/upload/templates/admin/report_modules_body.tpl index 440efcbf8..a194997aa 100644 --- a/upload/templates/admin/report_modules_body.tpl +++ b/upload/templates/admin/report_modules_body.tpl @@ -42,7 +42,7 @@ - + {L_INACTIVE_MODULES} diff --git a/upload/templates/admin/report_reason_edit_body.tpl b/upload/templates/admin/report_reason_edit_body.tpl index 0d47067be..27542688f 100644 --- a/upload/templates/admin/report_reason_edit_body.tpl +++ b/upload/templates/admin/report_reason_edit_body.tpl @@ -1,7 +1,7 @@
    - +
    {switch_report_errors.report_errors.MESSAGE}
    @@ -11,7 +11,7 @@

    - + diff --git a/upload/templates/default/css/main.css b/upload/templates/default/css/main.css index 013e517bd..d05b4e76e 100644 --- a/upload/templates/default/css/main.css +++ b/upload/templates/default/css/main.css @@ -139,7 +139,7 @@ a.seed:visited, a.seedmed:visited, a.seedsmall:visited { color: #006600; text-decoration: none; } a.points, a.pointsmed, a.pointssmall, -a.points:visited, a.pointsmed:visited, a.pointssmall:visited, .points +a.points:visited, a.pointsmed:visited, a.pointssmall:visited, .points { color: blue; text-decoration: none; } @@ -434,7 +434,7 @@ table.message td { } .cat, td.cat, td.catTitle, td.catHead, td.catBottom { - padding: 5px 4px 6px; + padding: 5px 4px 0; background: #E0E5E9 url(../images/cellpic.gif) repeat-x; } .catTitle { @@ -1532,5 +1532,4 @@ div#autocomplete_popup span.regenerate { filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0); background-repeat: repeat-x; border-color: #dca7a7; -} - \ No newline at end of file +} \ No newline at end of file diff --git a/upload/templates/default/groupcp.tpl b/upload/templates/default/groupcp.tpl index e8fffad45..710ba98e7 100644 --- a/upload/templates/default/groupcp.tpl +++ b/upload/templates/default/groupcp.tpl @@ -42,7 +42,6 @@ - @@ -217,7 +216,7 @@ - + diff --git a/upload/templates/default/images/cellpic1.gif b/upload/templates/default/images/cellpic1.gif index 7c2011429..49420e715 100644 Binary files a/upload/templates/default/images/cellpic1.gif and b/upload/templates/default/images/cellpic1.gif differ diff --git a/upload/templates/default/index.tpl b/upload/templates/default/index.tpl index ccb1c7466..c7f718a49 100644 --- a/upload/templates/default/index.tpl +++ b/upload/templates/default/index.tpl @@ -116,11 +116,6 @@

    - - {L_NO_POSTS} @@ -156,7 +151,7 @@
    -

    {L_WHOSONLINE}

    +

    {L_WHOSONLINE}

    {L_ADD_REASON} {pending.PM} {pending.EMAIL} {pending.FROM}{pending.JOINED}{pending.JOINED} {pending.POSTS} {pending.WWW}
    diff --git a/upload/templates/default/login.tpl b/upload/templates/default/login.tpl index d20f55279..80a37e869 100644 --- a/upload/templates/default/login.tpl +++ b/upload/templates/default/login.tpl @@ -21,7 +21,6 @@

    {L_ENTER_PASSWORD}

    -
    diff --git a/upload/templates/default/modcp.tpl b/upload/templates/default/modcp.tpl index 53a6dddba..d34e8923f 100644 --- a/upload/templates/default/modcp.tpl +++ b/upload/templates/default/modcp.tpl @@ -47,7 +47,6 @@ - @@ -115,7 +114,6 @@ -
    diff --git a/upload/templates/default/page_header.tpl b/upload/templates/default/page_header.tpl index 693ebee98..8d3f06bce 100644 --- a/upload/templates/default/page_header.tpl +++ b/upload/templates/default/page_header.tpl @@ -249,7 +249,7 @@ if ( (typeof(window.opera) != "undefined" && window.opera.version() < 13) || (wi {L_SEARCH}| {L_TERMS}| {L_USERGROUPS}| - {L_MEMBERLIST}| + {L_MEMBERLIST}
    @@ -109,9 +109,8 @@
    @@ -518,13 +518,5 @@ $(document).ready(function() { - -
    - - -
    {INFO_MESSAGE}
    -
    - - \ No newline at end of file diff --git a/upload/templates/default/posting.tpl b/upload/templates/default/posting.tpl index 6a3b85c92..8a71e6de8 100644 --- a/upload/templates/default/posting.tpl +++ b/upload/templates/default/posting.tpl @@ -71,7 +71,7 @@
    - - - + + diff --git a/upload/templates/default/posting_attach.tpl b/upload/templates/default/posting_attach.tpl index 401223af2..3031188fd 100644 --- a/upload/templates/default/posting_attach.tpl +++ b/upload/templates/default/posting_attach.tpl @@ -29,7 +29,6 @@ - diff --git a/upload/templates/default/posting_smilies.tpl b/upload/templates/default/posting_smilies.tpl index f7577d261..1b30ea54c 100644 --- a/upload/templates/default/posting_smilies.tpl +++ b/upload/templates/default/posting_smilies.tpl @@ -15,30 +15,32 @@ function emoticon(text) { +
    - - - - - - - - - - -
    {L_EMOTICONS}
    - - - - - - - - - - - - - -
    {smilies_row.smilies_col.SMILEY_DESC}
    {L_MORE_EMOTICONS}

    {L_CLOSE_WINDOW}
    + + + + + + + + + +
    {L_EMOTICONS}
    + + + + + + + + + + + + + +
    {smilies_row.smilies_col.SMILEY_DESC}
    {L_MORE_EMOTICONS}
    +

    {L_CLOSE_WINDOW}
    + \ No newline at end of file diff --git a/upload/templates/default/posting_tpl.tpl b/upload/templates/default/posting_tpl.tpl index f27bf261b..792d9f659 100644 --- a/upload/templates/default/posting_tpl.tpl +++ b/upload/templates/default/posting_tpl.tpl @@ -571,7 +571,6 @@ var TPL = { submit_fn : {} }; - /* ------------------------------------------------------------------------------------------------- -- el_attr -------------------------------------------------------------------------------------- @@ -4722,7 +4721,6 @@ $(function(){ - @@ -4767,7 +4765,6 @@ $(function(){ - diff --git a/upload/templates/default/privmsgs.tpl b/upload/templates/default/privmsgs.tpl index c455a974d..cc6b3b67b 100644 --- a/upload/templates/default/privmsgs.tpl +++ b/upload/templates/default/privmsgs.tpl @@ -2,22 +2,6 @@
    - - - - - - - - - - - - -
    {BOX_SIZE_STATUS}
    -
    -
    0%50%100%
    - diff --git a/upload/templates/default/report_change_body.tpl b/upload/templates/default/report_change_body.tpl index e7c049dfb..2943b7cb6 100644 --- a/upload/templates/default/report_change_body.tpl +++ b/upload/templates/default/report_change_body.tpl @@ -1,5 +1,5 @@
    {BOX_SIZE_STATUS}
    - +
    diff --git a/upload/templates/default/report_form_body.tpl b/upload/templates/default/report_form_body.tpl index 7026386e5..185a9116e 100644 --- a/upload/templates/default/report_form_body.tpl +++ b/upload/templates/default/report_form_body.tpl @@ -1,13 +1,13 @@ - +
    - + - +
    {switch_report_errors.report_errors.MESSAGE}
    @@ -17,9 +17,9 @@

    - + - + diff --git a/upload/templates/default/report_index_body.tpl b/upload/templates/default/report_index_body.tpl index 7612bf3c5..5456d3ce8 100644 --- a/upload/templates/default/report_index_body.tpl +++ b/upload/templates/default/report_index_body.tpl @@ -6,7 +6,7 @@ diff --git a/upload/templates/default/report_open_body.tpl b/upload/templates/default/report_open_body.tpl index 34130b3cf..11e475993 100644 --- a/upload/templates/default/report_open_body.tpl +++ b/upload/templates/default/report_open_body.tpl @@ -39,7 +39,7 @@ function checked_toggle(form, status)
    {L_WRITE_REPORT}
    {L_STATISTICS}:

    - + @@ -17,12 +17,9 @@
    {L_STATISTIC} {L_VALUE}
    -
    - {L_DELETED_REPORTS}:

    - @@ -60,16 +57,16 @@
    - + - +
    {L_MARK_ALL} :: {L_INVERT_SELECT}
    - +
    - +
    @@ -81,7 +81,7 @@ function checked_toggle(form, status) - + + + @@ -79,16 +79,16 @@ document.write(''); + + + diff --git a/upload/templates/default/usercp_topic_watch.tpl b/upload/templates/default/usercp_topic_watch.tpl index 010520f73..be0c3c52c 100644 --- a/upload/templates/default/usercp_topic_watch.tpl +++ b/upload/templates/default/usercp_topic_watch.tpl @@ -61,7 +61,6 @@ td.topic_id { cursor: pointer; } -
    {L_MARK_ALL} :: {L_INVERT_SELECT} diff --git a/upload/templates/default/search.tpl b/upload/templates/default/search.tpl index 1fc950f98..71410abce 100644 --- a/upload/templates/default/search.tpl +++ b/upload/templates/default/search.tpl @@ -109,7 +109,6 @@ -
    diff --git a/upload/templates/default/search_results.tpl b/upload/templates/default/search_results.tpl index 186f4e601..dd5ccbdb0 100644 --- a/upload/templates/default/search_results.tpl +++ b/upload/templates/default/search_results.tpl @@ -84,7 +84,6 @@ $(document).ready(function(){ return false; }); - $('td.topic_id').click(function(){ if (!ajax.in_edit_mode) { $('#show-edit-btn a').click(); diff --git a/upload/templates/default/usercp_register.tpl b/upload/templates/default/usercp_register.tpl index bbf152b81..4490e2f1f 100644 --- a/upload/templates/default/usercp_register.tpl +++ b/upload/templates/default/usercp_register.tpl @@ -63,12 +63,12 @@ document.write('');
    {L_USERNAME}: * {USERNAME} -
    {L_EMAIL}: *
    {L_EMAIL_EXPLAIN}
    readonly="readonly" style="color: gray;" /> -
    {L_NEW_PASSWORD}: *
    {L_PASSWORD_IF_CHANGED}
    {L_PASSWORD}: *
    -   -  {L_PASSWORD_LONG} +   +  {L_PASSWORD_LONG}
    {L_CONFIRM_PASSWORD}: *
    {L_PASSWORD_CONFIRM_IF_CHANGED}
    - - -