Объединение со старым репозиторием

Из-за конфликтов миграций перелилось не все, из-за этого будут вестись доработки + версия вообще уже откровенно старая.
Необходимо все изменения проверить с нуля и начать процесс восстановления работоспособности движка на php7.
This commit is contained in:
Exile 2016-01-19 00:05:36 +03:00
commit 044042e592
39 changed files with 928 additions and 619 deletions

View file

@ -25,14 +25,12 @@ $default_cfg_str = array(
$default_cfg_bool = array( $default_cfg_bool = array(
'bt_disable_dht' => 1, 'bt_disable_dht' => 1,
'bt_show_peers' => 1, 'bt_show_peers' => 1,
'bt_add_auth_key' => 1,
'bt_show_dl_list' => 0, 'bt_show_dl_list' => 0,
'bt_dl_list_only_1st_page' => 1, 'bt_dl_list_only_1st_page' => 1,
'bt_dl_list_only_count' => 1, 'bt_dl_list_only_count' => 1,
'bt_replace_ann_url' => 1, 'bt_replace_ann_url' => 1,
'bt_show_ip_only_moder' => 1, 'bt_show_ip_only_moder' => 1,
'bt_show_port_only_moder' => 1, 'bt_show_port_only_moder' => 1,
'bt_check_announce_url' => 0,
'bt_show_dl_list_buttons' => 1, 'bt_show_dl_list_buttons' => 1,
'bt_show_dl_but_will' => 1, 'bt_show_dl_but_will' => 1,
'bt_show_dl_but_down' => 0, 'bt_show_dl_but_down' => 0,

View file

@ -140,7 +140,6 @@ CREATE TABLE IF NOT EXISTS `bb_bt_torhelp` (
DROP TABLE IF EXISTS `bb_bt_torrents`; DROP TABLE IF EXISTS `bb_bt_torrents`;
CREATE TABLE IF NOT EXISTS `bb_bt_torrents` ( CREATE TABLE IF NOT EXISTS `bb_bt_torrents` (
`info_hash` varbinary(20) NOT NULL DEFAULT '', `info_hash` varbinary(20) NOT NULL DEFAULT '',
`post_id` mediumint(8) unsigned NOT NULL DEFAULT '0',
`poster_id` mediumint(9) NOT NULL DEFAULT '0', `poster_id` mediumint(9) NOT NULL DEFAULT '0',
`topic_id` mediumint(8) unsigned NOT NULL DEFAULT '0', `topic_id` mediumint(8) unsigned NOT NULL DEFAULT '0',
`forum_id` smallint(5) unsigned NOT NULL DEFAULT '0', `forum_id` smallint(5) unsigned NOT NULL DEFAULT '0',
@ -156,7 +155,6 @@ CREATE TABLE IF NOT EXISTS `bb_bt_torrents` (
`speed_up` int(11) NOT NULL DEFAULT '0', `speed_up` int(11) NOT NULL DEFAULT '0',
`speed_down` int(11) NOT NULL DEFAULT '0', `speed_down` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`info_hash`), PRIMARY KEY (`info_hash`),
UNIQUE KEY `post_id` (`post_id`),
UNIQUE KEY `topic_id` (`topic_id`), UNIQUE KEY `topic_id` (`topic_id`),
KEY `reg_time` (`reg_time`), KEY `reg_time` (`reg_time`),
KEY `forum_id` (`forum_id`), KEY `forum_id` (`forum_id`),
@ -341,11 +339,9 @@ INSERT INTO `bb_config` VALUES ('birthday_enabled', '1');
INSERT INTO `bb_config` VALUES ('birthday_max_age', '99'); INSERT INTO `bb_config` VALUES ('birthday_max_age', '99');
INSERT INTO `bb_config` VALUES ('birthday_min_age', '10'); INSERT INTO `bb_config` VALUES ('birthday_min_age', '10');
INSERT INTO `bb_config` VALUES ('birthday_check_day', '7'); INSERT INTO `bb_config` VALUES ('birthday_check_day', '7');
INSERT INTO `bb_config` VALUES ('bt_add_auth_key', '1');
INSERT INTO `bb_config` VALUES ('bt_allow_spmode_change', '1'); INSERT INTO `bb_config` VALUES ('bt_allow_spmode_change', '1');
INSERT INTO `bb_config` VALUES ('bt_announce_url', 'https://demo.torrentpier.me/bt/announce.php'); INSERT INTO `bb_config` VALUES ('bt_announce_url', 'https://demo.torrentpier.me/bt/announce.php');
INSERT INTO `bb_config` VALUES ('bt_disable_dht', '0'); INSERT INTO `bb_config` VALUES ('bt_disable_dht', '0');
INSERT INTO `bb_config` VALUES ('bt_check_announce_url', '0');
INSERT INTO `bb_config` VALUES ('bt_del_addit_ann_urls', '1'); INSERT INTO `bb_config` VALUES ('bt_del_addit_ann_urls', '1');
INSERT INTO `bb_config` VALUES ('bt_dl_list_only_1st_page', '1'); INSERT INTO `bb_config` VALUES ('bt_dl_list_only_1st_page', '1');
INSERT INTO `bb_config` VALUES ('bt_dl_list_only_count', '1'); INSERT INTO `bb_config` VALUES ('bt_dl_list_only_count', '1');
@ -476,75 +472,6 @@ CREATE TABLE IF NOT EXISTS `bb_disallow` (
-- Records of bb_disallow -- Records of bb_disallow
-- ---------------------------- -- ----------------------------
-- ----------------------------
-- Table structure for `bb_extensions`
-- ----------------------------
DROP TABLE IF EXISTS `bb_extensions`;
CREATE TABLE IF NOT EXISTS `bb_extensions` (
`ext_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`group_id` mediumint(8) unsigned NOT NULL DEFAULT '0',
`extension` varchar(100) NOT NULL DEFAULT '',
`comment` varchar(100) NOT NULL DEFAULT '',
PRIMARY KEY (`ext_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of bb_extensions
-- ----------------------------
INSERT INTO `bb_extensions` VALUES ('', '1', 'gif', '');
INSERT INTO `bb_extensions` VALUES ('', '1', 'png', '');
INSERT INTO `bb_extensions` VALUES ('', '1', 'jpeg', '');
INSERT INTO `bb_extensions` VALUES ('', '1', 'jpg', '');
INSERT INTO `bb_extensions` VALUES ('', '1', 'tif', '');
INSERT INTO `bb_extensions` VALUES ('', '1', 'tga', '');
INSERT INTO `bb_extensions` VALUES ('', '2', 'gtar', '');
INSERT INTO `bb_extensions` VALUES ('', '2', 'gz', '');
INSERT INTO `bb_extensions` VALUES ('', '2', 'tar', '');
INSERT INTO `bb_extensions` VALUES ('', '2', 'zip', '');
INSERT INTO `bb_extensions` VALUES ('', '2', 'rar', '');
INSERT INTO `bb_extensions` VALUES ('', '2', 'ace', '');
INSERT INTO `bb_extensions` VALUES ('', '3', 'txt', '');
INSERT INTO `bb_extensions` VALUES ('', '3', 'c', '');
INSERT INTO `bb_extensions` VALUES ('', '3', 'h', '');
INSERT INTO `bb_extensions` VALUES ('', '3', 'cpp', '');
INSERT INTO `bb_extensions` VALUES ('', '3', 'hpp', '');
INSERT INTO `bb_extensions` VALUES ('', '3', 'diz', '');
INSERT INTO `bb_extensions` VALUES ('', '4', 'xls', '');
INSERT INTO `bb_extensions` VALUES ('', '4', 'doc', '');
INSERT INTO `bb_extensions` VALUES ('', '4', 'dot', '');
INSERT INTO `bb_extensions` VALUES ('', '4', 'pdf', '');
INSERT INTO `bb_extensions` VALUES ('', '4', 'ai', '');
INSERT INTO `bb_extensions` VALUES ('', '4', 'ps', '');
INSERT INTO `bb_extensions` VALUES ('', '4', 'ppt', '');
INSERT INTO `bb_extensions` VALUES ('', '5', 'rm', '');
INSERT INTO `bb_extensions` VALUES ('', '6', 'torrent', '');
-- ----------------------------
-- Table structure for `bb_extension_groups`
-- ----------------------------
DROP TABLE IF EXISTS `bb_extension_groups`;
CREATE TABLE IF NOT EXISTS `bb_extension_groups` (
`group_id` mediumint(8) NOT NULL AUTO_INCREMENT,
`group_name` varchar(20) NOT NULL DEFAULT '',
`cat_id` tinyint(2) NOT NULL DEFAULT '0',
`allow_group` tinyint(1) NOT NULL DEFAULT '0',
`download_mode` tinyint(1) unsigned NOT NULL DEFAULT '1',
`upload_icon` varchar(100) NOT NULL DEFAULT '',
`max_filesize` int(20) NOT NULL DEFAULT '0',
`forum_permissions` text NOT NULL,
PRIMARY KEY (`group_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of bb_extension_groups
-- ----------------------------
INSERT INTO `bb_extension_groups` VALUES ('', 'Images', '1', '1', '1', '', '262144', '');
INSERT INTO `bb_extension_groups` VALUES ('', 'Archives', '0', '1', '1', '', '262144', '');
INSERT INTO `bb_extension_groups` VALUES ('', 'Plain text', '0', '0', '1', '', '262144', '');
INSERT INTO `bb_extension_groups` VALUES ('', 'Documents', '0', '0', '1', '', '262144', '');
INSERT INTO `bb_extension_groups` VALUES ('', 'Real media', '0', '0', '2', '', '262144', '');
INSERT INTO `bb_extension_groups` VALUES ('', 'Torrent', '0', '1', '1', '', '122880', '');
-- ---------------------------- -- ----------------------------
-- Table structure for `bb_forums` -- Table structure for `bb_forums`
-- ---------------------------- -- ----------------------------
@ -559,6 +486,7 @@ CREATE TABLE IF NOT EXISTS `bb_forums` (
`forum_posts` mediumint(8) unsigned NOT NULL DEFAULT '0', `forum_posts` mediumint(8) unsigned NOT NULL DEFAULT '0',
`forum_topics` mediumint(8) unsigned NOT NULL DEFAULT '0', `forum_topics` mediumint(8) unsigned NOT NULL DEFAULT '0',
`forum_last_post_id` mediumint(8) unsigned NOT NULL DEFAULT '0', `forum_last_post_id` mediumint(8) unsigned NOT NULL DEFAULT '0',
`forum_last_topic_time` INT NOT NULL,
`forum_tpl_id` smallint(6) NOT NULL DEFAULT '0', `forum_tpl_id` smallint(6) NOT NULL DEFAULT '0',
`prune_days` smallint(5) unsigned NOT NULL DEFAULT '0', `prune_days` smallint(5) unsigned NOT NULL DEFAULT '0',
`auth_view` tinyint(2) NOT NULL DEFAULT '0', `auth_view` tinyint(2) NOT NULL DEFAULT '0',
@ -590,7 +518,7 @@ CREATE TABLE IF NOT EXISTS `bb_forums` (
-- ---------------------------- -- ----------------------------
-- Records of bb_forums -- Records of bb_forums
-- ---------------------------- -- ----------------------------
INSERT INTO `bb_forums` VALUES ('1', '1', 'Ваш первый форум', 'Описание вашего первого форума.', '0', '10', '1', '1', '1', '0', '0', '0', '0', '1', '1', '1', '1', '3', '3', '1', '1', '1', '1', '0', '0', '0', '0', '1', '0', '0'); INSERT INTO `bb_forums` VALUES ('1', '1', 'Ваш первый форум', 'Описание вашего первого форума.', '0', '10', '1', '1', '1', '0', '0', '0', '0', '0', '1', '1', '1', '1', '3', '3', '1', '1', '1', '1', '0', '0', '0', '0', '1', '0', '0');
-- ---------------------------- -- ----------------------------
-- Table structure for `bb_groups` -- Table structure for `bb_groups`

View file

@ -64,4 +64,14 @@ DROP TABLE IF EXISTS `bb_quota_limits`;
ALTER TABLE `bb_topics` ADD `attach_ext_id` TINYINT(4) NOT NULL DEFAULT '0' AFTER `topic_dl_type`; ALTER TABLE `bb_topics` ADD `attach_ext_id` TINYINT(4) NOT NULL DEFAULT '0' AFTER `topic_dl_type`;
ALTER TABLE `bb_topics` ADD `filesize` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' AFTER `attach_ext_id`; ALTER TABLE `bb_topics` ADD `filesize` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' AFTER `attach_ext_id`;
DELETE FROM `bb_config` WHERE `config_name` = 'new_tpls'; DELETE FROM `bb_config` WHERE `config_name` = 'new_tpls';
ALTER TABLE `bb_log` DROP COLUMN `log_username`; ALTER TABLE `bb_log` DROP COLUMN `log_username`;
ALTER TABLE `bb_topics` CHANGE `topic_dl_type` `tracker_status` TINYINT(1) NOT NULL DEFAULT '0';
ALTER TABLE `bb_topics` ADD `tracker_id` TINYINT(4) NOT NULL DEFAULT '0' AFTER `topic_moved_id`;
ALTER TABLE `bb_bt_torrents` DROP `post_id`;
DELETE FROM `bb_config` WHERE `config_name` = 'bt_add_auth_key';
DELETE FROM `bb_config` WHERE `config_name` = 'bt_check_announce_url';
ALTER TABLE `bb_forums` ADD `forum_last_topic_time` INT NOT NULL AFTER `forum_last_post_id`;
DROP TABLE IF EXISTS `bb_extensions`;
DROP TABLE IF EXISTS `bb_extension_groups`;
define('BB_ATTACHMENTS_DESC', 'bb_attachments_desc'); - удалить при апгрейде
define('BB_ATTACHMENTS', 'bb_attachments'); - удалить при апгрейде

View file

@ -4,10 +4,10 @@ if (!defined('IN_AJAX')) die(basename(__FILE__));
global $userdata, $bb_cfg, $lang; global $userdata, $bb_cfg, $lang;
if (!isset($this->request['attach_id'])) $this->ajax_die($lang['EMPTY_ATTACH_ID']); if (!isset($this->request['topic_id'])) $this->ajax_die('Invalid topic_id');
$attach_id = (int) $this->request['attach_id']; $topic_id = (int) $this->request['topic_id'];
$mode = (string) $this->request['mode']; $mode = (string) $this->request['mode'];
if ($bb_cfg['tor_comment']) if ($bb_cfg['tor_comment'])
{ {
@ -16,11 +16,11 @@ if ($bb_cfg['tor_comment'])
$tor = DB()->fetch_row(" $tor = DB()->fetch_row("
SELECT SELECT
tor.poster_id, tor.forum_id, tor.topic_id, tor.tor_status, tor.checked_time, tor.checked_user_id, f.cat_id, t.topic_title tor.poster_id, tor.forum_id, tor.tor_status, tor.checked_time, tor.checked_user_id, f.cat_id, t.topic_title
FROM ". BB_BT_TORRENTS ." tor FROM ". BB_BT_TORRENTS ." tor
INNER JOIN ". BB_FORUMS ." f ON(f.forum_id = tor.forum_id) INNER JOIN ". BB_FORUMS ." f ON(f.forum_id = tor.forum_id)
INNER JOIN ". BB_TOPICS ." t ON(t.topic_id = tor.topic_id) INNER JOIN ". BB_TOPICS ." t ON(t.topic_id = tor.topic_id)
WHERE tor.attach_id = $attach_id WHERE tor.topic_id = $topic_id
LIMIT 1 LIMIT 1
"); ");
@ -71,7 +71,7 @@ switch ($mode)
} }
} }
change_tor_status($attach_id, $new_status); change_tor_status($topic_id, $new_status);
$this->response['status'] = $bb_cfg['tor_icons'][$new_status] .' <b> '. $lang['TOR_STATUS_NAME'][$new_status]. '</b> &middot; '. profile_url($userdata) .' &middot; <i>'. delta_time(TIMENOW) . $lang['TOR_BACK']. '</i>'; $this->response['status'] = $bb_cfg['tor_icons'][$new_status] .' <b> '. $lang['TOR_STATUS_NAME'][$new_status]. '</b> &middot; '. profile_url($userdata) .' &middot; <i>'. delta_time(TIMENOW) . $lang['TOR_BACK']. '</i>';
@ -103,4 +103,4 @@ switch ($mode)
break; break;
} }
$this->response['attach_id'] = $attach_id; $this->response['topic_id'] = $topic_id;

View file

@ -2,59 +2,26 @@
if (!defined('IN_AJAX')) die(basename(__FILE__)); if (!defined('IN_AJAX')) die(basename(__FILE__));
global $userdata, $bb_cfg, $lang; global $lang;
if (!isset($this->request['attach_id'])) if (!isset($this->request['t']))
{ {
$this->ajax_die($lang['EMPTY_ATTACH_ID']); $this->ajax_die('Invalid AJAX topic');
}
if (!isset($this->request['u']))
{
//$this->ajax_die('Invalid AJAX user');
} }
if (!isset($this->request['type'])) if (!isset($this->request['type']))
{ {
$this->ajax_die('type'); $this->ajax_die('Invalid AJAX type');
} }
$attach_id = (int) $this->request['attach_id'];
$topic_id = (int) $this->request['t'];
//$req_uid = (int) $this->request['u'];
$type = (string) $this->request['type']; $type = (string) $this->request['type'];
$torrent = DB()->fetch_row("
SELECT
a.post_id, d.physical_filename, d.extension, d.tracker_status,
t.topic_first_post_id,
p.poster_id, p.topic_id, p.forum_id,
f.allow_reg_tracker
FROM
". BB_ATTACHMENTS ." a,
". BB_ATTACHMENTS_DESC ." d,
". BB_POSTS ." p,
". BB_TOPICS ." t,
". BB_FORUMS ." f
WHERE
a.attach_id = $attach_id
AND d.attach_id = $attach_id
AND p.post_id = a.post_id
AND t.topic_id = p.topic_id
AND f.forum_id = p.forum_id
LIMIT 1
");
if (!$torrent) $this->ajax_die($lang['INVALID_ATTACH_ID']);
if ($torrent['poster_id'] == $userdata['user_id'] && !IS_AM)
{
if ($type == 'del_torrent' || $type == 'reg' || $type == 'unreg')
{
true;
}
else
{
$this->ajax_die($lang['ONLY_FOR_MOD']);
}
}
elseif (!IS_AM)
{
$this->ajax_die($lang['ONLY_FOR_MOD']);
}
$title = $url = ''; $title = $url = '';
switch ($type) switch ($type)
{ {
case 'set_gold'; case 'set_gold';
@ -72,31 +39,31 @@ switch ($type)
{ {
$tor_type = 0; $tor_type = 0;
} }
change_tor_type($attach_id, $tor_type); change_tor_type($topic_id, $tor_type);
$url = make_url(TOPIC_URL . $topic_id);
$title = $lang['CHANGE_TOR_TYPE']; $title = $lang['CHANGE_TOR_TYPE'];
$url = make_url(TOPIC_URL . $torrent['topic_id']);
break; break;
case 'reg'; case 'reg';
tracker_register($attach_id); tracker_register($topic_id);
$url = (TOPIC_URL . $torrent['topic_id']); $url = (TOPIC_URL . $topic_id);
break; break;
case 'unreg'; case 'unreg';
tracker_unregister($attach_id); tracker_unregister($topic_id);
$url = (TOPIC_URL . $torrent['topic_id']); $url = (TOPIC_URL . $topic_id);
break; break;
case 'del_torrent'; case 'del_torrent';
if (empty($this->request['confirmed'])) $this->prompt_for_confirm($lang['DEL_TORRENT']); if (empty($this->request['confirmed'])) $this->prompt_for_confirm($lang['DEL_TORRENT']);
delete_torrent($attach_id); delete_torrent($topic_id);
$url = make_url(TOPIC_URL . $torrent['topic_id']); $url = make_url(TOPIC_URL . $topic_id);
break; break;
case 'del_torrent_move_topic'; case 'del_torrent_move_topic';
if (empty($this->request['confirmed'])) $this->prompt_for_confirm($lang['DEL_MOVE_TORRENT']); if (empty($this->request['confirmed'])) $this->prompt_for_confirm($lang['DEL_MOVE_TORRENT']);
delete_torrent($attach_id); delete_torrent($topic_id);
$url = make_url("modcp.php?t={$torrent['topic_id']}&mode=move&sid={$userdata['session_id']}"); $url = make_url("modcp.php?t=$topic_id&mode=move");
break; break;
} }

View file

@ -125,7 +125,7 @@ switch($this->request['type'])
{ {
$this->ajax_die($lang['EDIT_OWN_POSTS']); $this->ajax_die($lang['EDIT_OWN_POSTS']);
} }
if ((mb_strlen($post['post_text'], 'UTF-8') > 1000) || $post['post_attachment'] || ($post['topic_first_post_id'] == $post_id)) if ((mb_strlen($post['post_text'], 'UTF-8') > 1000) || $post['attach_ext_id'] || ($post['topic_first_post_id'] == $post_id))
{ {
$this->response['redirect'] = make_url(POSTING_URL.'?mode=editpost&p='. $post_id); $this->response['redirect'] = make_url(POSTING_URL.'?mode=editpost&p='. $post_id);
} }

View file

@ -13,9 +13,9 @@ $attach_id = (int) $this->request['attach_id'];
global $bnc_error; global $bnc_error;
$bnc_error = 0; $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"); //$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']); if (!$torrent) $this->ajax_die($lang['EMPTY_ATTACH_ID']);
$filename = get_attachments_dir() .'/'. $torrent['physical_filename']; //$filename = get_attachments_dir() .'/'. $torrent['physical_filename'];
if (($file_contents = @file_get_contents($filename)) === false) if (($file_contents = @file_get_contents($filename)) === false)
{ {

View file

@ -71,8 +71,8 @@ $domain_name = 'torrentpier.me'; // enter here your primary domain name of your
$domain_name = (!empty($_SERVER['SERVER_NAME'])) ? $_SERVER['SERVER_NAME'] : $domain_name; $domain_name = (!empty($_SERVER['SERVER_NAME'])) ? $_SERVER['SERVER_NAME'] : $domain_name;
// Version info // Version info
$bb_cfg['tp_version'] = '2.1.6'; $bb_cfg['tp_version'] = '2.2.0';
$bb_cfg['tp_release_date'] = '**-03-2015'; $bb_cfg['tp_release_date'] = '1/06/2015';
$bb_cfg['tp_release_state'] = 'ALPHA'; $bb_cfg['tp_release_state'] = 'ALPHA';
// Database // Database
@ -192,7 +192,6 @@ $tr_cfg = array(
'limit_concurrent_ips' => false, 'limit_concurrent_ips' => false,
'limit_seed_ips' => 0, 'limit_seed_ips' => 0,
'limit_leech_ips' => 0, 'limit_leech_ips' => 0,
'tor_topic_up' => true,
'gold_silver_enabled' => true, 'gold_silver_enabled' => true,
'retracker' => true, 'retracker' => true,
'retracker_host' => 'http://retracker.local/announce', 'retracker_host' => 'http://retracker.local/announce',
@ -268,6 +267,7 @@ define('TEMPLATES_DIR', BB_PATH .'/styles/templates/' );
// URL's // URL's
$bb_cfg['ajax_url'] = 'ajax.php'; # "http://{$_SERVER['SERVER_NAME']}/ajax.php" $bb_cfg['ajax_url'] = 'ajax.php'; # "http://{$_SERVER['SERVER_NAME']}/ajax.php"
$bb_cfg['dl_url'] = 'dl.php?t='; # "http://{$domain_name}/dl.php"
$bb_cfg['login_url'] = 'login.php'; # "http://{$domain_name}/login.php" $bb_cfg['login_url'] = 'login.php'; # "http://{$domain_name}/login.php"
$bb_cfg['posting_url'] = 'posting.php'; # "http://{$domain_name}/posting.php" $bb_cfg['posting_url'] = 'posting.php'; # "http://{$domain_name}/posting.php"
$bb_cfg['pm_url'] = 'privmsg.php'; # "http://{$domain_name}/privmsg.php" $bb_cfg['pm_url'] = 'privmsg.php'; # "http://{$domain_name}/privmsg.php"

View file

@ -96,17 +96,12 @@ function prepare_message ($message)
// Either in a window or inline // Either in a window or inline
function generate_smilies($mode) function generate_smilies($mode)
{ {
global $bb_cfg, $template, $lang, $user, $datastore; global $bb_cfg, $template, $lang, $datastore;
$inline_columns = 4; $inline_columns = 4;
$inline_rows = 7; $inline_rows = 7;
$window_columns = 8; $window_columns = 8;
if ($mode == 'window')
{
$user->session_start();
}
$data = $datastore->get('smile_replacements'); $data = $datastore->get('smile_replacements');
if ($sql = $data['smile']) if ($sql = $data['smile'])
@ -184,8 +179,6 @@ function generate_smilies($mode)
} }
} }
// some functions from vB
// #############################################################################
/** /**
* Strips away [quote] tags and their contents from the specified string * Strips away [quote] tags and their contents from the specified string
* *
@ -288,7 +281,6 @@ function strip_quotes ($text)
return $newtext; return $newtext;
} }
// #############################################################################
/** /**
* Strips away bbcode from a given string, leaving plain text * Strips away bbcode from a given string, leaving plain text
* *

View file

@ -11,9 +11,9 @@ $last_seen_time = TIMENOW - 86400*$bb_cfg['seeder_last_seen_days_keep'];
$never_seen_time = TIMENOW - 86400*$bb_cfg['seeder_never_seen_days_keep']; $never_seen_time = TIMENOW - 86400*$bb_cfg['seeder_never_seen_days_keep'];
$limit_sql = 3000; $limit_sql = 3000;
$topics_sql = $attach_sql = array(); $topics_sql = [];
$sql = "SELECT topic_id, attach_id $sql = "SELECT topic_id
FROM ". BB_BT_TORRENTS ." FROM ". BB_BT_TORRENTS ."
WHERE reg_time < $never_seen_time WHERE reg_time < $never_seen_time
AND seeder_last_seen < $last_seen_time AND seeder_last_seen < $last_seen_time
@ -22,12 +22,10 @@ $sql = "SELECT topic_id, attach_id
foreach (DB()->fetch_rowset($sql) as $row) foreach (DB()->fetch_rowset($sql) as $row)
{ {
$topics_sql[] = $row['topic_id']; $topics_sql[] = $row['topic_id'];
$attach_sql[] = $row['attach_id'];
} }
$dead_tor_sql = join(',', $topics_sql); $dead_tor_sql = join(',', $topics_sql);
$attach_sql = join(',', $attach_sql);
if ($dead_tor_sql && $attach_sql) if ($dead_tor_sql)
{ {
// Delete torstat // Delete torstat
DB()->query(" DB()->query("
@ -35,19 +33,6 @@ if ($dead_tor_sql && $attach_sql)
WHERE topic_id IN($dead_tor_sql) WHERE topic_id IN($dead_tor_sql)
"); ");
// Update attach
DB()->query("
UPDATE
". BB_ATTACHMENTS_DESC ." a,
". BB_BT_TORRENTS ." tor
SET
a.tracker_status = 0,
a.download_count = tor.complete_count
WHERE
a.attach_id = tor.attach_id
AND tor.attach_id IN($attach_sql)
");
// Remove torrents // Remove torrents
DB()->query(" DB()->query("
DELETE FROM ". BB_BT_TORRENTS ." DELETE FROM ". BB_BT_TORRENTS ."

View file

@ -8,7 +8,7 @@ $data = array();
// usercount // usercount
$row = DB()->fetch_row("SELECT COUNT(*) AS usercount FROM ". BB_USERS ." WHERE user_id NOT IN(". EXCLUDED_USERS .")"); $row = DB()->fetch_row("SELECT COUNT(*) AS usercount FROM ". BB_USERS ." WHERE user_id NOT IN(". EXCLUDED_USERS .")");
$data['usercount'] = number_format($row['usercount']); $data['usercount'] = commify($row['usercount']);
// newestuser // newestuser
$row = DB()->fetch_row("SELECT user_id, username, user_rank FROM ". BB_USERS ." WHERE user_active = 1 ORDER BY user_id DESC LIMIT 1"); $row = DB()->fetch_row("SELECT user_id, username, user_rank FROM ". BB_USERS ." WHERE user_active = 1 ORDER BY user_id DESC LIMIT 1");
@ -16,22 +16,22 @@ $data['newestuser'] = $row;
// post/topic count // post/topic count
$row = DB()->fetch_row("SELECT SUM(forum_topics) AS topiccount, SUM(forum_posts) AS postcount FROM ". BB_FORUMS); $row = DB()->fetch_row("SELECT SUM(forum_topics) AS topiccount, SUM(forum_posts) AS postcount FROM ". BB_FORUMS);
$data['postcount'] = number_format($row['postcount']); $data['postcount'] = commify($row['postcount']);
$data['topiccount'] = number_format($row['topiccount']); $data['topiccount'] = commify($row['topiccount']);
// Tracker stats // Tracker stats
if ($bb_cfg['tor_stats']) if ($bb_cfg['tor_stats'])
{ {
// torrents stat // torrents stat
$row = DB()->fetch_row("SELECT COUNT(topic_id) AS torrentcount, SUM(size) AS size FROM ". BB_BT_TORRENTS); $row = DB()->fetch_row("SELECT COUNT(topic_id) AS torrentcount, SUM(size) AS size FROM ". BB_BT_TORRENTS);
$data['torrentcount'] = number_format($row['torrentcount']); $data['torrentcount'] = commify($row['torrentcount']);
$data['size'] = $row['size']; $data['size'] = $row['size'];
// peers stat // peers stat
$row = DB()->fetch_row("SELECT SUM(seeders) AS seeders, SUM(leechers) AS leechers, ((SUM(speed_up) + SUM(speed_down))/2) AS speed FROM ". BB_BT_TRACKER_SNAP); $row = DB()->fetch_row("SELECT SUM(seeders) AS seeders, SUM(leechers) AS leechers, ((SUM(speed_up) + SUM(speed_down))/2) AS speed FROM ". BB_BT_TRACKER_SNAP);
$data['seeders'] = number_format($row['seeders']); $data['seeders'] = commify($row['seeders']);
$data['leechers'] = number_format($row['leechers']); $data['leechers'] = commify($row['leechers']);
$data['peers'] = number_format($row['seeders'] + $row['leechers']); $data['peers'] = commify($row['seeders'] + $row['leechers']);
$data['speed'] = $row['speed']; $data['speed'] = $row['speed'];
} }

View file

@ -31,7 +31,7 @@ function delete_avatar ($user_id, $avatar_ext_id)
function get_tracks ($type) function get_tracks ($type)
{ {
static $pattern = '#^a:\d+:{[i:;\d]+}$#'; $c_name = '';
switch ($type) switch ($type)
{ {
@ -87,7 +87,7 @@ function set_tracks ($cookie_name, &$tracking_ary, $tracks = null, $val = TIMENO
if ($overflow > 0) if ($overflow > 0)
{ {
arsort($tracking_ary); arsort($tracking_ary);
for ($i=0; $i < $overflow; $i++) for ($i = 0; $i < $overflow; $i++)
{ {
array_pop($tracking_ary); array_pop($tracking_ary);
} }
@ -1999,7 +1999,7 @@ function get_topic_icon ($topic, $is_unread = null)
$folder = $images['folder_locked']; $folder = $images['folder_locked'];
$folder_new = $images['folder_locked_new']; $folder_new = $images['folder_locked_new'];
} }
else if ($topic['topic_dl_type'] == TOPIC_DL_TYPE_DL) else if ($topic['tracker_status'])
{ {
$folder = ($t_hot) ? $images['folder_dl_hot'] : $images['folder_dl']; $folder = ($t_hot) ? $images['folder_dl_hot'] : $images['folder_dl'];
$folder_new = ($t_hot) ? $images['folder_dl_hot_new'] : $images['folder_dl_new']; $folder_new = ($t_hot) ? $images['folder_dl_hot_new'] : $images['folder_dl_new'];

View file

@ -25,10 +25,11 @@ function sync ($type, $id)
DB()->query(" DB()->query("
CREATE TEMPORARY TABLE $tmp_sync_forums ( CREATE TEMPORARY TABLE $tmp_sync_forums (
forum_id SMALLINT UNSIGNED NOT NULL DEFAULT '0', forum_id SMALLINT UNSIGNED NOT NULL DEFAULT '0',
forum_last_post_id INT UNSIGNED NOT NULL DEFAULT '0', forum_last_post_id INT UNSIGNED NOT NULL DEFAULT '0',
forum_posts MEDIUMINT UNSIGNED NOT NULL DEFAULT '0', forum_last_topic_time INT UNSIGNED NOT NULL DEFAULT '0',
forum_topics MEDIUMINT UNSIGNED NOT NULL DEFAULT '0', forum_posts MEDIUMINT UNSIGNED NOT NULL DEFAULT '0',
forum_topics MEDIUMINT UNSIGNED NOT NULL DEFAULT '0',
PRIMARY KEY (forum_id) PRIMARY KEY (forum_id)
) ENGINE = MEMORY ) ENGINE = MEMORY
"); ");
@ -40,10 +41,11 @@ function sync ($type, $id)
DB()->query(" DB()->query("
REPLACE INTO $tmp_sync_forums REPLACE INTO $tmp_sync_forums
(forum_id, forum_last_post_id, forum_posts, forum_topics) (forum_id, forum_last_post_id, forum_last_topic_time, forum_posts, forum_topics)
SELECT SELECT
forum_id, forum_id,
MAX(topic_last_post_id), MAX(topic_last_post_id),
MAX(topic_time),
SUM(topic_replies) + COUNT(topic_id), SUM(topic_replies) + COUNT(topic_id),
COUNT(topic_id) COUNT(topic_id)
FROM ". BB_TOPICS ." FROM ". BB_TOPICS ."
@ -55,9 +57,10 @@ function sync ($type, $id)
UPDATE UPDATE
$tmp_sync_forums tmp, ". BB_FORUMS ." f $tmp_sync_forums tmp, ". BB_FORUMS ." f
SET SET
f.forum_last_post_id = tmp.forum_last_post_id, f.forum_last_post_id = tmp.forum_last_post_id,
f.forum_posts = tmp.forum_posts, f.forum_last_topic_time = tmp.forum_last_topic_time,
f.forum_topics = tmp.forum_topics f.forum_posts = tmp.forum_posts,
f.forum_topics = tmp.forum_topics
WHERE WHERE
f.forum_id = tmp.forum_id f.forum_id = tmp.forum_id
"); ");
@ -87,7 +90,6 @@ function sync ($type, $id)
topic_first_post_id INT UNSIGNED NOT NULL DEFAULT '0', topic_first_post_id INT UNSIGNED NOT NULL DEFAULT '0',
topic_last_post_id INT UNSIGNED NOT NULL DEFAULT '0', topic_last_post_id INT UNSIGNED NOT NULL DEFAULT '0',
topic_last_post_time INT UNSIGNED NOT NULL DEFAULT '0', topic_last_post_time INT UNSIGNED NOT NULL DEFAULT '0',
topic_attachment INT UNSIGNED NOT NULL DEFAULT '0',
PRIMARY KEY (topic_id) PRIMARY KEY (topic_id)
) ENGINE = MEMORY ) ENGINE = MEMORY
"); ");
@ -102,11 +104,9 @@ function sync ($type, $id)
COUNT(p.post_id) AS total_posts, COUNT(p.post_id) AS total_posts,
MIN(p.post_id) AS topic_first_post_id, MIN(p.post_id) AS topic_first_post_id,
MAX(p.post_id) AS topic_last_post_id, MAX(p.post_id) AS topic_last_post_id,
MAX(p.post_time) AS topic_last_post_time, MAX(p.post_time) AS topic_last_post_time
IF(MAX(a.attach_id), 1, 0) AS topic_attachment FROM ". BB_TOPICS ." t
FROM ". BB_TOPICS ." t LEFT JOIN ". BB_POSTS ." p ON(p.topic_id = t.topic_id)
LEFT JOIN ". BB_POSTS ." p ON(p.topic_id = t.topic_id)
LEFT JOIN ". BB_ATTACHMENTS ." a ON(a.post_id = p.post_id)
WHERE t.topic_status != ". TOPIC_MOVED ." WHERE t.topic_status != ". TOPIC_MOVED ."
$where_sql $where_sql
GROUP BY t.topic_id GROUP BY t.topic_id
@ -119,8 +119,7 @@ function sync ($type, $id)
t.topic_replies = tmp.total_posts - 1, t.topic_replies = tmp.total_posts - 1,
t.topic_first_post_id = tmp.topic_first_post_id, t.topic_first_post_id = tmp.topic_first_post_id,
t.topic_last_post_id = tmp.topic_last_post_id, t.topic_last_post_id = tmp.topic_last_post_id,
t.topic_last_post_time = tmp.topic_last_post_time, t.topic_last_post_time = tmp.topic_last_post_time
t.topic_attachment = tmp.topic_attachment
WHERE WHERE
t.topic_id = tmp.topic_id t.topic_id = tmp.topic_id
"); ");
@ -306,13 +305,11 @@ function topic_delete ($mode_or_topic_id, $forum_id = null, $prune_time = 0, $pr
// Delete posts, posts_text, attachments (from DB) // Delete posts, posts_text, attachments (from DB)
DB()->query(" DB()->query("
DELETE p, pt, ps, a, d, ph DELETE p, pt, ps, a, d, ph
FROM ". $tmp_delete_topics ." del FROM ". $tmp_delete_topics ." del
LEFT JOIN ". BB_POSTS ." p ON(p.topic_id = del.topic_id) LEFT JOIN ". BB_POSTS ." p ON(p.topic_id = del.topic_id)
LEFT JOIN ". BB_POSTS_TEXT ." pt ON(pt.post_id = p.post_id) LEFT JOIN ". BB_POSTS_TEXT ." pt ON(pt.post_id = p.post_id)
LEFT JOIN ". BB_POSTS_HTML ." ph ON(ph.post_id = p.post_id) LEFT JOIN ". BB_POSTS_HTML ." ph ON(ph.post_id = p.post_id)
LEFT JOIN ". BB_POSTS_SEARCH ." ps ON(ps.post_id = p.post_id) LEFT JOIN ". BB_POSTS_SEARCH ." ps ON(ps.post_id = p.post_id)
LEFT JOIN ". BB_ATTACHMENTS ." a ON(a.post_id = p.post_id)
LEFT JOIN ". BB_ATTACHMENTS_DESC ." d ON(d.attach_id = a.attach_id)
"); ");
// Delete topics, topics watch // Delete topics, topics watch
@ -477,6 +474,85 @@ function topic_move ($topic_id, $to_forum_id, $from_forum_id = null, $leave_shad
return true; return true;
} }
function topic_lock_unlock ($topic_id, $mode, $forum_id = null)
{
global $log_action;
if (!$topic_csv = get_id_csv($topic_id))
{
return false;
}
$new_topic_status = ($mode == 'lock') ? TOPIC_LOCKED : TOPIC_UNLOCKED;
$forum_sql = ($forum_id) ? " AND forum_id = ". (int) $forum_id : '';
$sql = "
SELECT topic_id, topic_title
FROM ". BB_TOPICS ."
WHERE topic_id IN($topic_csv)
AND topic_status != ". TOPIC_MOVED ."
AND topic_status != $new_topic_status
$forum_sql
";
$topic_ary = array();
foreach (DB()->fetch_rowset($sql) as $row)
{
$topic_ary[] = $row['topic_id'];
$log_topics[$row['topic_id']] = $row['topic_title'];
}
if (!$topic_csv = get_id_csv($topic_ary))
{
return false;
}
DB()->query("UPDATE ". BB_TOPICS ." SET topic_status = $new_topic_status WHERE topic_id IN($topic_csv)");
// Log action
$type = ($mode == 'lock') ? 'mod_topic_lock' : 'mod_topic_unlock';
foreach ($log_topics as $topic_id => $topic_title)
{
$log_action->mod($type, array(
'forum_id' => $forum_id,
'topic_id' => $topic_id,
'topic_title' => $topic_title,
));
}
return true;
}
function topic_stick_unstick ($topic_id, $mode, $forum_id = null)
{
if (!$topic_csv = get_id_csv($topic_id))
{
return false;
}
$new_topic_type = ($mode == 'stick') ? POST_STICKY : POST_NORMAL;
$forum_sql = ($forum_id) ? " AND forum_id = ". (int) $forum_id : '';
$sql = "
SELECT topic_id
FROM ". BB_TOPICS ."
WHERE topic_id IN($topic_csv)
AND topic_status != ". TOPIC_MOVED ."
AND topic_type != $new_topic_type
$forum_sql
";
$topic_ary = DB()->fetch_rowset($sql, 'topic_id');
if (!$topic_csv = get_id_csv($topic_ary))
{
return false;
}
DB()->query("UPDATE ". BB_TOPICS ." SET topic_type = $new_topic_type WHERE topic_id IN($topic_csv)");
return ( DB()->affected_rows() > 0 );
}
// $exclude_first - в режиме удаления сообщений по списку исключать первое сообщение в теме // $exclude_first - в режиме удаления сообщений по списку исключать первое сообщение в теме
function post_delete ($mode_or_post_id, $user_id = null, $exclude_first = true) function post_delete ($mode_or_post_id, $user_id = null, $exclude_first = true)
{ {
@ -587,17 +663,15 @@ function post_delete ($mode_or_post_id, $user_id = null, $exclude_first = true)
return 0; return 0;
} }
// Delete posts, posts_text, attachments (from DB) // Delete posts, posts_text
DB()->query(" DB()->query("
DELETE p, pt, ps, tor, a, d, ph DELETE p, pt, ps, tor, ph
FROM ". $tmp_delete_posts ." del FROM ". $tmp_delete_posts ." del
LEFT JOIN ". BB_POSTS ." p ON(p.post_id = del.post_id) LEFT JOIN ". BB_POSTS ." p ON(p.post_id = del.post_id)
LEFT JOIN ". BB_POSTS_TEXT ." pt ON(pt.post_id = del.post_id) LEFT JOIN ". BB_POSTS_TEXT ." pt ON(pt.post_id = del.post_id)
LEFT JOIN ". BB_POSTS_HTML ." ph ON(ph.post_id = del.post_id) LEFT JOIN ". BB_POSTS_HTML ." ph ON(ph.post_id = del.post_id)
LEFT JOIN ". BB_POSTS_SEARCH ." ps ON(ps.post_id = del.post_id) LEFT JOIN ". BB_POSTS_SEARCH ." ps ON(ps.post_id = del.post_id)
LEFT JOIN ". BB_BT_TORRENTS ." tor ON(tor.post_id = del.post_id) LEFT JOIN ". BB_BT_TORRENTS ." tor ON(tor.topic_id = del.topic_id)
LEFT JOIN ". BB_ATTACHMENTS ." a ON(a.post_id = del.post_id)
LEFT JOIN ". BB_ATTACHMENTS_DESC ." d ON(d.attach_id = a.attach_id)
"); ");
// Log action // Log action

View file

@ -121,11 +121,11 @@ function submit_post($mode, &$post_data, &$message, &$meta, &$forum_id, &$topic_
if ($mode == 'newtopic' || ($mode == 'editpost' && $post_data['first_post'])) if ($mode == 'newtopic' || ($mode == 'editpost' && $post_data['first_post']))
{ {
$topic_dl_type = (isset($_POST['topic_dl_type']) && ($post_info['allow_reg_tracker'] || $is_auth['auth_mod'])) ? TOPIC_DL_TYPE_DL : TOPIC_DL_TYPE_NORMAL; $topic_dl_type = (isset($_POST['tracker_status']) && ($post_info['allow_reg_tracker'] || $is_auth['auth_mod'])) ? 1 : 0;
$sql_insert = " $sql_insert = "
INSERT INTO INSERT INTO
" . BB_TOPICS . " (topic_title, topic_poster, topic_time, forum_id, topic_status, topic_type, topic_dl_type) " . BB_TOPICS . " (topic_title, topic_poster, topic_time, forum_id, topic_status, topic_type, tracker_status)
VALUES VALUES
('$post_subject', " . $userdata['user_id'] . ", $current_time, $forum_id, " . TOPIC_UNLOCKED . ", $topic_type, $topic_dl_type) ('$post_subject', " . $userdata['user_id'] . ", $current_time, $forum_id, " . TOPIC_UNLOCKED . ", $topic_type, $topic_dl_type)
"; ";
@ -136,7 +136,7 @@ function submit_post($mode, &$post_data, &$message, &$meta, &$forum_id, &$topic_
SET SET
topic_title = '$post_subject', topic_title = '$post_subject',
topic_type = $topic_type, topic_type = $topic_type,
topic_dl_type = $topic_dl_type tracker_status = $topic_dl_type
WHERE WHERE
topic_id = $topic_id topic_id = $topic_id
"; ";

View file

@ -306,9 +306,8 @@ function tracker_register ($attach_id, $mode = '', $tor_status = TOR_NOT_APPROVE
if ($row = DB()->fetch_row("SELECT topic_id FROM ". BB_BT_TORRENTS ." WHERE info_hash = '$info_hash_sql' LIMIT 1")) if ($row = DB()->fetch_row("SELECT topic_id FROM ". BB_BT_TORRENTS ." WHERE info_hash = '$info_hash_sql' LIMIT 1"))
{ {
$msg = sprintf($lang['BT_REG_FAIL_SAME_HASH'], TOPIC_URL . $row['topic_id']);
bb_die($msg);
set_die_append_msg($forum_id, $topic_id); set_die_append_msg($forum_id, $topic_id);
bb_die(sprintf($lang['BT_REG_FAIL_SAME_HASH'], TOPIC_URL . $row['topic_id']));
} }
$totallen = 0; $totallen = 0;
@ -331,8 +330,8 @@ function tracker_register ($attach_id, $mode = '', $tor_status = TOR_NOT_APPROVE
$size = sprintf('%.0f', (float) $totallen); $size = sprintf('%.0f', (float) $totallen);
$columns = ' info_hash, post_id, poster_id, topic_id, forum_id, attach_id, size, reg_time, tor_status'; $columns = ' info_hash, poster_id, topic_id, forum_id, size, reg_time, tor_status';
$values = "'$info_hash_sql', $post_id, $poster_id, $topic_id, $forum_id, $attach_id, '$size', $reg_time, $tor_status"; $values = "'$info_hash_sql', $poster_id, $topic_id, $forum_id, '$size', $reg_time, $tor_status";
$sql = "INSERT INTO ". BB_BT_TORRENTS ." ($columns) VALUES ($values)"; $sql = "INSERT INTO ". BB_BT_TORRENTS ." ($columns) VALUES ($values)";
@ -347,88 +346,98 @@ function tracker_register ($attach_id, $mode = '', $tor_status = TOR_NOT_APPROVE
bb_die('Could not register torrent on tracker'); bb_die('Could not register torrent on tracker');
} }
// update tracker status for this attachment // Set topic status
$sql = 'UPDATE '. BB_ATTACHMENTS_DESC ." SET tracker_status = 1 WHERE attach_id = $attach_id LIMIT 1"; DB()->query("UPDATE ". BB_TOPICS ." SET tracker_status = 1 WHERE topic_id = $topic_id LIMIT 1");
if (!DB()->sql_query($sql)) // Clean all peers for that torrent
{ tracker_rm_torrent($topic_id);
bb_die('Could not update torrent status #2');
}
// set DL-Type for topic
if ($bb_cfg['bt_set_dltype_on_tor_reg'])
{
$sql = 'UPDATE '. BB_TOPICS .' SET topic_dl_type = '. TOPIC_DL_TYPE_DL ." WHERE topic_id = $topic_id LIMIT 1";
if (!$result = DB()->sql_query($sql))
{
bb_die('Could not update topics table #2');
}
}
if ($tr_cfg['tor_topic_up'])
{
DB()->query("UPDATE ". BB_TOPICS ." SET topic_last_post_time = GREATEST(topic_last_post_time, ". (TIMENOW - 3*86400) .") WHERE topic_id = $topic_id LIMIT 1");
}
if ($reg_mode == 'request' || $reg_mode == 'newtopic') if ($reg_mode == 'request' || $reg_mode == 'newtopic')
{ {
set_die_append_msg($forum_id, $topic_id); set_die_append_msg($forum_id, $topic_id);
$mess = sprintf($lang['BT_REGISTERED'], DOWNLOAD_URL . $attach_id); bb_die(sprintf($lang['BT_REGISTERED'], DOWNLOAD_URL . $topic_id));
bb_die($mess); }
else if ($reg_mode == 'mcp_tor_register')
{
return 'OK';
} }
return true; return true;
} }
function send_torrent_with_passkey ($filename) function delete_torrent ($topic_id)
{ {
global $attachment, $auth_pages, $userdata, $bb_cfg, $tr_cfg, $lang; tracker_unregister($topic_id);
delete_attach($topic_id, 8);
if (!$bb_cfg['bt_add_auth_key'] || $attachment['extension'] !== TORRENT_EXT || !$size = @filesize($filename)) return true;
}
function change_tor_status ($topic_id, $tor_status)
{
global $topic_id, $userdata;
$tor_status = (int) $tor_status;
$tor = DB()->fetch_row("SELECT forum_id, poster_id FROM ". BB_BT_TORRENTS ." WHERE topic_id = ". intval($topic_id) ." LIMIT 1");
torrent_auth_check($tor['forum_id'], $tor['poster_id']);
DB()->query("
UPDATE ". BB_BT_TORRENTS ." SET
tor_status = $tor_status,
checked_user_id = {$userdata['user_id']},
checked_time = '". TIMENOW ."'
WHERE topic_id = $topic_id
LIMIT 1
");
}
// Set gold / silver type for torrent
function change_tor_type ($topic_id, $tor_status_gold)
{
global $lang, $bb_cfg;
if (!IS_AM) bb_die($lang['ONLY_FOR_MOD']);
$tor_status_gold = intval($tor_status_gold);
$info_hash = null;
DB()->query("UPDATE ". BB_BT_TORRENTS ." SET tor_type = $tor_status_gold WHERE topic_id = $topic_id LIMIT 1");
// Ocelot
if ($bb_cfg['ocelot']['enabled'])
{ {
return; if ($row = DB()->fetch_row("SELECT info_hash FROM ". BB_BT_TORRENTS ." WHERE topic_id = $topic_id LIMIT 1"))
}
$post_id = $poster_id = $passkey_val = '';
$user_id = $userdata['user_id'];
$attach_id = $attachment['attach_id'];
if (!$passkey_key = $bb_cfg['passkey_key'])
{
bb_die('Could not add passkey (wrong config $bb_cfg[\'passkey_key\'])');
}
// Get $post_id & $poster_id
foreach ($auth_pages as $rid => $row)
{
if ($row['attach_id'] == $attach_id)
{ {
$post_id = $row['post_id']; $info_hash = $row['info_hash'];
$poster_id = $row['user_id_1'];
break;
} }
ocelot_update_tracker('update_torrent', array('info_hash' => rawurlencode($info_hash), 'freetorrent' => $tor_status_gold));
} }
}
// Get $topic_id function send_torrent_with_passkey ($t_data)
$topic_id_sql = 'SELECT topic_id FROM ' . BB_POSTS . ' WHERE post_id = ' . (int) $post_id; {
if (!($topic_id_result = DB()->sql_query($topic_id_sql))) global $userdata, $bb_cfg, $tr_cfg, $lang;
{
bb_die('Could not query post information');
}
$topic_id_row = DB()->sql_fetchrow($topic_id_result);
$topic_id = $topic_id_row['topic_id'];
if (!$attachment['tracker_status']) $topic_id = $t_data['topic_id'];
$poster_id = $t_data['topic_poster'];
$user_id = $t_data['user_id'];
// Запрет на скачивание закрытого или незарегистрированного торрента
$row = DB()->fetch_row("SELECT tor_status FROM ". BB_BT_TORRENTS ." WHERE topic_id = $topic_id LIMIT 1");
if (!isset($row['tor_status']))
{ {
bb_die($lang['PASSKEY_ERR_TOR_NOT_REG']); bb_die($lang['PASSKEY_ERR_TOR_NOT_REG']);
} }
else if (isset($bb_cfg['tor_frozen'][$row['tor_status']]))
if (bf($userdata['user_opt'], 'user_opt', 'dis_passkey') && !IS_GUEST)
{ {
bb_die('Could not add passkey'); if (!$t_data['is_am']) bb_die("Раздача имеет статус: <b>{$lang['tor_status'][$row['tor_status']]}</b><br /><br />Скачивание запрещено");
} }
$passkey_val = '';
if ($bt_userdata = get_bt_userdata($user_id)) if ($bt_userdata = get_bt_userdata($user_id))
{ {
$passkey_val = $bt_userdata['auth_key']; $passkey_val = $bt_userdata['auth_key'];
@ -446,19 +455,16 @@ function send_torrent_with_passkey ($filename)
} }
} }
// Ratio limits // Ratio limit for torrents dl
$user_ratio = get_bt_ratio($bt_userdata);
$min_ratio = $bb_cfg['bt_min_ratio_allow_dl_tor']; $min_ratio = $bb_cfg['bt_min_ratio_allow_dl_tor'];
if ($min_ratio && $user_id != $poster_id && ($user_ratio = get_bt_ratio($bt_userdata)) !== null) if ($min_ratio && $user_id != $poster_id && !is_null($user_ratio))
{ {
if ($user_ratio < $min_ratio && $post_id) if ($user_ratio < $min_ratio)
{ {
$dl = DB()->fetch_row(" $dl = DB()->fetch_row("
SELECT dl.user_status SELECT user_status FROM ". BB_BT_DLSTATUS ." WHERE topic_id = $topic_id AND user_id = $user_id LIMIT 1
FROM ". BB_POSTS ." p
LEFT JOIN ". BB_BT_DLSTATUS ." dl ON dl.topic_id = p.topic_id AND dl.user_id = $user_id
WHERE p.post_id = $post_id
LIMIT 1
"); ");
if (!isset($dl['user_status']) || $dl['user_status'] != DL_STATUS_COMPLETE) if (!isset($dl['user_status']) || $dl['user_status'] != DL_STATUS_COMPLETE)
@ -468,15 +474,67 @@ function send_torrent_with_passkey ($filename)
} }
} }
// Announce URL /*
$ann_url = $bb_cfg['bt_announce_url']; // лимит количества скачиваний торрент-файлов в день
if ($user_id != $poster_id && !$t_data['is_am'])
{
// лимит
$daily_dls_limit = 50;
if (!is_null($user_ratio) && $user_ratio >= 1 && $bt_userdata['u_up_total'] >= 107374182400 )// 100 GB
{
$daily_dls_limit = 100;
}
// число скачиваний
$daily_dls_cnt = (int) DB('dls')->fetch_row("SELECT dls_cnt FROM ". BB_USER_DLS_DAILY ." WHERE user_id = $user_id LIMIT 1", 'dls_cnt');
if ($daily_dls_cnt >= $daily_dls_limit)
{
// повторное скачивание
$can_redownload = DB('dls')->fetch_row("SELECT 1 FROM ". BB_BT_DLS_COUNT ." WHERE topic_id = $topic_id AND user_id = $user_id LIMIT 1");
if (!$can_redownload)
{
bb_log(join("\t", array(date('H:i:s'), $user->ip, $user->id, $topic_id))."\n", 'dls/'.date('m-d') .'-limit');
set_die_append_msg(null, $topic_id);
bb_die("Вы уже исчерпали суточный лимит скачиваний торрент-файлов<br /><br />Ваш текущий лимит: $daily_dls_limit в день");
}
else
{
bb_log(join("\t", array(date('H:i:s'), $user->ip, $user->id, $topic_id))."\n", 'dls/'.date('m-d') .'-redown');
}
}
// счетчик количества скачиваний торрент-файла (для `complete_count` в BB_BT_TORRENTS)
DB('dls')->query("INSERT IGNORE INTO ". BB_BT_DLS_COUNT ." (topic_id, user_id) VALUES ($topic_id, $user_id)");
// если файл еще не был скачан этим юзером, увеличиваем счетчик скачиваний
if (DB('dls')->affected_rows() > 0)
{
DB('dls')->query("
INSERT IGNORE INTO ". BB_USER_DLS_DAILY ." (user_id, dls_cnt) VALUES ($user_id, 1) ON DUPLICATE KEY UPDATE dls_cnt = dls_cnt + 1
");
}
}
*/
$filename = get_attach_path($topic_id, 8);
if (!file_exists($filename))
{
bb_simple_die('File not found');
}
if (!$tor = bdecode_file($filename)) if (!$tor = bdecode_file($filename))
{ {
bb_die('This is not a bencoded file'); bb_simple_die('This is not a bencoded file');
} }
$announce = $bb_cfg['ocelot']['enabled'] ? strval($bb_cfg['ocelot']['url'] .$passkey_val. "/announce") : strval($ann_url . "?$passkey_key=$passkey_val"); // tor cleanup
unset($tor['codepage']);
unset($tor['nodes']);
// Announce URL
$announce = $bb_cfg['ocelot']['enabled'] ? strval($bb_cfg['ocelot']['url'] .$passkey_val. "/announce") : strval($bb_cfg['bt_announce_url'] . "?{$bb_cfg['passkey_key']}=$passkey_val");
// Replace original announce url with tracker default // Replace original announce url with tracker default
if ($bb_cfg['bt_replace_ann_url'] || !isset($tor['announce'])) if ($bb_cfg['bt_replace_ann_url'] || !isset($tor['announce']))
@ -491,7 +549,7 @@ function send_torrent_with_passkey ($filename)
} }
elseif (isset($tor['announce-list'])) elseif (isset($tor['announce-list']))
{ {
$tor['announce-list'] = array_merge($tor['announce-list'], array(array($announce))); $tor['announce-list'] = array_merge($tor['announce-list'], [[$announce]]);
} }
// Add retracker // Add retracker
@ -501,14 +559,14 @@ function send_torrent_with_passkey ($filename)
{ {
if (!isset($tor['announce-list'])) if (!isset($tor['announce-list']))
{ {
$tor['announce-list'] = array( $tor['announce-list'] = [
array($announce), [$announce],
array($tr_cfg['retracker_host']) [$tr_cfg['retracker_host']]
); ];
} }
else else
{ {
$tor['announce-list'] = array_merge($tor['announce-list'], array(array($tr_cfg['retracker_host']))); $tor['announce-list'] = array_merge($tor['announce-list'], [[$tr_cfg['retracker_host']]]);
} }
} }
} }
@ -546,7 +604,7 @@ function send_torrent_with_passkey ($filename)
function generate_passkey ($user_id, $force_generate = false) function generate_passkey ($user_id, $force_generate = false)
{ {
global $bb_cfg, $lang, $sql; global $bb_cfg, $lang;
$user_id = (int) $user_id; $user_id = (int) $user_id;
@ -568,6 +626,9 @@ function generate_passkey ($user_id, $force_generate = false)
} }
} }
// Delete all active user records in tracker
tracker_rm_user($user_id);
for ($i=0; $i < 20; $i++) for ($i=0; $i < 20; $i++)
{ {
$passkey_val = make_rand_str(BT_AUTH_KEY_LENGTH); $passkey_val = make_rand_str(BT_AUTH_KEY_LENGTH);
@ -601,41 +662,15 @@ function generate_passkey ($user_id, $force_generate = false)
return false; return false;
} }
function tracker_rm_torrent ($topic_id)
{
return DB()->sql_query("DELETE FROM ". BB_BT_TRACKER ." WHERE topic_id = ". (int) $topic_id);
}
function tracker_rm_user ($user_id)
{
return DB()->sql_query("DELETE FROM ". BB_BT_TRACKER ." WHERE user_id = ". (int) $user_id);
}
function get_registered_torrents ($id, $mode)
{
$field = ($mode == 'topic') ? 'topic_id' : 'post_id';
$sql = "SELECT topic_id FROM ". BB_BT_TORRENTS ." WHERE $field = $id LIMIT 1";
if (!$result = DB()->sql_query($sql))
{
bb_die('Could not query torrent id');
}
if ($rowset = @DB()->sql_fetchrowset($result))
{
return $rowset;
}
else
{
return false;
}
}
function torrent_error_exit ($message) function torrent_error_exit ($message)
{ {
global $reg_mode, $return_message, $lang; global $reg_mode, $return_message, $lang;
if (isset($reg_mode) && $reg_mode == 'mcp_tor_register')
{
return $message;
}
$msg = ''; $msg = '';
if (isset($reg_mode) && ($reg_mode == 'request' || $reg_mode == 'newtopic')) if (isset($reg_mode) && ($reg_mode == 'request' || $reg_mode == 'newtopic'))
@ -650,6 +685,16 @@ function torrent_error_exit ($message)
bb_die($msg . $message); bb_die($msg . $message);
} }
function tracker_rm_torrent ($topic_id)
{
return DB()->sql_query("DELETE FROM ". BB_BT_TRACKER ." WHERE topic_id = ". (int) $topic_id);
}
function tracker_rm_user ($user_id)
{
return DB()->sql_query("DELETE FROM ". BB_BT_TRACKER ." WHERE user_id = ". (int) $user_id);
}
function ocelot_update_tracker ($action, $updates) function ocelot_update_tracker ($action, $updates)
{ {
global $bb_cfg; global $bb_cfg;

View file

@ -234,9 +234,6 @@ $bb_cfg['tor_no_tor_act'] = array(
// Table names // Table names
define('BUF_TOPIC_VIEW', 'buf_topic_view'); define('BUF_TOPIC_VIEW', 'buf_topic_view');
define('BUF_LAST_SEEDER', 'buf_last_seeder'); define('BUF_LAST_SEEDER', 'buf_last_seeder');
define('BB_ATTACH_CONFIG', 'bb_attachments_config');
define('BB_ATTACHMENTS_DESC', 'bb_attachments_desc');
define('BB_ATTACHMENTS', 'bb_attachments');
define('BB_AUTH_ACCESS_SNAP', 'bb_auth_access_snap'); define('BB_AUTH_ACCESS_SNAP', 'bb_auth_access_snap');
define('BB_AUTH_ACCESS', 'bb_auth_access'); define('BB_AUTH_ACCESS', 'bb_auth_access');
define('BB_BANLIST', 'bb_banlist'); define('BB_BANLIST', 'bb_banlist');
@ -250,8 +247,6 @@ define('BB_CATEGORIES', 'bb_categories');
define('BB_CONFIG', 'bb_config'); define('BB_CONFIG', 'bb_config');
define('BB_CRON', 'bb_cron'); define('BB_CRON', 'bb_cron');
define('BB_DISALLOW', 'bb_disallow'); define('BB_DISALLOW', 'bb_disallow');
define('BB_EXTENSION_GROUPS', 'bb_extension_groups');
define('BB_EXTENSIONS', 'bb_extensions');
define('BB_FORUMS', 'bb_forums'); define('BB_FORUMS', 'bb_forums');
define('BB_GROUPS', 'bb_groups'); define('BB_GROUPS', 'bb_groups');
define('BB_LOG', 'bb_log'); define('BB_LOG', 'bb_log');
@ -275,11 +270,6 @@ define('BB_USER_GROUP', 'bb_user_group');
define('BB_USERS', 'bb_users'); define('BB_USERS', 'bb_users');
define('BB_WORDS', 'bb_words'); define('BB_WORDS', 'bb_words');
define('TORRENT_EXT', 'torrent');
define('TOPIC_DL_TYPE_NORMAL', 0);
define('TOPIC_DL_TYPE_DL', 1);
define('SHOW_PEERS_COUNT', 1); define('SHOW_PEERS_COUNT', 1);
define('SHOW_PEERS_NAMES', 2); define('SHOW_PEERS_NAMES', 2);
define('SHOW_PEERS_FULL', 3); define('SHOW_PEERS_FULL', 3);

View file

@ -1,11 +0,0 @@
<?php
if (!defined('BB_ROOT')) die(basename(__FILE__));
$announce_urls = array();
// Here you can define additional allowed announce urls
// For example, if you want to add http://demo.torrentpier.me
// add this line: $announce_urls[] = 'http://demo.torrentpier.me/bt/announce.php';
// $announce_urls[] = 'http://demo.torrentpier.me/bt/announce.php';

View file

@ -14,13 +14,13 @@ $template->assign_vars(array('DL_BUTTONS' => false));
$count_mode = ($bb_cfg['bt_dl_list_only_count'] && !(@$_GET['dl'] === 'names')); $count_mode = ($bb_cfg['bt_dl_list_only_count'] && !(@$_GET['dl'] === 'names'));
$dl_topic = ($t_data['topic_dl_type'] == TOPIC_DL_TYPE_DL && !($bb_cfg['bt_dl_list_only_1st_page'] && $start)); $dl_topic = ($t_data['tracker_status'] && !($bb_cfg['bt_dl_list_only_1st_page'] && $start));
$show_dl_list = ($dl_topic && ($bb_cfg['bt_show_dl_list'] || ($bb_cfg['allow_dl_list_names_mode'] && @$_GET['dl'] === 'names'))); $show_dl_list = ($dl_topic && ($bb_cfg['bt_show_dl_list'] || ($bb_cfg['allow_dl_list_names_mode'] && @$_GET['dl'] === 'names')));
$show_dl_buttons = ($dl_topic && $bb_cfg['bt_show_dl_list_buttons']); $show_dl_buttons = ($dl_topic && $bb_cfg['bt_show_dl_list_buttons']);
// link to clear DL-List // link to clear DL-List
$template->assign_vars(array('S_DL_DELETE' => false)); $template->assign_vars(array('S_DL_DELETE' => false));
if (($is_auth['auth_mod']) && ($t_data['topic_dl_type'] == TOPIC_DL_TYPE_DL)) if ($is_auth['auth_mod'] && $t_data['tracker_status'])
{ {
$s_dl_delete = "<a href=\"dl_list.php?mode=dl_delete&amp;". POST_TOPIC_URL ."=$topic_id&amp;sid=". $userdata['session_id'] .'">'. $lang['DL_LIST_DEL'] .'</a>'; $s_dl_delete = "<a href=\"dl_list.php?mode=dl_delete&amp;". POST_TOPIC_URL ."=$topic_id&amp;sid=". $userdata['session_id'] .'">'. $lang['DL_LIST_DEL'] .'</a>';
$template->assign_vars(array('S_DL_DELETE' => $s_dl_delete)); $template->assign_vars(array('S_DL_DELETE' => $s_dl_delete));

View file

@ -146,11 +146,27 @@ if ($tor_auth)
} }
} }
if ($tor_reged && $tor_info) if (!$tor_reged)
{ {
$tor_size = ($tor_info['size']) ? $tor_info['size'] : 0; $template->assign_vars(array(
$tor_id = $tor_info['topic_id']; 'SHOW_TOR_NOT_REGGED' => true,
$tor_type = $tor_info['tor_type']; 'TRACKER_REG_LINK' => $tr_reg_link,
));
}
else
{
$tor_info = DB()->fetch_row("SELECT * FROM ". BB_BT_TORRENTS ." WHERE topic_id = $topic_id LIMIT 1");
}
if ($tor_reged && !$tor_info)
{
//DB()->query("UPDATE ". BB_TOPICS ." SET tracker_status = 0 WHERE topic_id = $topic_id LIMIT 1");
//bb_die('Torrent status fixed');
}
if ($tor_reged)
{
$tor_size = (int) $tor_info['size'];
// Magnet link // Magnet link
$passkey = DB()->fetch_row("SELECT auth_key FROM ". BB_BT_USERS ." WHERE user_id = ". (int) $bt_user_id ." LIMIT 1"); $passkey = DB()->fetch_row("SELECT auth_key FROM ". BB_BT_USERS ." WHERE user_id = ". (int) $bt_user_id ." LIMIT 1");
@ -175,7 +191,7 @@ if ($tor_reged && $tor_info)
$sql = "SELECT user_status $sql = "SELECT user_status
FROM ". BB_BT_DLSTATUS ." FROM ". BB_BT_DLSTATUS ."
WHERE user_id = $bt_user_id WHERE user_id = $bt_user_id
AND topic_id = $bt_topic_id AND topic_id = $topic_id
LIMIT 1"; LIMIT 1";
} }
@ -201,7 +217,6 @@ if ($tor_reged && $tor_info)
if (!$dl_allowed) if (!$dl_allowed)
{ {
$template->assign_block_vars('postrow.attach.tor_reged', array());
$template->assign_vars(array( $template->assign_vars(array(
'TOR_BLOCKED' => true, 'TOR_BLOCKED' => true,
'TOR_BLOCKED_MSG' => sprintf($lang['BT_LOW_RATIO_FOR_DL'], round($user_ratio, 2), "search.php?dlu=$bt_user_id&amp;dlc=1"), 'TOR_BLOCKED_MSG' => sprintf($lang['BT_LOW_RATIO_FOR_DL'], round($user_ratio, 2), "search.php?dlu=$bt_user_id&amp;dlc=1"),
@ -209,47 +224,31 @@ if ($tor_reged && $tor_info)
} }
else else
{ {
$template->assign_block_vars('postrow.attach.tor_reged', array( $template->assign_vars(array(
'DOWNLOAD_NAME' => $display_name, 'DOWNLOAD_NAME' => '['.$bb_cfg['server_name'].'].t' . $topic_id . '.torrent',
'TRACKER_LINK' => $tracker_link, 'TOR_SILVER_GOLD' => $tor_info['tor_type'],
'ATTACH_ID' => $attach_id,
'TOR_SILVER_GOLD' => $tor_type,
// torrent status mod
'TOR_FROZEN' => (!IS_AM) ? (isset($bb_cfg['tor_frozen'][$tor_info['tor_status']]) && !(isset($bb_cfg['tor_frozen_author_download'][$tor_info['tor_status']]) && $userdata['user_id'] == $tor_info['poster_id'])) ? true : '' : '', 'TOR_FROZEN' => (!IS_AM) ? (isset($bb_cfg['tor_frozen'][$tor_info['tor_status']]) && !(isset($bb_cfg['tor_frozen_author_download'][$tor_info['tor_status']]) && $userdata['user_id'] == $tor_info['poster_id'])) ? true : '' : '',
'TOR_STATUS_TEXT' => $lang['TOR_STATUS_NAME'][$tor_info['tor_status']], 'TOR_STATUS_TEXT' => $lang['TOR_STATUS_NAME'][$tor_info['tor_status']],
'TOR_STATUS_ICON' => $bb_cfg['tor_icons'][$tor_info['tor_status']], 'TOR_STATUS_ICON' => $bb_cfg['tor_icons'][$tor_info['tor_status']],
'TOR_STATUS_BY' => ($tor_info['checked_user_id'] && $is_auth['auth_mod']) ? ('<span title="'. bb_date($tor_info['checked_time']) .'"> &middot; '. profile_url($tor_info) .' &middot; <i>'. delta_time($tor_info['checked_time']) . $lang['TOR_BACK'] .'</i></span>') : '', 'TOR_STATUS_BY' => ($tor_info['checked_user_id'] && $is_auth['auth_mod']) ? ('<span title="'. bb_date($tor_info['checked_time']) .'"> &middot; '. profile_url($tor_info) .' &middot; <i>'. delta_time($tor_info['checked_time']) . $lang['TOR_BACK'] .'</i></span>') : '',
'TOR_STATUS_SELECT' => build_select('sel_status', array_flip($lang['TOR_STATUS_NAME']), TOR_APPROVED), 'TOR_STATUS_SELECT' => build_select('sel_status', array_flip($lang['TOR_STATUS_NAME']), TOR_APPROVED),
'TOR_STATUS_REPLY' => $bb_cfg['tor_comment'] && !IS_GUEST && in_array($tor_info['tor_status'], $bb_cfg['tor_reply']) && $userdata['user_id'] == $tor_info['poster_id'] && $t_data['topic_status'] != TOPIC_LOCKED, 'TOR_STATUS_REPLY' => $bb_cfg['tor_comment'] && !IS_GUEST && in_array($tor_info['tor_status'], $bb_cfg['tor_reply']) && $userdata['user_id'] == $tor_info['poster_id'] && $t_data['topic_status'] != TOPIC_LOCKED,
//end torrent status mod
'S_UPLOAD_IMAGE' => $upload_image,
'U_DOWNLOAD_LINK' => $download_link,
'DL_LINK_CLASS' => (isset($bt_userdata['user_status'])) ? $dl_link_css[$bt_userdata['user_status']] : 'genmed', 'DL_LINK_CLASS' => (isset($bt_userdata['user_status'])) ? $dl_link_css[$bt_userdata['user_status']] : 'genmed',
'DL_TITLE_CLASS' => (isset($bt_userdata['user_status'])) ? $dl_status_css[$bt_userdata['user_status']] : 'gen', 'DL_TITLE_CLASS' => (isset($bt_userdata['user_status'])) ? $dl_status_css[$bt_userdata['user_status']] : 'gen',
'FILESIZE' => $tor_file_size, 'FILESIZE' => $tor_file_size,
'MAGNET' => $tor_magnet, 'MAGNET' => $tor_magnet,
'HASH' => strtoupper(bin2hex($tor_info['info_hash'])), 'HASH' => strtoupper(bin2hex($tor_info['info_hash'])),
'DOWNLOAD_COUNT' => sprintf($lang['DOWNLOAD_NUMBER'], $download_count), 'DOWNLOAD_COUNT' => sprintf($lang['DOWNLOAD_NUMBER'], 666/*$download_count*/),
'REGED_TIME' => bb_date($tor_info['reg_time']), 'REGED_TIME' => bb_date($tor_info['reg_time']),
'REGED_DELTA' => delta_time($tor_info['reg_time']), 'REGED_DELTA' => delta_time($tor_info['reg_time']),
'TORRENT_SIZE' => humn_size($tor_size), 'TORRENT_SIZE' => humn_size($tor_size),
'COMPLETED' => sprintf($lang['DOWNLOAD_NUMBER'], $tor_info['complete_count']), 'COMPLETED' => sprintf($lang['DOWNLOAD_NUMBER'], $tor_info['complete_count']),
));
if ($comment)
{
$template->assign_block_vars('postrow.attach.tor_reged.comment', array('COMMENT' => $comment));
}
}
if ($bb_cfg['show_tor_info_in_dl_list'])
{
$template->assign_vars(array(
'SHOW_DL_LIST' => true,
'SHOW_DL_LIST_TOR_INFO' => true,
'SHOW_TOR_REGGED' => true,
'TRACKER_REG_LINK' => $tr_reg_link,
'AUTH_MOD' => $is_auth['auth_mod'],
'TOR_SIZE' => humn_size($tor_size), 'TOR_SIZE' => humn_size($tor_size),
'TOR_LONGEVITY' => delta_time($tor_info['reg_time']), 'TOR_LONGEVITY' => delta_time($tor_info['reg_time']),
'TOR_COMPLETED' => declension($tor_info['complete_count'], 'times'), 'TOR_COMPLETED' => declension($tor_info['complete_count'], 'times'),
@ -257,7 +256,20 @@ if ($tor_reged && $tor_info)
} }
// Show peers // Show peers
if ($show_peers) if ($tor_info['tor_status'] == TOR_CLOSED_CPHOLD)
{
$closed_by_cphold = true;
$template->assign_vars(array(
'TOR_CLOSED_BY_CPHOLD' => true,
'TOR_CONTROLS' => false,
'DL_BUTTONS' => false,
'CPHOLD_UID' => $tor_info['tor_status_uid'],
'CPHOLD_NAME' => $tor_status_username,
'CAN_OPEN_CH_RELEASE' => ($is_auth['auth_mod'] || IS_CP_HOLDER),
));
}
else
{ {
// Sorting order in full mode // Sorting order in full mode
if ($s_mode == 'full') if ($s_mode == 'full')
@ -303,14 +315,14 @@ if ($tor_reged && $tor_info)
{ {
$sql = "SELECT seeders, leechers, speed_up, speed_down $sql = "SELECT seeders, leechers, speed_up, speed_down
FROM ". BB_BT_TRACKER_SNAP ." FROM ". BB_BT_TRACKER_SNAP ."
WHERE topic_id = $tor_id WHERE topic_id = $topic_id
LIMIT 1"; LIMIT 1";
} }
else if ($s_mode == 'names') else if ($s_mode == 'names')
{ {
$sql = "SELECT tr.user_id, tr.ip, tr.port, tr.remain, tr.seeder, u.username, u.user_rank $sql = "SELECT tr.user_id, tr.ip, tr.port, tr.remain, tr.seeder, u.username, u.user_rank
FROM ". BB_BT_TRACKER ." tr, ". BB_USERS ." u FROM ". BB_BT_TRACKER ." tr, ". BB_USERS ." u
WHERE tr.topic_id = $tor_id WHERE tr.topic_id = $topic_id
AND u.user_id = tr.user_id AND u.user_id = tr.user_id
GROUP BY tr.ip, tr.user_id, tr.port, tr.seeder GROUP BY tr.ip, tr.user_id, tr.port, tr.seeder
ORDER BY u.username ORDER BY u.username
@ -324,7 +336,7 @@ if ($tor_reged && $tor_info)
tr.complete_percent, u.username, u.user_rank tr.complete_percent, u.username, u.user_rank
FROM ". BB_BT_TRACKER ." tr FROM ". BB_BT_TRACKER ." tr
LEFT JOIN ". BB_USERS ." u ON u.user_id = tr.user_id LEFT JOIN ". BB_USERS ." u ON u.user_id = tr.user_id
WHERE tr.topic_id = $tor_id WHERE tr.topic_id = $topic_id
GROUP BY tr.ip, tr.user_id, tr.port, tr.seeder GROUP BY tr.ip, tr.user_id, tr.port, tr.seeder
ORDER BY $full_mode_order $full_mode_sort_dir ORDER BY $full_mode_order $full_mode_sort_dir
LIMIT $show_peers_limit"; LIMIT $show_peers_limit";
@ -489,10 +501,6 @@ if ($tor_reged && $tor_info)
$sp_up = ($peer['speed_up']) ? humn_size($peer['speed_up'], 0, 'KB') .'/s' : '-'; $sp_up = ($peer['speed_up']) ? humn_size($peer['speed_up'], 0, 'KB') .'/s' : '-';
$sp_down = ($peer['speed_down']) ? humn_size($peer['speed_down'], 0, 'KB') .'/s' : '-'; $sp_down = ($peer['speed_down']) ? humn_size($peer['speed_down'], 0, 'KB') .'/s' : '-';
$bgr_class = (!($tr[$x] % 2)) ? $bgr_class_1 : $bgr_class_2;
$row_bgr = ($change_peers_bgr_over) ? " class=\"$bgr_class\" onmouseover=\"this.className='$bgr_class_over';\" onmouseout=\"this.className='$bgr_class';\"" : '';
$tr[$x]++;
$template->assign_block_vars("$x_full.$x_row", array( $template->assign_block_vars("$x_full.$x_row", array(
'ROW_BGR' => $row_bgr, 'ROW_BGR' => $row_bgr,
'NAME' => ($peer['update_time']) ? $name : "<s>$name</s>", 'NAME' => ($peer['update_time']) ? $name : "<s>$name</s>",
@ -569,7 +577,7 @@ if ($tor_reged && $tor_info)
} }
} }
$template->assign_block_vars('tor_title', array('U_DOWNLOAD_LINK' => $download_link)); //$template->assign_block_vars('tor_title', array('U_DOWNLOAD_LINK' => $download_link));
if ($peers_cnt > $max_peers_before_overflow && $s_mode == 'full') if ($peers_cnt > $max_peers_before_overflow && $s_mode == 'full')
{ {
@ -586,15 +594,14 @@ if ($bb_cfg['bt_allow_spmode_change'] && $s_mode != 'full')
{ {
$template->assign_vars(array( $template->assign_vars(array(
'PEERS_FULL_LINK' => true, 'PEERS_FULL_LINK' => true,
'SPMODE_FULL_HREF' => "viewtopic.php?". POST_TOPIC_URL ."=$bt_topic_id&amp;spmode=full#seeders", 'SPMODE_FULL_HREF' => "viewtopic.php?". POST_TOPIC_URL ."=$topic_id&amp;spmode=full#seeders",
)); ));
} }
$template->assign_vars(array( $template->assign_vars(array(
'SHOW_DL_LIST_LINK' => (($bb_cfg['bt_show_dl_list'] || $bb_cfg['allow_dl_list_names_mode']) && $t_data['topic_dl_type'] == TOPIC_DL_TYPE_DL), 'SHOW_DL_LIST_LINK' => (($bb_cfg['bt_show_dl_list'] || $bb_cfg['allow_dl_list_names_mode']) && $t_data['tracker_status']),
'SHOW_TOR_ACT' => ($tor_reged && $show_peers && (!isset($bb_cfg['tor_no_tor_act'][$tor_info['tor_status']]) || IS_AM)), 'SHOW_TOR_ACT' => ($tor_reged && $show_peers && (!isset($bb_cfg['tor_no_tor_act'][$tor_info['tor_status']]) || IS_AM)),
'S_MODE_COUNT' => ($s_mode == 'count'), 'S_MODE_COUNT' => ($s_mode == 'count'),
'S_MODE_NAMES' => ($s_mode == 'names'),
'S_MODE_FULL' => ($s_mode == 'full'), 'S_MODE_FULL' => ($s_mode == 'full'),
'PEER_EXIST' => ($seeders || $leechers || defined('SEEDER_EXIST') || defined('LEECHER_EXIST')), 'PEER_EXIST' => ($seeders || $leechers || defined('SEEDER_EXIST') || defined('LEECHER_EXIST')),
'SEED_EXIST' => ($seeders || defined('SEEDER_EXIST')), 'SEED_EXIST' => ($seeders || defined('SEEDER_EXIST')),

View file

@ -2229,8 +2229,6 @@ $lang['BT_ANNOUNCE_URL'] = 'Announce url';
$lang['BT_ANNOUNCE_URL_EXPL'] = 'you can define additional allowed urls in "includes/torrent_announce_urls.php"'; $lang['BT_ANNOUNCE_URL_EXPL'] = 'you can define additional allowed urls in "includes/torrent_announce_urls.php"';
$lang['BT_DISABLE_DHT'] = 'Disable DHT network'; $lang['BT_DISABLE_DHT'] = 'Disable DHT network';
$lang['BT_DISABLE_DHT_EXPL'] = 'Disable Peer Exchange and DHT (recommended for private networks, only url announce)'; $lang['BT_DISABLE_DHT_EXPL'] = 'Disable Peer Exchange and DHT (recommended for private networks, only url announce)';
$lang['BT_CHECK_ANNOUNCE_URL'] = 'Verify announce url';
$lang['BT_CHECK_ANNOUNCE_URL_EXPL'] = 'register on tracker only allowed urls';
$lang['BT_REPLACE_ANN_URL'] = 'Replace announce url'; $lang['BT_REPLACE_ANN_URL'] = 'Replace announce url';
$lang['BT_REPLACE_ANN_URL_EXPL'] = 'replace original announce url with your default in .torrent files'; $lang['BT_REPLACE_ANN_URL_EXPL'] = 'replace original announce url with your default in .torrent files';
$lang['BT_DEL_ADDIT_ANN_URLS'] = 'Remove all additional announce urls'; $lang['BT_DEL_ADDIT_ANN_URLS'] = 'Remove all additional announce urls';
@ -2258,9 +2256,6 @@ $lang['BT_SHOW_DL_BUT_DOWN'] = $lang['DLDOWN'];
$lang['BT_SHOW_DL_BUT_COMPL'] = $lang['DLCOMPLETE']; $lang['BT_SHOW_DL_BUT_COMPL'] = $lang['DLCOMPLETE'];
$lang['BT_SHOW_DL_BUT_CANCEL'] = $lang['DLCANCEL']; $lang['BT_SHOW_DL_BUT_CANCEL'] = $lang['DLCANCEL'];
$lang['BT_ADD_AUTH_KEY_HEAD'] = 'Passkey';
$lang['BT_ADD_AUTH_KEY'] = 'Enable adding passkey to the torrent-files before downloading';
$lang['BT_TOR_BROWSE_ONLY_REG_HEAD'] = 'Torrent browser (tracker)'; $lang['BT_TOR_BROWSE_ONLY_REG_HEAD'] = 'Torrent browser (tracker)';
$lang['BT_TOR_BROWSE_ONLY_REG'] = 'Torrent browser (tracker.php) accessible only for logged in users'; $lang['BT_TOR_BROWSE_ONLY_REG'] = 'Torrent browser (tracker.php) accessible only for logged in users';
$lang['BT_SEARCH_BOOL_MODE'] = 'Allow boolean full-text searches'; $lang['BT_SEARCH_BOOL_MODE'] = 'Allow boolean full-text searches';

View file

@ -2229,8 +2229,6 @@ $lang['BT_ANNOUNCE_URL'] = 'Announce url';
$lang['BT_ANNOUNCE_URL_EXPL'] = 'дополнительные разрешенные адреса можно задать в "includes/torrent_announce_urls.php"'; $lang['BT_ANNOUNCE_URL_EXPL'] = 'дополнительные разрешенные адреса можно задать в "includes/torrent_announce_urls.php"';
$lang['BT_DISABLE_DHT'] = 'Запретить DHT сети'; $lang['BT_DISABLE_DHT'] = 'Запретить DHT сети';
$lang['BT_DISABLE_DHT_EXPL'] = 'Запретить обмен пирами и DHT (рекомендовано для приватных сетей, только url announce)'; $lang['BT_DISABLE_DHT_EXPL'] = 'Запретить обмен пирами и DHT (рекомендовано для приватных сетей, только url announce)';
$lang['BT_CHECK_ANNOUNCE_URL'] = 'Проверять announce url';
$lang['BT_CHECK_ANNOUNCE_URL_EXPL'] = 'разрешить регистрацию на трекере только если announce url входит в список разрешенных';
$lang['BT_REPLACE_ANN_URL'] = 'Заменять announce url'; $lang['BT_REPLACE_ANN_URL'] = 'Заменять announce url';
$lang['BT_REPLACE_ANN_URL_EXPL'] = 'заменять оригинальный announce url в .torrent файлах на ваш'; $lang['BT_REPLACE_ANN_URL_EXPL'] = 'заменять оригинальный announce url в .torrent файлах на ваш';
$lang['BT_DEL_ADDIT_ANN_URLS'] = 'Удалять все дополнительные announce urls'; $lang['BT_DEL_ADDIT_ANN_URLS'] = 'Удалять все дополнительные announce urls';
@ -2258,9 +2256,6 @@ $lang['BT_SHOW_DL_BUT_DOWN'] = $lang['DLDOWN'];
$lang['BT_SHOW_DL_BUT_COMPL'] = $lang['DLCOMPLETE']; $lang['BT_SHOW_DL_BUT_COMPL'] = $lang['DLCOMPLETE'];
$lang['BT_SHOW_DL_BUT_CANCEL'] = $lang['DLCANCEL']; $lang['BT_SHOW_DL_BUT_CANCEL'] = $lang['DLCANCEL'];
$lang['BT_ADD_AUTH_KEY_HEAD'] = 'Passkey';
$lang['BT_ADD_AUTH_KEY'] = 'Aвтодобавление passkey к торрент-файлам перед их скачиванием';
$lang['BT_TOR_BROWSE_ONLY_REG_HEAD'] = 'Torrent browser (трекер)'; $lang['BT_TOR_BROWSE_ONLY_REG_HEAD'] = 'Torrent browser (трекер)';
$lang['BT_TOR_BROWSE_ONLY_REG'] = 'Torrent browser (tracker.php) не доступен для гостей'; $lang['BT_TOR_BROWSE_ONLY_REG'] = 'Torrent browser (tracker.php) не доступен для гостей';
$lang['BT_SEARCH_BOOL_MODE'] = 'Разрешить полнотекстовый поиск в логическом режиме'; $lang['BT_SEARCH_BOOL_MODE'] = 'Разрешить полнотекстовый поиск в логическом режиме';

View file

@ -2229,8 +2229,6 @@ $lang['BT_ANNOUNCE_URL'] = 'Announce url';
$lang['BT_ANNOUNCE_URL_EXPL'] = 'додаткові дозволені адреси можна задати в "includes/torrent_announce_urls.php"'; $lang['BT_ANNOUNCE_URL_EXPL'] = 'додаткові дозволені адреси можна задати в "includes/torrent_announce_urls.php"';
$lang['BT_DISABLE_DHT'] = 'Заборонити DHT мережі'; $lang['BT_DISABLE_DHT'] = 'Заборонити DHT мережі';
$lang['BT_DISABLE_DHT_EXPL'] = 'Заборонити обмін пiрами та DHT (рекомендовано для приватних мереж, тільки url announce)'; $lang['BT_DISABLE_DHT_EXPL'] = 'Заборонити обмін пiрами та DHT (рекомендовано для приватних мереж, тільки url announce)';
$lang['BT_CHECK_ANNOUNCE_URL'] = 'Перевіряти announce url';
$lang['BT_CHECK_ANNOUNCE_URL_EXPL'] = 'дозволити реєстрацію на трекері тільки якщо announce url входить до списка дозволених';
$lang['BT_REPLACE_ANN_URL'] = 'Заміняти announce url'; $lang['BT_REPLACE_ANN_URL'] = 'Заміняти announce url';
$lang['BT_REPLACE_ANN_URL_EXPL'] = 'заміняти оригінальний announce url у .torrent файлах на ваш'; $lang['BT_REPLACE_ANN_URL_EXPL'] = 'заміняти оригінальний announce url у .torrent файлах на ваш';
$lang['BT_DEL_ADDIT_ANN_URLS'] = 'Видалити всі додаткові announce urls'; $lang['BT_DEL_ADDIT_ANN_URLS'] = 'Видалити всі додаткові announce urls';
@ -2258,9 +2256,6 @@ $lang['BT_SHOW_DL_BUT_DOWN'] = $lang['DLDOWN'];
$lang['BT_SHOW_DL_BUT_COMPL'] = $lang['DLCOMPLETE']; $lang['BT_SHOW_DL_BUT_COMPL'] = $lang['DLCOMPLETE'];
$lang['BT_SHOW_DL_BUT_CANCEL'] = $lang['DLCANCEL']; $lang['BT_SHOW_DL_BUT_CANCEL'] = $lang['DLCANCEL'];
$lang['BT_ADD_AUTH_KEY_HEAD'] = 'Passkey';
$lang['BT_ADD_AUTH_KEY'] = 'Автододавання passkey до торрент-файлів перед їх скачуванням';
$lang['BT_TOR_BROWSE_ONLY_REG_HEAD'] = 'Torrent browser (трекер)'; $lang['BT_TOR_BROWSE_ONLY_REG_HEAD'] = 'Torrent browser (трекер)';
$lang['BT_TOR_BROWSE_ONLY_REG'] = 'Torrent browser (tracker.php) не доступний для гостей'; $lang['BT_TOR_BROWSE_ONLY_REG'] = 'Torrent browser (tracker.php) не доступний для гостей';
$lang['BT_SEARCH_BOOL_MODE'] = 'Дозволити повнотекстовий пошук в логічному режимі'; $lang['BT_SEARCH_BOOL_MODE'] = 'Дозволити повнотекстовий пошук в логічному режимі';

View file

@ -399,11 +399,11 @@ switch ($mode)
case 'set_download': case 'set_download':
case 'unset_download': case 'unset_download':
$set_download = ($mode == 'set_download'); $set_download = ($mode == 'set_download');
$new_dl_type = ($set_download) ? TOPIC_DL_TYPE_DL : TOPIC_DL_TYPE_NORMAL; $new_dl_type = ($set_download) ? 1 : 0;
DB()->query(" DB()->query("
UPDATE ". BB_TOPICS ." SET UPDATE ". BB_TOPICS ." SET
topic_dl_type = $new_dl_type tracker_status = $new_dl_type
WHERE topic_id IN($topic_csv) WHERE topic_id IN($topic_csv)
AND forum_id = $forum_id AND forum_id = $forum_id
AND topic_moved_id = 0 AND topic_moved_id = 0

View file

@ -9,7 +9,7 @@ require(INC_DIR .'functions_post.php');
// Start session management // Start session management
$user->session_start(); $user->session_start();
$page_cfg['load_tpl_vars'] = array('post_icons'); $page_cfg['load_tpl_vars'] = ['post_icons'];
$submit = (bool) @$_REQUEST['post']; $submit = (bool) @$_REQUEST['post'];
$preview = (bool) @$_REQUEST['preview']; $preview = (bool) @$_REQUEST['preview'];
@ -23,15 +23,13 @@ $mode = (string) @$_REQUEST['mode'];
$confirm = isset($_POST['confirm']); $confirm = isset($_POST['confirm']);
$orig_word = $replacement_word = array(); $orig_word = $replacement_word = [];
// Set topic type // Set topic type
$topic_type = (@$_POST['topictype']) ? (int) $_POST['topictype'] : POST_NORMAL; $topic_type = (@$_POST['topictype']) ? (int) $_POST['topictype'] : POST_NORMAL;
$topic_type = in_array($topic_type, array(POST_NORMAL, POST_STICKY, POST_ANNOUNCE)) ? $topic_type : POST_NORMAL; $topic_type = in_array($topic_type, [POST_NORMAL, POST_STICKY, POST_ANNOUNCE]) ? $topic_type : POST_NORMAL;
$selected_rg = 0; $selected_rg = $switch_rg_sig = $switch_poster_rg_sig = 0;
$switch_rg_sig = 0;
$switch_poster_rg_sig = 0;
if ($mode == 'smilies') if ($mode == 'smilies')
{ {
@ -384,7 +382,7 @@ elseif ( ($submit || $confirm) && !$topic_has_new_posts )
$user_id = ( $mode == 'reply' || $mode == 'newtopic' ) ? $userdata['user_id'] : $post_data['poster_id']; $user_id = ( $mode == 'reply' || $mode == 'newtopic' ) ? $userdata['user_id'] : $post_data['poster_id'];
update_post_stats($mode, $post_data, $forum_id, $topic_id, $post_id, $user_id); update_post_stats($mode, $post_data, $forum_id, $topic_id, $post_id, $user_id);
} }
$attachment_mod['posting']->insert_attachment($post_id); //$attachment_mod['posting']->insert_attachment($post_id);
if (!$error_msg) if (!$error_msg)
{ {
@ -396,7 +394,42 @@ elseif ( ($submit || $confirm) && !$topic_has_new_posts )
set_tracks(COOKIE_TOPIC, $tracking_topics, $topic_id); set_tracks(COOKIE_TOPIC, $tracking_topics, $topic_id);
} }
if (defined('TORRENT_ATTACH_ID') && $bb_cfg['bt_newtopic_auto_reg'] && !$error_msg) // новая тема или редактирование 1-го сообщения и нет уже прикрепленного файла
$can_attach_file = (($mode == 'newtopic' || ($post_data['first_post'] && $mode == 'editpost')) && empty($post_info['attach_ext_id']));
if ($can_attach_file && !empty($_FILES['attach']['name']))
{
$upload = new Upload();
if ($upload->init($bb_cfg['attach'], $_FILES['attach']) AND $upload->store('attach', array('topic_id' => $topic_id)))
{
DB()->query("
UPDATE ". BB_TOPICS ." SET
attach_ext_id = ". (int) $upload->file_ext_id .",
filesize = ". (int) $upload->file_size ."
WHERE topic_id = $topic_id
LIMIT 1
");
if ($upload->file_ext_id == 8)
{
require_once(INC_DIR .'functions_torrent.php');
tracker_register($topic_id, 'newtopic', TOR_NOT_APPROVED); # --> exit
}
}
else
{
$return_to_edit_link = '<a href="'. POSTING_URL .'?mode=editpost&amp;p='. $post_id .'">Вернуться к редактированию сообщения</a>';
$return_message = '
<span class="warnColor1">'. join('<br />', $upload->errors) ."</span>
<br /><br />
$return_to_edit_link
<br /><br /><hr /><br />
$return_message
";
}
}
/*if (defined('TORRENT_ATTACH_ID') && $bb_cfg['bt_newtopic_auto_reg'] && !$error_msg)
{ {
include(INC_DIR .'functions_torrent.php'); include(INC_DIR .'functions_torrent.php');
if (!DB()->fetch_row("SELECT attach_id FROM ". BB_BT_TORRENTS ." WHERE attach_id = ". TORRENT_ATTACH_ID)) if (!DB()->fetch_row("SELECT attach_id FROM ". BB_BT_TORRENTS ." WHERE attach_id = ". TORRENT_ATTACH_ID))
@ -434,7 +467,7 @@ elseif ( ($submit || $confirm) && !$topic_has_new_posts )
} }
else tracker_register(TORRENT_ATTACH_ID, 'newtopic', TOR_NOT_APPROVED); else tracker_register(TORRENT_ATTACH_ID, 'newtopic', TOR_NOT_APPROVED);
} }
} }*/
// Update atom feed // Update atom feed
update_atom('topic', $topic_id); update_atom('topic', $topic_id);

View file

@ -816,10 +816,10 @@ else
'TOPIC_ICON' => get_topic_icon($topic, $is_unread), 'TOPIC_ICON' => get_topic_icon($topic, $is_unread),
'PAGINATION' => ($moved) ? '' : build_topic_pagination(TOPIC_URL . $topic_id, $topic['topic_replies'], $bb_cfg['posts_per_page']), 'PAGINATION' => ($moved) ? '' : build_topic_pagination(TOPIC_URL . $topic_id, $topic['topic_replies'], $bb_cfg['posts_per_page']),
'REPLIES' => $topic['topic_replies'], 'REPLIES' => $topic['topic_replies'],
'ATTACH' => $topic['topic_attachment'], 'ATTACH' => $topic['attach_ext_id'],
'STATUS' => $topic['topic_status'], 'STATUS' => $topic['topic_status'],
'TYPE' => $topic['topic_type'], 'TYPE' => $topic['topic_type'],
'DL' => ($topic['topic_dl_type'] == TOPIC_DL_TYPE_DL), 'DL' => $topic['tracker_status'],
'POLL' => $topic['topic_vote'], 'POLL' => $topic['topic_vote'],
'DL_CLASS' => isset($topic['dl_status']) ? $dl_link_css[$topic['dl_status']] : '', 'DL_CLASS' => isset($topic['dl_status']) ? $dl_link_css[$topic['dl_status']] : '',

View file

@ -41,10 +41,6 @@
<td><h4>{L_BT_DISABLE_DHT}</h4><h6>{L_BT_DISABLE_DHT_EXPL}</h6></td> <td><h4>{L_BT_DISABLE_DHT}</h4><h6>{L_BT_DISABLE_DHT_EXPL}</h6></td>
<td><label for="bt_disable_dht1"><input type="radio" name="bt_disable_dht" id="bt_disable_dht1" value="1" {BT_DISABLE_DHT_YES} /> {L_BT_DISABLE_DHT_YES}&nbsp;</label><label for="bt_disable_dht2">&nbsp;<input type="radio" name="bt_disable_dht" id="bt_disable_dht2" value="0" {BT_DISABLE_DHT_NO} /> {L_BT_DISABLE_DHT_NO} &nbsp;</label></td> <td><label for="bt_disable_dht1"><input type="radio" name="bt_disable_dht" id="bt_disable_dht1" value="1" {BT_DISABLE_DHT_YES} /> {L_BT_DISABLE_DHT_YES}&nbsp;</label><label for="bt_disable_dht2">&nbsp;<input type="radio" name="bt_disable_dht" id="bt_disable_dht2" value="0" {BT_DISABLE_DHT_NO} /> {L_BT_DISABLE_DHT_NO} &nbsp;</label></td>
</tr> </tr>
<tr>
<td><h4>{L_BT_CHECK_ANNOUNCE_URL}</h4><h6>{L_BT_CHECK_ANNOUNCE_URL_EXPL}</h6></td>
<td><label for="bt_check_announce_url1"><input type="radio" name="bt_check_announce_url" id="bt_check_announce_url1" value="1" {BT_CHECK_ANNOUNCE_URL_YES} /> {L_BT_CHECK_ANNOUNCE_URL_YES}&nbsp;</label><label for="bt_check_announce_url2">&nbsp;<input type="radio" name="bt_check_announce_url" id="bt_check_announce_url2" value="0" {BT_CHECK_ANNOUNCE_URL_NO} /> {L_BT_CHECK_ANNOUNCE_URL_NO} &nbsp;</label></td>
</tr>
<tr> <tr>
<td><h4>{L_BT_REPLACE_ANN_URL}</h4><h6>{L_BT_REPLACE_ANN_URL_EXPL}</h6></td> <td><h4>{L_BT_REPLACE_ANN_URL}</h4><h6>{L_BT_REPLACE_ANN_URL_EXPL}</h6></td>
<td><label for="bt_replace_ann_url1"><input type="radio" name="bt_replace_ann_url" id="bt_replace_ann_url1" value="1" {BT_REPLACE_ANN_URL_YES} /> {L_BT_REPLACE_ANN_URL_YES}&nbsp;</label><label for="bt_replace_ann_url2">&nbsp;<input type="radio" name="bt_replace_ann_url" id="bt_replace_ann_url2" value="0" {BT_REPLACE_ANN_URL_NO} /> {L_BT_REPLACE_ANN_URL_NO} &nbsp;</label></td> <td><label for="bt_replace_ann_url1"><input type="radio" name="bt_replace_ann_url" id="bt_replace_ann_url1" value="1" {BT_REPLACE_ANN_URL_YES} /> {L_BT_REPLACE_ANN_URL_YES}&nbsp;</label><label for="bt_replace_ann_url2">&nbsp;<input type="radio" name="bt_replace_ann_url" id="bt_replace_ann_url2" value="0" {BT_REPLACE_ANN_URL_NO} /> {L_BT_REPLACE_ANN_URL_NO} &nbsp;</label></td>
@ -132,14 +128,6 @@
<td><label for="bt_unset_dltype_on_tor_unreg1"><input type="radio" name="bt_unset_dltype_on_tor_unreg" id="bt_unset_dltype_on_tor_unreg1" value="1" {BT_UNSET_DLTYPE_ON_TOR_UNREG_YES} /> {L_BT_UNSET_DLTYPE_ON_TOR_UNREG_YES}&nbsp;</label><label for="bt_unset_dltype_on_tor_unreg2">&nbsp;<input type="radio" name="bt_unset_dltype_on_tor_unreg" id="bt_unset_dltype_on_tor_unreg2" value="0" {BT_UNSET_DLTYPE_ON_TOR_UNREG_NO} /> {L_BT_UNSET_DLTYPE_ON_TOR_UNREG_NO} &nbsp;</label></td> <td><label for="bt_unset_dltype_on_tor_unreg1"><input type="radio" name="bt_unset_dltype_on_tor_unreg" id="bt_unset_dltype_on_tor_unreg1" value="1" {BT_UNSET_DLTYPE_ON_TOR_UNREG_YES} /> {L_BT_UNSET_DLTYPE_ON_TOR_UNREG_YES}&nbsp;</label><label for="bt_unset_dltype_on_tor_unreg2">&nbsp;<input type="radio" name="bt_unset_dltype_on_tor_unreg" id="bt_unset_dltype_on_tor_unreg2" value="0" {BT_UNSET_DLTYPE_ON_TOR_UNREG_NO} /> {L_BT_UNSET_DLTYPE_ON_TOR_UNREG_NO} &nbsp;</label></td>
</tr> </tr>
<tr>
<th colspan="2">{L_BT_ADD_AUTH_KEY_HEAD}</th>
</tr>
<tr>
<td><h4>{L_BT_ADD_AUTH_KEY}</h4></td>
<td><label for="bt_add_auth_key1"><input type="radio" name="bt_add_auth_key" id="bt_add_auth_key1" value="1" {BT_ADD_AUTH_KEY_YES} /> {L_BT_ADD_AUTH_KEY_YES}&nbsp;</label><label for="bt_add_auth_key2">&nbsp;<input type="radio" name="bt_add_auth_key" id="bt_add_auth_key2" value="0" {BT_ADD_AUTH_KEY_NO} /> {L_BT_ADD_AUTH_KEY_NO} &nbsp;</label></td>
</tr>
<tr> <tr>
<th colspan="2">{L_BT_TOR_BROWSE_ONLY_REG_HEAD}</th> <th colspan="2">{L_BT_TOR_BROWSE_ONLY_REG_HEAD}</th>
</tr> </tr>

View file

@ -1,70 +0,0 @@
<!-- IF TPL_ADD_ATTACHMENT -->
<!--========================================================================-->
<tr>
<th colspan="2" class="thHead">{L_ADD_ATTACHMENT_TITLE}</th>
</tr>
<tr>
<td class="pad_4"><b>{L_FILENAME}</b></td>
<td>
<table class="borderless" cellspacing="0">
<tr>
<td class="pad_4">
<input type="file" name="fileupload" size="45" maxlength="{FILESIZE}" />
<p class="small nowrap">{L_ADD_ATTACHMENT_EXPLAIN}</p>
</td>
<td class="med pad_4" style="padding-left: 12px;">{RULES}</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="pad_4">{L_COMMENT}</td>
<td class="pad_4">
<input type="text" name="filecomment" size="45" maxlength="255" value="{FILE_COMMENT}" />
<input type="submit" class="bold" name="add_attachment" value="{L_ADD_ATTACHMENT}" />
</td>
</tr>
<!--========================================================================-->
<!-- ENDIF / TPL_ADD_ATTACHMENT -->
<!-- IF TPL_POSTED_ATTACHMENTS -->
<!--========================================================================-->
<tbody class="pad_4">
<tr>
<th colspan="2" class="thHead">{L_POSTED_ATTACHMENTS}</th>
</tr>
<!-- BEGIN attach_row -->
<tr>
<td class="row5"><b>{L_FILENAME}</b></td>
<td class="row5"><a class="gen" href="{attach_row.U_VIEW_ATTACHMENT}" target="_blank"><b>{attach_row.FILE_NAME}</b></a></td>
</tr>
<tr>
<td class="row1">{L_COMMENT}</td>
<td class="row1">
<input type="text" name="comment_list[]" size="45" maxlength="255" value="{attach_row.FILE_COMMENT}" />&nbsp;
<input type="submit" name="edit_comment[{attach_row.ATTACH_FILENAME}]" value="{L_UPDATE_COMMENT}" />
</td>
</tr>
<tr>
<td class="row1">{L_OPTIONS}</td>
<td class="row1">
<!-- BEGIN switch_update_attachment -->
<input type="submit" name="update_attachment[{attach_row.ATTACH_ID}]" value="{L_UPLOAD_NEW_VERSION}" />&nbsp;
<!-- END switch_update_attachment -->
<input type="submit" name="del_attachment[{attach_row.ATTACH_FILENAME}]" value="{L_DELETE_ATTACHMENT}" />&nbsp;
<!-- BEGIN switch_thumbnail -->
<input type="submit" name="del_thumbnail[{attach_row.ATTACH_FILENAME}]" value="{L_DELETE_THUMBNAIL}" />&nbsp;
<!-- END switch_thumbnail -->
</td>
</tr>
<tr>
<td colspan="2" class="spaceRow"><div class="spacer_4"></div></td>
</tr>
<!-- END attach_row -->
</tbody>
<!--========================================================================-->
<!-- ENDIF / TPL_POSTED_ATTACHMENTS -->

View file

@ -96,6 +96,13 @@ ajax.callback.posts = function(data) {
onkeyup = "storeCaret(this);" onkeyup = "storeCaret(this);"
>{MESSAGE}</textarea> >{MESSAGE}</textarea>
<!-- IF SHOW_ATTACH -->
<div id="file-up" style="display: none;">
<div id="file-up-box"></div>
<div id="file-up-desc" class="small" style="display: none;">максимальный размер: <b>{ATTACH_MAX_SIZE}</b>, файлы: <b>{ALLOWED_EXT}</b></div>
</div>
<!-- ENDIF -->
<div class="mrg_8 tCenter"> <div class="mrg_8 tCenter">
<div id="post-buttons-block" style="display: none;"> <div id="post-buttons-block" style="display: none;">
<div class="pad_4" align="center">{CAPTCHA_HTML}</div> <div class="pad_4" align="center">{CAPTCHA_HTML}</div>
@ -122,6 +129,14 @@ function debounce (el_id, time_ms)
} }
$('#post-submit-btn').click(function(event){ $('#post-submit-btn').click(function(event){
<!-- IF TOR_REQUIRED -->
if ( $('#file-up-btn').val() == '' ) {
event.stopPropagation();
alert('Вы забыли прикрепить торрент файл (кликните "загрузить файл")');
$('#file-up-a').removeClass('med').addClass('adm').animate({fontSize: '24px'}, 200).animate({fontSize: '16px'}, 200);
return false;
}
<!-- ENDIF / TOR_REQUIRED -->
$('#post-submit-btn').after('<input id="post-submit" type="hidden" name="post" value="1" />'); $('#post-submit-btn').after('<input id="post-submit" type="hidden" name="post" value="1" />');
}); });
$('#post-js-warn').hide(); $('#post-js-warn').hide();

View file

@ -118,7 +118,7 @@ $template->assign_vars(array(
'IMG' => $_main, 'IMG' => $_main,
'TEXT_BUTTONS' => $bb_cfg['text_buttons'], 'TEXT_BUTTONS' => $bb_cfg['text_buttons'],
'POST_BTN_SPACER' => ($bb_cfg['text_buttons']) ? '&nbsp;' : '', 'POST_BTN_SPACER' => ($bb_cfg['text_buttons']) ? '&nbsp;' : '',
'TOPIC_ATTACH_ICON' => '<img src="'. $_main .'icon_clip.gif" alt="" />', 'TOPIC_ATTACH_ICON' => '<img src="'. $_img .'icon_clip.gif" alt="" />',
'OPEN_MENU_IMG_ALT' => '<img src="'. $_main .'menu_open_1.gif" class="menu-alt1" alt="" />', 'OPEN_MENU_IMG_ALT' => '<img src="'. $_main .'menu_open_1.gif" class="menu-alt1" alt="" />',
'TOPIC_LEFT_COL_SPACER_WITDH' => $bb_cfg['topic_left_column_witdh'] - 8, // 8px padding 'TOPIC_LEFT_COL_SPACER_WITDH' => $bb_cfg['topic_left_column_witdh'] - 8, // 8px padding
'POST_IMG_WIDTH_DECR_JS' => $bb_cfg['topic_left_column_witdh'] + $bb_cfg['post_img_width_decr'], 'POST_IMG_WIDTH_DECR_JS' => $bb_cfg['topic_left_column_witdh'] + $bb_cfg['post_img_width_decr'],
@ -154,7 +154,6 @@ if (!empty($page_cfg['load_tpl_vars']) AND $vars = array_flip($page_cfg['load_tp
'EMAIL_URL' => BB_ROOT ."profile.php?mode=email&amp;u=", 'EMAIL_URL' => BB_ROOT ."profile.php?mode=email&amp;u=",
'FORUM_URL' => BB_ROOT . FORUM_URL, 'FORUM_URL' => BB_ROOT . FORUM_URL,
'ICQ_URL' => 'http://www.icq.com/people/',
'PM_URL' => BB_ROOT . PM_URL, 'PM_URL' => BB_ROOT . PM_URL,
'PROFILE_URL' => BB_ROOT . PROFILE_URL, 'PROFILE_URL' => BB_ROOT . PROFILE_URL,
)); ));

View file

@ -2,15 +2,15 @@
<script type="text/javascript"> <script type="text/javascript">
ajax.openedPosts = {}; ajax.openedPosts = {};
ajax.view_post = function(post_id, src) { ajax.view_post = function(topic_id, src) {
if (!ajax.openedPosts[post_id]) { if (!ajax.openedPosts[topic_id]) {
ajax.exec({ ajax.exec({
action : 'view_post', action : 'view_post',
post_id : post_id topic_id : topic_id
}); });
} }
else { else {
var $post = $('#post_'+post_id); var $post = $('#post_'+topic_id);
if ($post.is(':visible')) { if ($post.is(':visible')) {
$post.hide(); $post.hide();
} else { } else {
@ -21,29 +21,29 @@ ajax.view_post = function(post_id, src) {
}; };
ajax.callback.view_post = function(data) { ajax.callback.view_post = function(data) {
var post_id = data.post_id; var topic_id = data.topic_id;
var $tor = $('#tor_'+post_id); var $tor = $('#tor_'+topic_id);
window.location.href='#tor_'+post_id; window.location.href='#tor_'+topic_id;
$('#post-row tr') $('#post-row tr')
.clone() .clone()
.attr({ id: 'post_'+post_id }) .attr({ id: 'post_'+topic_id })
.find('div.post_body').html(data.post_html).end() .find('div.post_body').html(data.post_html).end()
.find('a.tLink').attr({ href: $('a.tLink', $tor).attr('href') }).end() .find('a.tLink').attr({ href: $('a.tLink', $tor).attr('href') }).end()
.find('a.dLink').attr({ href: $('a.tr-dl', $tor).attr('href') }).end() .find('a.dLink').attr({ href: $('a.tr-dl', $tor).attr('href') }).end()
.insertAfter($tor) .insertAfter($tor)
; ;
initPostBBCode('#post_'+post_id); initPostBBCode('#post_'+topic_id);
var maxH = screen.height - 290; var maxH = screen.height - 290;
var maxW = screen.width - 60; var maxW = screen.width - 60;
var $post = $('div.post_wrap', $('#post_'+post_id)); var $post = $('div.post_wrap', $('#post_'+topic_id));
var $links = $('div.post_links', $('#post_'+post_id)); var $links = $('div.post_links', $('#post_'+topic_id));
$post.css({ maxWidth: maxW, maxHeight: maxH }); $post.css({ maxWidth: maxW, maxHeight: maxH });
$links.css({ maxWidth: maxW }); $links.css({ maxWidth: maxW });
if ($.browser.msie) { if ($.browser.msie) {
if ($post.height() > maxH) { $post.height(maxH); } if ($post.height() > maxH) { $post.height(maxH); }
if ($post.width() > maxW) { $post.width(maxW); $links.width(maxW); } if ($post.width() > maxW) { $post.width(maxW); $links.width(maxW); }
} }
ajax.openedPosts[post_id] = true; ajax.openedPosts[topic_id] = true;
}; };
</script> </script>
@ -393,7 +393,7 @@ $(function(){
</tr> </tr>
</thead> </thead>
<!-- BEGIN tor --> <!-- BEGIN tor -->
<tr class="tCenter <!-- IF SHOW_CURSOR -->hl-tr<!-- ENDIF -->" id="tor_{tor.POST_ID}"> <tr class="tCenter <!-- IF SHOW_CURSOR -->hl-tr<!-- ENDIF -->" id="tor_{tor.TOPIC_ID}">
<td class="row1"><!-- IF tor.USER_AUTHOR --><p style="padding-bottom: 3px">&nbsp;<b>&reg;</b>&nbsp;</p><!-- ELSEIF tor.IS_NEW -->{MINIPOST_IMG_NEW}<!-- ELSE -->{MINIPOST_IMG}<!-- ENDIF --></td> <td class="row1"><!-- IF tor.USER_AUTHOR --><p style="padding-bottom: 3px">&nbsp;<b>&reg;</b>&nbsp;</p><!-- ELSEIF tor.IS_NEW -->{MINIPOST_IMG_NEW}<!-- ELSE -->{MINIPOST_IMG}<!-- ENDIF --></td>
<td class="row1 tCenter" title="{tor.TOR_STATUS_TEXT}">{tor.TOR_STATUS_ICON}</td> <td class="row1 tCenter" title="{tor.TOR_STATUS_TEXT}">{tor.TOR_STATUS_ICON}</td>
<!-- IF SHOW_CAT --> <!-- IF SHOW_CAT -->
@ -403,7 +403,7 @@ $(function(){
<td class="row1"><a class="gen" href="{TR_FORUM_URL}{tor.FORUM_ID}">{tor.FORUM_NAME}</a></td> <td class="row1"><a class="gen" href="{TR_FORUM_URL}{tor.FORUM_ID}">{tor.FORUM_NAME}</a></td>
<!-- ENDIF --> <!-- ENDIF -->
<td class="row4 med tLeft"> <td class="row4 med tLeft">
<a class="{tor.DL_CLASS}<!-- IF AJAX_TOPICS --> folded2<!-- ENDIF --> tLink" <!-- IF AJAX_TOPICS -->onclick="ajax.view_post({tor.POST_ID}, this); return false;"<!-- ENDIF --> href="{TOPIC_URL}{tor.TOPIC_ID}"><!-- IF tor.TOR_FROZEN -->{tor.TOPIC_TITLE}<!-- ELSE -->{tor.TOR_TYPE}<b>{tor.TOPIC_TITLE}</b><!-- ENDIF --></a> <a class="{tor.DL_CLASS}<!-- IF AJAX_TOPICS --> folded2<!-- ENDIF --> tLink" <!-- IF AJAX_TOPICS -->onclick="ajax.view_post({tor.TOPIC_ID}, this); return false;"<!-- ENDIF --> href="{TOPIC_URL}{tor.TOPIC_ID}"><!-- IF tor.TOR_FROZEN -->{tor.TOPIC_TITLE}<!-- ELSE -->{tor.TOR_TYPE}<b>{tor.TOPIC_TITLE}</b><!-- ENDIF --></a>
<!-- IF SHOW_TIME_TOPICS --><div class="tr_tm">{tor.TOPIC_TIME}</div><!-- ENDIF --> <!-- IF SHOW_TIME_TOPICS --><div class="tr_tm">{tor.TOPIC_TIME}</div><!-- ENDIF -->
</td> </td>
<!-- IF SHOW_AUTHOR --> <!-- IF SHOW_AUTHOR -->

View file

@ -242,19 +242,18 @@ ajax.callback.gen_passkey = function(data){
<tr> <tr>
<th>{L_ICQ}:</th> <th>{L_ICQ}:</th>
<td class="tLeft med" id="user_icq"> <td class="tLeft med" id="user_icq">
<span class="editable">{ICQ} <span class="editable">
<a href="http://www.icq.com/people/{ICQ}"><img align="middle" src="http://web.icq.com/whitepages/online?icq={ICQ}&img=5"></a> {ICQ}
</span> </span>
</td> </td>
</tr> </tr>
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF SKYPE --> <!-- IF SKYPE -->
<script type="text/javascript" src="http://download.skype.com/share/skypebuttons/js/skypeCheck.js"></script>
<tr> <tr>
<th>{L_SKYPE}:</th> <th>{L_SKYPE}:</th>
<td class="tLeft med" id="user_skype"> <td class="tLeft med" id="user_skype">
<span class="editable">{SKYPE} <span class="editable">
<a href="skype:{SKYPE}"><img align="middle" src="http://mystatus.skype.com/smallicon/{SKYPE}" width="16" height="16"></a> {SKYPE}
</span> </span>
</td> </td>
</tr> </tr>

View file

@ -169,7 +169,8 @@ ajax.callback.post_mod_comment = function(data) {
</tr> </tr>
</table> </table>
<!-- IF SHOW_DL_LIST || SHOW_TOR_ACT --><!-- INCLUDE viewtopic_torrent.tpl --><!-- ENDIF --> <!-- IF SHOW_TOR_STATS --><!-- INCLUDE viewtopic_torrent.tpl --><!-- ENDIF -->
<!-- INCLUDE viewtopic_tor_stats.tpl -->
<!-- IF TOPIC_HAS_POLL or CAN_MANAGE_POLL --> <!-- IF TOPIC_HAS_POLL or CAN_MANAGE_POLL -->
<form id="poll-form" method="post" action="poll.php" style="display: none;"> <form id="poll-form" method="post" action="poll.php" style="display: none;">
@ -420,7 +421,43 @@ function build_poll_add_form (src_el)
<div id="mc_comment_{postrow.POST_ID}">{postrow.MC_COMMENT}</div> <div id="mc_comment_{postrow.POST_ID}">{postrow.MC_COMMENT}</div>
</div> </div>
</div> </div>
{postrow.ATTACHMENTS}
<!-- IF postrow.IS_FIRST_POST -->
<!-- IF SHOW_GUEST_DL_STUB -->
<!-- INCLUDE viewtopic_tor_guest.tpl -->
<!-- ELSEIF SHOW_TOR_NOT_REGGED -->
<div class="clear"></div>
<div class="spacer_8"></div>
<fieldset class="attach">
<legend>{TOPIC_ATTACH_ICON} {L_ATTACHMENT}</legend>
<p class="attach_link"><b>Торрент не зарегистрирован на трекере</b> <!-- IF TRACKER_REG_LINK -->&nbsp;[ {TRACKER_REG_LINK} ]<!-- ENDIF --></p>
</fieldset>
<div class="spacer_12"></div>
<!-- ELSEIF SHOW_TOR_REGGED -->
<!-- INCLUDE viewtopic_tor_attach.tpl -->
<!-- ELSEIF SHOW_ATTACH_DL_LINK -->
<div class="clear"></div>
<div class="spacer_8"></div>
<fieldset class="attach">
<legend>{TOPIC_ATTACH_ICON} {L_ATTACHMENT}</legend>
<p class="attach_link"><a href="{$bb_cfg['dl_url']}{TOPIC_ID}" class="dl-stub"><b>Скачать прикреплённый файл</b></a> &nbsp;<span class="med">({ATTACH_FILESIZE})</span></p>
</fieldset>
<!-- ELSEIF IS_GUEST -->
<div class="clear"></div>
<div class="spacer_6"></div>
<!-- ENDIF -->
<!-- ENDIF / IS_FIRST_POST -->
</div><!--/post_wrap--> </div><!--/post_wrap-->
<!-- IF not postrow.IS_FIRST_POST --> <!-- IF not postrow.IS_FIRST_POST -->
<!-- IF postrow.SIGNATURE -->{postrow.SIGNATURE}<!-- ENDIF --> <!-- IF postrow.SIGNATURE -->{postrow.SIGNATURE}<!-- ENDIF -->

View file

@ -1,69 +1,6 @@
<!-- BEGIN attach -->
<div class="clear"></div> <div class="clear"></div>
<div class="spacer_8"></div> <div class="spacer_8"></div>
<!-- BEGIN denyrow -->
<fieldset class="attach">
<legend>{TOPIC_ATTACH_ICON} {L_ATTACHMENT}</legend>
<p class="attach_link denied">{postrow.attach.denyrow.L_DENIED}</p>
</fieldset>
<div class="spacer_12"></div>
<!-- END denyrow -->
<!-- BEGIN cat_images -->
<fieldset class="attach">
<legend>{TOPIC_ATTACH_ICON} {L_ATTACHMENT} ({postrow.attach.cat_images.FILESIZE})</legend>
<p class="tCenter pad_6">
<img src="{postrow.attach.cat_images.IMG_SRC}" id="attachImg" class="postImg" alt="img" border="0" />
</p>
<!-- IF postrow.attach.cat_images.COMMENT -->
<p class="tCenter med lh_110">
{postrow.attach.cat_images.COMMENT}
</p>
<!-- ENDIF -->
</fieldset>
<div class="spacer_12"></div>
<!-- END cat_images -->
<!-- BEGIN cat_thumb_images -->
<fieldset class="attach">
<legend>{TOPIC_ATTACH_ICON} {L_ATTACHMENT_THUMBNAIL}</legend>
<p class="attach_link">
<a href="{postrow.attach.cat_thumb_images.IMG_SRC}" target="_blank"><img src="{postrow.attach.cat_thumb_images.IMG_THUMB_SRC}" alt="{postrow.attach.cat_thumb_images.DOWNLOAD_NAME}" border="0" /></a>
</p>
<p class="attach_link">
<a href="{postrow.attach.cat_thumb_images.IMG_SRC}" target="_blank"><b>{postrow.attach.cat_thumb_images.DOWNLOAD_NAME}</b></a>
<span class="attach_stats med">({postrow.attach.cat_thumb_images.FILESIZE})</span>
</p>
<!-- IF postrow.attach.cat_thumb_images.COMMENT -->
<p class="attach_comment med">
{postrow.attach.cat_thumb_images.COMMENT}
</p>
<!-- ENDIF -->
</fieldset>
<div class="spacer_12"></div>
<!-- END cat_thumb_images -->
<!-- BEGIN attachrow -->
<fieldset class="attach">
<legend>{postrow.attach.attachrow.S_UPLOAD_IMAGE} {L_ATTACHMENT}</legend>
<p class="attach_link">
<a href="{postrow.attach.attachrow.U_DOWNLOAD_LINK}" {postrow.attach.attachrow.TARGET_BLANK}><b>{postrow.attach.attachrow.DOWNLOAD_NAME}</b></a>
<span class="attach_stats med">({postrow.attach.attachrow.FILESIZE}, {L_DOWNLOADED}: {postrow.attach.attachrow.DOWNLOAD_COUNT})</span>
</p>
<!-- IF postrow.attach.attachrow.COMMENT -->
<p class="attach_comment med">
{postrow.attach.attachrow.COMMENT}
</p>
<!-- ENDIF -->
</fieldset>
<div class="spacer_12"></div>
<!-- END attachrow -->
<!-- BEGIN tor_not_reged --> <!-- BEGIN tor_not_reged -->
<table class="attach bordered med"> <table class="attach bordered med">
<tr class="row3"> <tr class="row3">
@ -364,6 +301,4 @@ $('#tor-filelist-btn').click(function(){
<div class="spacer_12"></div> <div class="spacer_12"></div>
<!-- ENDIF --> <!-- ENDIF -->
<!-- END tor_reged --> <!-- END tor_reged -->
<!-- END attach -->

View file

@ -1,13 +0,0 @@
<!-- IF postrow.IS_FIRST_POST -->
<div>
<fieldset class="attach">
<legend>{L_DOWNLOAD}</legend>
<h1 class="attach_link"><a href="profile.php?mode=register" style="color: brown;">{L_DOWNLOAD_INFO}</a></h1>
<p id="guest-dl-tip" class="attach_comment med">
<a href="{$bb_cfg['how_to_download_url_help']}" class="med"><b>{L_HOW_TO_DOWNLOAD}</b></a> &middot;
<a href="{$bb_cfg['what_is_torrent_url_help']}" class="med"><b>{L_WHAT_IS_A_TORRENT}</b></a> &middot;
<a href="{$bb_cfg['ratio_url_help']}" class="med"><b>{L_RATINGS_AND_LIMITATIONS}</b></a><br />
</p>
</fieldset>
</div>
<!-- ENDIF -->

View file

@ -0,0 +1,170 @@
<div class="clear"></div>
<!-- IF #IS_CP_HOLDER -->
<div class="spacer_12"></div>
<table id="tor_blocked" class="error">
<tr><td><p class="error_msg" style="height: 200px; overflow: auto;"><?php echo file_get_contents(BB_PATH .'/misc/html/copyright_holders_terms.html'); ?></p></td></tr>
</table>
<!-- ELSE -->
<!-- IF SHOW_TOR_BLOCKED -->
<div class="spacer_12"></div>
<table id="tor_blocked" class="error">
<tr><td><p class="error_msg">{TOR_BLOCKED_MSG}</p></td></tr>
</table>
<div class="spacer_12"></div>
<!-- ENDIF -->
<!-- IF SHOW_RATIO_WARN -->
<div class="spacer_12"></div>
<table id="tor_blocked" class="error">
<tr><td><p class="error_msg">{$bb_cfg['bt_ratio_warning_msg']}</p></td></tr>
</table>
<!-- ENDIF -->
<!-- ENDIF / ! #IS_CP_HOLDER -->
<div class="spacer_12"></div>
<!-- IF SHOW_TOR_REGGED -->
<div id="tor-reged">
<table class="attach bordered med">
<tr class="row3 tCenter">
<td colspan="3" class="med">{$bb_cfg['tor_help_links_top']}</td>
</tr>
<tr class="row1">
<td width="15%">Торрент:</td>
<td width="70%"><!-- IF TOR_FROZEN -->Зарегистрирован<!-- ELSE -->{TRACKER_REG_LINK}<!-- ENDIF --> &nbsp;<span title="Зарегистрирован">[ {REGED_TIME} ]</span></td>
<td width="15%" rowspan="4" class="tCenter pad_6">
<!-- IF TOR_FROZEN and not AUTH_MOD -->
<p><img src="{IMG_URL}/icon_attach.gif" /></p>
<p>Скачать .torrent</p>
<!-- ELSE -->
<p><a href="{$bb_cfg['dl_url']}{TOPIC_ID}" class="dl-stub"><img src="{IMG_URL}/attach_big.gif" /></a></p>
<p><a href="{$bb_cfg['dl_url']}{TOPIC_ID}" class="dl-stub dl-link">Скачать .torrent</a></p>
<!-- ENDIF -->
<p class="small">{FILESIZE}</p>
<!-- IF SHOW_TOR_FILELIST --><p style="padding-top: 6px;"><input id="tor-filelist-btn" type="button" class="lite" style="width: 120px;" value="Список файлов" /></p><!-- ENDIF -->
</td>
</tr>
<tr class="row1">
<td>Статус:</td>
<td<!-- IF #IS_AM --> style="padding: 6px 4px;"<!-- ENDIF -->>
<span id="tor-{TOPIC_ID}-text">{TOR_STATUS_ICON} <a href="viewtopic.php?t={$bb_cfg['tor_status_topic_id']}" class="med"><b>{TOR_STATUS_TEXT}</b></a>
<!-- IF TOR_STATUS_TIME -->
&nbsp;&middot;&nbsp; <a href="{PROFILE_URL}{TOR_STATUS_UID}" class="med"><i>{TOR_STATUS_USERNAME}</i></a>&nbsp; &middot;&nbsp; <i>{TOR_STATUS_TIME}</i> назад
<!-- ENDIF -->
</span>
<!-- IF AUTH_MOD -->
<div class="spacer_6"></div>
Изменить на: <span id="tor-{TOPIC_ID}"></span>
[ <a href="#" onclick="ajax.change_tor_status( {TOPIC_ID}, $('#tor-{TOPIC_ID} select').val() ); return false;" class="med bold nowrap">Изменить</a> ]
<script type="text/javascript">$('#tor-{TOPIC_ID}').html( $('#tor-status-sel').html() );</script>
<!-- ENDIF -->
</td>
</tr>
<tr class="row1">
<td>.torrent скачан:</td>
<td>{TOR_COMPLETED}</td>
</tr>
<tr class="row1">
<td>Размер:</td>
<td>{TOR_SIZE}</td>
</tr>
<tr class="row3 tCenter">
<td colspan="3" height="20">
<!-- IF TOR_CONTROLS -->
<form method="post" action="{TOR_ACTION}" class="tokenized">
<input type="hidden" name="t" value="{TOPIC_ID}" />
<select name="tor_action">
<!-- IF AUTH_MOD -->
<option value="unreg_tor_and_close_topic" selected="selected"> &nbsp;Разрегистрировать и закрыть &nbsp;</option>
<option value="unreg_tor_and_move_topic"> &nbsp;Разрегистрировать и перенести &nbsp;</option>
<!-- ENDIF -->
<!-- IF SHOW_CPHOLD_OPT -->
<option value="copyright_close"> &nbsp;Закрыть по просьбе правообладателя &nbsp;</option>
<!-- ENDIF -->
</select>
<label>
<input name="confirm" id="tor-confirm" type="checkbox" value="1" />&nbsp;Подтвердите&nbsp;
</label>
<input name="" type="submit" value="Отправить" style="width: 110px;"
onclick="var $cfm = $('#tor-confirm'); if( !$cfm.attr('checked') ){ $cfm.parent('label').addClass('hl-err-label'); return false; }"
/>&nbsp;
</form>
<!-- ELSEIF SHOW_ADS -->
{$bb_cfg['tor_help_links_bottom']}
<!-- ELSE -->
&nbsp;
<!-- ENDIF -->
</td>
</tr>
</table>
<!-- IF SHOW_TOR_FILELIST -->
<script type="text/javascript">
function humn_size (size) {
var i = 0;
var units = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
while ((size/1024) >= 1) {
size = size/1024;
i++;
}
size = new String(size);
if (size.indexOf('.') != -1) {
size = size.substring(0, size.indexOf('.') + 3);
}
return size + ' ' + units[i];
}
$(document).ready(function(){
$('#tor-filelist-btn').click(function(){
$('#tor-fl-wrap').show();
$('#tor-filelist').load('viewtorrent.php', {t: {TOPIC_ID}}, function(){
$('#tor-filelist > ul.tree-root').treeview({
control: "#tor-fl-treecontrol"
});
$('#tor-filelist i').each(function(){
var size_bytes = this.innerHTML.replace(/\D/g, '');
$(this).prepend('<s>'+ humn_size(size_bytes) +'</s> ');
});
});
$(this).hide();
$('#tor-fl-treecontrol a').click(function(){ this.blur(); });
return false;
});
<!-- IF OPEN_TOR_FILELIST -->
$('#tor-filelist-btn').click();
<!-- ENDIF -->
});
</script>
<style type="text/css">
#tor-fl-wrap { width: 95%; margin: 12px auto 0; display: none; }
#tor-filelist {
margin: 2px; padding: 10px 8px 4px; border: 1px solid #A5AFB4; background: #F8F8F8; max-height: 300px; overflow: auto;
}
#tor-filelist i { color: #7A7A7A; padding-left: 4px; }
#tor-filelist s { color: #0000FF; text-decoration: none; }
#tor-filelist .b { font-weight: bold; }
#tor-filelist .tor-root-dir { font-size: 13px; font-weight: bold; line-height: 12px; padding-left: 4px; }
#tor-fl-treecontrol a { padding: 0 8px; font-size: 11px; text-decoration: none; }
.tor-fl-hide { height: 12px; }
</style>
<div id="tor-fl-wrap">
<div id="tor-fl-treecontrol">
<a href="#">Свернуть директории</a>&middot;<a href="#">Развернуть</a>&middot;<a href="#">Переключить</a>&middot;<a href="#" onclick="$('#tor-filelist').toggleClass('tor-fl-hide'); return false;">Спрятать/Открыть</a>
</div>
<div id="tor-filelist" class="med"><span class="loading-1">загружается...</span></div>
</div>
<!-- ENDIF -->
<div class="spacer_12"></div>
</div><!--/tor-reged-->
<!-- ENDIF / SHOW_TOR_REGGED -->

View file

@ -0,0 +1,11 @@
<div class="clear"></div>
<div class="spacer_8"></div>
<fieldset class="attach">
<legend>{L_DOWNLOAD}</legend>
<h1 class="attach_link"><a href="profile.php?mode=register" style="color: brown;">{L_DOWNLOAD_INFO}</a></h1>
<p id="guest-dl-tip" class="attach_comment med">
<a href="{$bb_cfg['how_to_download_url_help']}" class="med"><b>{L_HOW_TO_DOWNLOAD}</b></a> &middot;
<a href="{$bb_cfg['what_is_torrent_url_help']}" class="med"><b>{L_WHAT_IS_A_TORRENT}</b></a> &middot;
<a href="{$bb_cfg['ratio_url_help']}" class="med"><b>{L_RATINGS_AND_LIMITATIONS}</b></a><br />
</p>
</fieldset>

View file

@ -0,0 +1,239 @@
<table class="forumline dl_list">
<col class="row1">
<tr>
<td class="catTitle">Статистика раздачи</td>
</tr>
<!-- IF TOR_CLOSED_BY_CPHOLD -->
<tr>
<td style="text-align: center;">
<div id="closed-by-ch-msg" style="font-size: 24px; margin: 18px; color: red;"><!-- IF THIS_USER_ID == 193436 -->Ссылка закрыта по просьбе правообладателя<!-- ELSE -->Закрыто по просьбе правообладателя<!-- ENDIF --><!-- IF CPHOLD_MANE --> <a href="{PROFILE_URL}{CPHOLD_UID}"><i>{CPHOLD_MANE}</i></a><!-- ENDIF --></div>
<!-- IF CAN_OPEN_CH_RELEASE -->
<div style="font-size: 18px; margin: 12px;">[ <a href="#" onclick="this.onclick=''; ajax.change_tor_status( {TOPIC_ID}, {#TOR_NOT_APPROVED} ); return false;">Открыть</a> ]</div>
<!-- ENDIF -->
</td>
</tr>
<!-- ELSE -->
<tr>
<td class="borderless bCenter pad_8">
Размер:&nbsp; <b>{TOR_SIZE}</b>&nbsp; &nbsp;|&nbsp; &nbsp;Зарегистрирован:&nbsp; <b>{TOR_LONGEVITY}</b>&nbsp; &nbsp;|&nbsp; &nbsp;.torrent скачан:&nbsp; <b>{TOR_COMPLETED}</b>
</td>
</tr>
<!-- IF S_MODE_COUNT -->
<tr>
<td class="row5 pad_2 tCenter">
<!-- IF SEEDER_LAST_SEEN -->
<p class="mrg_10">{SEEDER_LAST_SEEN}</p>
<!-- ENDIF -->
<!-- IF SEED_COUNT || LEECH_COUNT -->
<div class="mrg_4 pad_4">
<!-- IF SEED_COUNT -->
<span class="seed">Сиды:&nbsp; <b>{SEED_COUNT}</b> &nbsp;[&nbsp; {TOR_SPEED_UP} &nbsp;]</span>
<!-- ENDIF -->
<!-- IF LEECH_COUNT -->
&nbsp;
<span class="leech">Личи:&nbsp; <b>{LEECH_COUNT}</b> &nbsp;[&nbsp; {TOR_SPEED_DOWN} &nbsp;]</span>
<!-- ENDIF -->
<!-- IF PEERS_FULL_LINK && PEER_EXIST -->
&nbsp;
<a href="{SPMODE_FULL_HREF}" class="gen">Подробная статистика пиров</a>
<!-- ENDIF -->
</div>
<!-- ENDIF / SEED_COUNT || LEECH_COUNT -->
</td>
</tr>
<!-- ELSEIF S_MODE_FULL -->
<tr>
<td>
<!-- IF SEEDER_LAST_SEEN -->
<div id="last_seed_info" class="row5 w60 mrg_4 bCenter">
<p class="mrg_10">{SEEDER_LAST_SEEN}</p>
</div>
<!-- ENDIF -->
<!-- IF PEER_EXIST -->
<style type="text/css">
tbody.p-body u { display: none; }
a.p-owner, a.p-owner:visited { color: #0000FF; font-size: 12px; text-decoration: none; }
</style>
<script type="text/javascript">
$(document).ready(function(){
$('table.tablesorter').tablesorter({
<!-- IF NO_SORT_JS --><!-- ELSE -->sortList: [[4,1]]<!-- ENDIF -->
});
});
</script>
<div id="full_details" class="bCenter" style="width: 97%;{PEERS_DIV_STYLE}">
<!-- IF SEED_EXIST -->
<!-- BEGIN sfull -->
<a name="seeders"></a>
<table class="borderless w60 bCenter">
<tr>
<td>
<p class="floatL" style="margin-top: 4px;"><b>Сиды</b>:</p>
<!-- IF IS_AM -->
<form method="post" action="{sfull.SEED_ORD_ACT}">
<!-- BEGIN sorder -->
<p class="floatR med">
Упорядочить по: {sfull.sorder.SEED_ORDER_SELECT}
<input type="submit" value="&#9660;" class="pOrdSel" name="psortdesc" /><input type="submit" value="&#9650;" class="pOrdSel" name="psortasc" />
</p>
<!-- END sorder -->
</form>
<!-- ENDIF / IS_AM -->
</td>
</tr>
<tr>
<td class="pad_0">
<table cellpadding="0" class="peers w100 med tablesorter" id="seeders-tbl">
<thead>
<tr>
<th class="{sorter: 'text'}"><b class="tbs-text">Username</b><img width="130" class="spacer" src="{IMG_URL}/spacer.gif" alt="" /></th>
<th class="{sorter: 'digit'}" title="Uploaded/TorrentSize"><b class="tbs-text">ULR</b><img width="40" class="spacer" src="{IMG_URL}/spacer.gif" alt="" /></th>
<th class="{sorter: 'digit'}"><b class="tbs-text">UL</b><img width="70" class="spacer" src="{IMG_URL}/spacer.gif" alt="" /></th>
<th class="{sorter: 'digit'}"><b class="tbs-text">DL</b><img width="70" class="spacer" src="{IMG_URL}/spacer.gif" alt="" /></th>
<th class="{sorter: 'digit'}"><b class="tbs-text">UL speed</b><img width="75" class="spacer" src="{IMG_URL}/spacer.gif" alt="" /></th>
<th class="{sorter: 'digit'}"><b class="tbs-text">DL speed</b><img width="75" class="spacer" src="{IMG_URL}/spacer.gif" alt="" /></th>
<!-- BEGIN iphead -->
<th class="{sorter: 'digit'}" width="30%"><b class="tbs-text">IP</b><img width="105" class="spacer" src="{IMG_URL}/spacer.gif" alt="" /></th>
<!-- END iphead -->
<!-- BEGIN porthead -->
<th class="{sorter: 'digit'}"><b class="tbs-text">Port</b><img width="50" class="spacer" src="{IMG_URL}/spacer.gif" alt="" /></th>
<!-- END porthead -->
</tr>
</thead>
<tbody class="p-body">
<!-- BEGIN srow -->
<tr>
<td class="tLeft" title="{sfull.srow.UPD_EXP_TIME}"><b>{sfull.srow.NAME}</b></td>
<td>{sfull.srow.COMPL_PRC}</td>
<td><u>{sfull.srow.UP_TOTAL_INT}</u>{sfull.srow.UP_TOTAL}</td>
<td><u>{sfull.srow.DOWN_TOTAL_INT}</u>{sfull.srow.DOWN_TOTAL}</td>
<td class="seedmed"><u>{sfull.srow.SPEED_UP_INT}</u>{sfull.srow.SPEED_UP}</td>
<td class="leechmed"><u>{sfull.srow.SPEED_DOWN_INT}</u>{sfull.srow.SPEED_DOWN}</td>
<!-- BEGIN ip -->
<td class="tRight"><u>{sfull.srow.ip.IP_INT}</u>{sfull.srow.ip.IP}</td>
<!-- END ip -->
<!-- BEGIN port -->
<td>{sfull.srow.port.PORT}</td>
<!-- END port -->
</tr>
<!-- END srow -->
</tbody>
</table>
</td>
</tr>
</table>
<!-- END sfull -->
<!-- ENDIF / SEED_EXIST -->
<!-- IF LEECH_EXIST -->
<!-- BEGIN lfull -->
<a name="leechers"></a>
<table class="borderless w60 bCenter">
<tr>
<td>
<p class="floatL" style="margin-top: 4px;"><b>Личи</b>:</p>
<!-- IF IS_AM -->
<form method="post" action="{lfull.LEECH_ORD_ACT}">
<!-- BEGIN lorder -->
<p class="floatR med">
Упорядочить по: {lfull.lorder.LEECH_ORDER_SELECT}
<input type="submit" value="&#9660;" class="pOrdSel" name="psortdesc" /><input type="submit" value="&#9650;" class="pOrdSel" name="psortasc" />
</p>
<!-- END lorder -->
</form>
<!-- ENDIF / IS_AM -->
</td>
</tr>
<tr>
<td class="pad_0">
<table cellpadding="0" class="peers w100 med tablesorter" id="leechers-tbl">
<thead>
<tr>
<th class="{sorter: 'text'}"><b class="tbs-text">Username</b><img width="130" class="spacer" src="{IMG_URL}/spacer.gif" alt="" /></th>
<th class="{sorter: 'digit'}" title="Complete percent"><b class="tbs-text">%</b><img width="40" class="spacer" src="{IMG_URL}/spacer.gif" alt="" /></th>
<th class="{sorter: 'digit'}"><b class="tbs-text">UL</b><img width="70" class="spacer" src="{IMG_URL}/spacer.gif" alt="" /></th>
<th class="{sorter: 'digit'}"><b class="tbs-text">DL</b><img width="70" class="spacer" src="{IMG_URL}/spacer.gif" alt="" /></th>
<th class="{sorter: 'digit'}"><b class="tbs-text">UL speed</b><img width="75" class="spacer" src="{IMG_URL}/spacer.gif" alt="" /></th>
<th class="{sorter: 'digit'}"><b class="tbs-text">DL speed</b><img width="75" class="spacer" src="{IMG_URL}/spacer.gif" alt="" /></th>
<!-- BEGIN iphead -->
<th class="{sorter: 'digit'}" width="30%"><b class="tbs-text">IP</b><img width="105" class="spacer" src="{IMG_URL}/spacer.gif" alt="" /></th>
<!-- END iphead -->
<!-- BEGIN porthead -->
<th class="{sorter: 'digit'}"><b class="tbs-text">Port</b><img width="50" class="spacer" src="{IMG_URL}/spacer.gif" alt="" /></th>
<!-- END porthead -->
</tr>
</thead>
<tbody class="p-body">
<!-- BEGIN lrow -->
<tr{lfull.lrow.ROW_BGR}>
<td class="tLeft" title="{lfull.lrow.UPD_EXP_TIME}"><b>{lfull.lrow.NAME}</b></td>
<td title="{lfull.lrow.TOR_RATIO}">{lfull.lrow.COMPL_PRC}</td>
<td><u>{lfull.lrow.UP_TOTAL_INT}</u>{lfull.lrow.UP_TOTAL}</td>
<td><u>{lfull.lrow.DOWN_TOTAL_INT}</u>{lfull.lrow.DOWN_TOTAL}</td>
<td class="seedmed"><u>{lfull.lrow.SPEED_UP_INT}</u>{lfull.lrow.SPEED_UP}</td>
<td class="leechmed"><u>{lfull.lrow.SPEED_DOWN_INT}</u>{lfull.lrow.SPEED_DOWN}</td>
<!-- BEGIN ip -->
<td class="tRight"><u>{lfull.lrow.ip.IP_INT}</u>{lfull.lrow.ip.IP}</td>
<!-- END ip -->
<!-- BEGIN port -->
<td>{lfull.lrow.port.PORT}</td>
<!-- END port -->
</tr>
<!-- END lrow -->
</tbody>
</table>
</td>
</tr>
</table>
<!-- END lfull -->
<!-- ENDIF / LEECH_EXIST -->
<div class="med tCenter mrg_4 warnColor1">показаны данные <i><b>только за текущую сессию</b></i></div>
</div><!--/full_details-->
<!-- ENDIF / PEER_EXIST -->
</td>
</tr>
<!-- ENDIF / S_MODE_FULL -->
<!-- ENDIF / !TOR_CLOSED_BY_CPHOLD -->
<!-- IF DL_BUTTONS -->
<tr>
<td class="row3 pad_4">
<form method="post" action="dl_list.php" style="display: none;">
<input type="hidden" name="f" value="{FORUM_ID}" />
<input type="hidden" name="t" value="{TOPIC_ID}" />
<input type="hidden" name="mode" value="set_dl_status" />
<input id="will-btn" type="submit" name="dl_set_will" value="1" />&nbsp;
<input id="canc-btn" type="submit" name="dl_set_cancel" value="1" />
</form>
<a href="#" onclick="if( window.confirm('Добавить раздачу в список ваших «Будущих закачек»?') ){ $('#will-btn').click() } return false;" class="med">Добавить в «Будущие закачки»</a>
&nbsp;&middot;&nbsp;
<a href="#" onclick="if( window.confirm('Удалить раздачу из списка ваших закачек?') ){ $('#canc-btn').click() } return false;" class="med">Удалить из списка закачек</a>
</td>
</tr>
<!-- ENDIF -->
</table>
<div class="spacer_6"></div>

View file

@ -662,10 +662,10 @@ if ($allowed_forums)
{ {
$SQL['WHERE'][] = "sn.seeders >= 1"; $SQL['WHERE'][] = "sn.seeders >= 1";
} }
if ($tor_type) if ($tor_type)
{ {
$SQL['WHERE'][] = "tor.tor_type IN(1,2)"; $SQL['WHERE'][] = "tor.tor_type IN(1,2)";
} }
// ORDER // ORDER
$SQL['ORDER BY'][] = "{$order_opt[$order_val]['sql']} {$sort_opt[$sort_val]['sql']}"; $SQL['ORDER BY'][] = "{$order_opt[$order_val]['sql']} {$sort_opt[$sort_val]['sql']}";
@ -721,7 +721,7 @@ if ($allowed_forums)
// SELECT // SELECT
$select = " $select = "
SELECT SELECT
tor.topic_id, tor.post_id, tor.attach_id, tor.size, tor.reg_time, tor.complete_count, tor.seeder_last_seen, tor.tor_status, tor.tor_type, tor.topic_id, tor.size, tor.reg_time, tor.complete_count, tor.seeder_last_seen, tor.tor_status, tor.tor_type,
t.topic_title, t.topic_time, t.topic_replies, t.topic_views, sn.seeders, sn.leechers, tor.info_hash t.topic_title, t.topic_time, t.topic_replies, t.topic_views, sn.seeders, sn.leechers, tor.info_hash
"; ";
$select .= (!$hide_speed) ? ", sn.speed_up, sn.speed_down" : ''; $select .= (!$hide_speed) ? ", sn.speed_up, sn.speed_down" : '';
@ -779,7 +779,6 @@ if ($allowed_forums)
$seeds = $tor['seeders']; $seeds = $tor['seeders'];
$leechs = $tor['leechers']; $leechs = $tor['leechers'];
$s_last = $tor['seeder_last_seen']; $s_last = $tor['seeder_last_seen'];
$att_id = $tor['attach_id'];
$size = $tor['size']; $size = $tor['size'];
$tor_magnet = create_magnet($tor['info_hash'], $passkey['auth_key'], $userdata['session_logged_in']); $tor_magnet = create_magnet($tor['info_hash'], $passkey['auth_key'], $userdata['session_logged_in']);
$compl = $tor['complete_count']; $compl = $tor['complete_count'];
@ -812,7 +811,6 @@ if ($allowed_forums)
'IS_NEW' => (!IS_GUEST && $tor['reg_time'] > $lastvisit), 'IS_NEW' => (!IS_GUEST && $tor['reg_time'] > $lastvisit),
'USER_AUTHOR' => (!IS_GUEST && $poster_id == $user_id), 'USER_AUTHOR' => (!IS_GUEST && $poster_id == $user_id),
'ATTACH_ID' => $att_id,
'MAGNET' => $tor_magnet, 'MAGNET' => $tor_magnet,
'TOR_TYPE' => is_gold($tor['tor_type']), 'TOR_TYPE' => is_gold($tor['tor_type']),

View file

@ -117,8 +117,7 @@ if ($mark_read && !IS_GUEST)
set_tracks(COOKIE_FORUM, $tracking_forums, $forum_id); set_tracks(COOKIE_FORUM, $tracking_forums, $forum_id);
set_die_append_msg($forum_id); set_die_append_msg($forum_id);
$message = $lang['TOPICS_MARKED_READ']; bb_die($lang['TOPICS_MARKED_READ']);
bb_die($message);
} }
// Subforums // Subforums
@ -310,7 +309,7 @@ if ($forum_data['allow_reg_tracker'])
} }
$select_tor_sql = ', $select_tor_sql = ',
bt.auth_key, tor.info_hash, tor.size AS tor_size, tor.reg_time, tor.complete_count, tor.seeder_last_seen, tor.attach_id, tor.tor_status, tor.tor_type, bt.auth_key, tor.info_hash, tor.size AS tor_size, tor.reg_time, tor.complete_count, tor.seeder_last_seen, tor.tor_status, tor.tor_type,
sn.seeders, sn.leechers sn.seeders, sn.leechers
'; ';
$select_tor_sql .= ($join_dl) ? ', dl.user_status AS dl_status' : ''; $select_tor_sql .= ($join_dl) ? ', dl.user_status AS dl_status' : '';
@ -483,10 +482,10 @@ foreach ($topic_rowset as $topic)
'TOR_STATUS_ICON' => isset($topic['tor_status']) ? $bb_cfg['tor_icons'][$topic['tor_status']] : '', 'TOR_STATUS_ICON' => isset($topic['tor_status']) ? $bb_cfg['tor_icons'][$topic['tor_status']] : '',
'TOR_STATUS_TEXT' => isset($topic['tor_status']) ? $lang['TOR_STATUS_NAME'][$topic['tor_status']] : '', 'TOR_STATUS_TEXT' => isset($topic['tor_status']) ? $lang['TOR_STATUS_NAME'][$topic['tor_status']] : '',
'ATTACH' => $topic['topic_attachment'], 'ATTACH' => $topic['attach_ext_id'],
'STATUS' => $topic['topic_status'], 'STATUS' => $topic['topic_status'],
'TYPE' => $topic['topic_type'], 'TYPE' => $topic['topic_type'],
'DL' => ($topic['topic_dl_type'] == TOPIC_DL_TYPE_DL && !$forum_data['allow_reg_tracker']), 'DL' => ($topic['tracker_status'] && !$forum_data['allow_reg_tracker']),
'POLL' => $topic['topic_vote'], 'POLL' => $topic['topic_vote'],
'DL_CLASS' => isset($topic['dl_status']) ? $dl_link_css[$topic['dl_status']] : '', 'DL_CLASS' => isset($topic['dl_status']) ? $dl_link_css[$topic['dl_status']] : '',
@ -505,7 +504,6 @@ foreach ($topic_rowset as $topic)
'LEECHERS' => (int) $topic['leechers'], 'LEECHERS' => (int) $topic['leechers'],
'TOR_SIZE' => humn_size($topic['tor_size']), 'TOR_SIZE' => humn_size($topic['tor_size']),
'COMPL_CNT' => (int) $topic['complete_count'], 'COMPL_CNT' => (int) $topic['complete_count'],
'ATTACH_ID' => $topic['attach_id'],
'MAGNET' => $tor_magnet, 'MAGNET' => $tor_magnet,
)); ));
} }