diff --git a/install/sql/mysql.sql b/install/sql/mysql.sql index a34ee47bb..cbc2e9059 100644 --- a/install/sql/mysql.sql +++ b/install/sql/mysql.sql @@ -1228,7 +1228,6 @@ INSERT INTO `bb_smilies` VALUES (52, ':bz:', 'bz.gif', 'bz'); INSERT INTO `bb_smilies` VALUES (53, ':ca:', 'ca.gif', 'ca'); INSERT INTO `bb_smilies` VALUES (54, ':cb:', 'cb.gif', 'cb'); INSERT INTO `bb_smilies` VALUES (55, ':cc:', 'cc.gif', 'cc'); -INSERT INTO `bb_smilies` VALUES (56, ':cd:', 'cd.gif', 'cd'); -- -------------------------------------------------------- diff --git a/upload/admin/admin_bt_tracker_cfg.php b/upload/admin/admin_bt_tracker_cfg.php index 15aa17714..9406a5b89 100644 --- a/upload/admin/admin_bt_tracker_cfg.php +++ b/upload/admin/admin_bt_tracker_cfg.php @@ -27,6 +27,7 @@ $default_cfg_bool = array( 'update_dlstat' => 1, 'limit_active_tor' => 0, 'limit_concurrent_ips' => 0, + 'retracker' => 1, ); $default_cfg_num = array( diff --git a/upload/ajax.php b/upload/ajax.php index 34845418f..8b3d2ba2e 100644 --- a/upload/ajax.php +++ b/upload/ajax.php @@ -32,7 +32,6 @@ switch ($ajax->action) require(INC_DIR . 'bbcode.php'); break; - case 'chat': case 'posts': case 'post_mod_comment': require(INC_DIR . 'bbcode.php'); @@ -99,7 +98,6 @@ class ajax_common 'post_mod_comment' => array('mod'), 'avatar' => array('user'), - 'chat' => array('user'), 'gen_passkey' => array('user'), 'change_torrent' => array('user'), 'change_tor_status' => array('user'), @@ -416,11 +414,6 @@ class ajax_common require(AJAX_DIR . 'avatar.php'); } - function chat() - { - require(AJAX_DIR . 'chat.php'); - } - function sitemap() { require(AJAX_DIR .'sitemap.php'); diff --git a/upload/ajax/chat.php b/upload/ajax/chat.php deleted file mode 100644 index 17cdec17a..000000000 --- a/upload/ajax/chat.php +++ /dev/null @@ -1,5 +0,0 @@ -tor_decoded['info']; if (isset($info['name.utf-8'])) @@ -149,7 +147,7 @@ class torrent { $this->multiple = false; $name = isset($info['name']) ? clean_tor_dirname($info['name']) : ''; - $length = isset($info['length']) ? (int) $info['length'] : 0; + $length = isset($info['length']) ? (float) $info['length'] : 0; $this->files_ary['/'][] = $this->build_file_item($name, $length); natsort($this->files_ary['/']); @@ -158,7 +156,17 @@ class torrent function build_file_item ($name, $length) { - return "$name $length"; + global $bb_cfg, $images, $lang; + + $magnet_name = $magnet_ext = ''; + + if ($bb_cfg['magnet_links_enabled']) + { + $magnet_name = ''; + $magnet_ext = ''; + } + + return "$name $length $magnet_name $magnet_ext"; } function build_filelist_html () diff --git a/upload/config.php b/upload/config.php index 43b6483ad..056bebe97 100644 --- a/upload/config.php +++ b/upload/config.php @@ -57,6 +57,7 @@ * Misc * Captcha * Atom feed + * Nofollow **/ if (!defined('BB_ROOT')) die(basename(__FILE__)); @@ -69,8 +70,8 @@ $domain_name = (!empty($_SERVER['SERVER_NAME'])) ? $_SERVER['SERVER_NAME'] : $do // Version info $bb_cfg['tp_version'] = '2.0.9 (RC)'; -$bb_cfg['tp_release_date'] = '14-08-2014'; -$bb_cfg['tp_release_state'] = 'R595'; +$bb_cfg['tp_release_date'] = '20-08-2014'; +$bb_cfg['tp_release_state'] = 'R596'; // Database $charset = 'utf8'; @@ -188,6 +189,8 @@ $tr_cfg = array( 'limit_leech_ips' => 0, 'tor_topic_up' => true, 'gold_silver_enabled' => true, + 'retracker' => true, + 'retracker_host' => 'http://retracker.local/announce', ); $bb_cfg['show_dl_status_in_search'] = true; @@ -603,4 +606,10 @@ $bb_cfg['atom'] = array( 'url' => './atom', # without '/' ); +// Nofollow +$bb_cfg['nofollow'] = array( + 'disabled' => false, + 'allowed_url' => array($domain_name), // 'allowed.site', 'www.allowed.site' +); + define('BB_CFG_LOADED', true); \ No newline at end of file diff --git a/upload/dl.php b/upload/dl.php index dfdb7398f..96e0a60eb 100644 --- a/upload/dl.php +++ b/upload/dl.php @@ -32,19 +32,6 @@ function send_file_to_browser($attachment, $upload_dir) $gotit = true; } - // - // Determine the Browser the User is using, because of some nasty incompatibilities. - // Most of the methods used in this function are from phpMyAdmin. :) - // - if (!empty($_SERVER['HTTP_USER_AGENT'])) - { - $HTTP_USER_AGENT = $_SERVER['HTTP_USER_AGENT']; - } - elseif (!isset($HTTP_USER_AGENT)) - { - $HTTP_USER_AGENT = ''; - } - // Correct the mime type - we force application/octet-stream for all files, except images // Please do not change this, it is a security precaution if (!strstr($attachment['mimetype'], 'image')) @@ -62,8 +49,8 @@ function send_file_to_browser($attachment, $upload_dir) // Now the tricky part... let's dance header('Pragma: public'); $real_filename = clean_filename(basename($attachment['real_filename'])); - $mimetype = "{$attachment['mimetype']};"; - $charset = (@$lang['CONTENT_ENCODING']) ? "charset={$lang['CONTENT_ENCODING']};" : ''; + $mimetype = $attachment['mimetype'].';'; + $charset = (isset($lang['CONTENT_ENCODING'])) ? "charset={$lang['CONTENT_ENCODING']};" : ''; // Send out the Headers header("Content-Type: $mimetype $charset name=\"$real_filename\""); diff --git a/upload/images/dc_magnet.png b/upload/images/dc_magnet.png new file mode 100644 index 000000000..19a7cd5dc Binary files /dev/null and b/upload/images/dc_magnet.png differ diff --git a/upload/images/dc_magnet_ext.png b/upload/images/dc_magnet_ext.png new file mode 100644 index 000000000..ee6b2e467 Binary files /dev/null and b/upload/images/dc_magnet_ext.png differ diff --git a/upload/images/smiles/cd.gif b/upload/images/smiles/cd.gif deleted file mode 100644 index b50ce5982..000000000 Binary files a/upload/images/smiles/cd.gif and /dev/null differ diff --git a/upload/includes/bbcode.php b/upload/includes/bbcode.php index 73c0ff20a..e258dc0e1 100644 --- a/upload/includes/bbcode.php +++ b/upload/includes/bbcode.php @@ -497,10 +497,9 @@ class bbcode */ function init_replacements () { - $tpl = $this->tpl; - $img_url_exp = '(https?:)?//[^\s\?&;=\#\"<>]+?\.(jpg|jpeg|gif|png)([a-z0-9/?&%;][^\[\]]*)?'; - $email_exp = '[a-z0-9&\-_.]+?@[\w\-]+\.([\w\-\.]+\.)?[\w]+'; - $url_exp = '[\w\#!$%&~/.\-;:=,?@а-яА-Я\[\]+]+?'; + $tpl = $this->tpl; + $img_exp = '(https?:)?//[^\s\?&;=\#\"<>]+?\.(jpg|jpeg|gif|png)([a-z0-9/?&%;][^\[\]]*)?'; + $email_exp = '[a-z0-9&\-_.]+?@[\w\-]+\.([\w\-\.]+\.)?[\w]+'; $this->preg = array( '#\[quote="(.+?)"\]#isu' => $tpl['quote_username_open'], @@ -514,12 +513,8 @@ class bbcode '#\[size=([1-2]?[0-9])\]#isu' => '', '#\[align=(left|right|center|justify)\]#isu' => '', '#\[font="([\w\- \']+)"\]#isu' => '', - "#\[img\]($img_url_exp)\[/img\]#isu" => $tpl['img'], - "#\[img=(left|right)\]($img_url_exp)\[/img\]\s*#isu" => $tpl['img_aligned'], - "#\[url\](https?://$url_exp)\[/url\]#isu" => '$1', - "#\[url\](www\.$url_exp)\[/url\]#isu" => '$1', - "#\[url=(https?://$url_exp)\]([^?\n\t].*?)\[/url\]#isu" => '$2', - "#\[url=(www\.$url_exp)\]([^?\n\t].*?)\[/url\]#isu" => '$2', + "#\[img\]($img_exp)\[/img\]#isu" => $tpl['img'], + "#\[img=(left|right|center)\]($img_exp)\[/img\]\s*#isu" => $tpl['img_aligned'], "#\[email\]($email_exp)\[/email\]#isu" => '$1', "#\[qpost=([0-9]*)\]#isu" => '$1', ); @@ -570,15 +565,22 @@ class bbcode $text = $this->clean_up($text); $text = $this->spam_filter($text); - // парсинг тегов + // Tag parse if (strpos($text, '[') !== false) { - // [CODE] + // [code] $text = preg_replace_callback('#(\s*)\[code\](.+?)\[/code\](\s*)#s', array(&$this, 'code_callback'), $text); // Escape tags inside tiltes in [quote="tilte"] $text = preg_replace_callback('#(\[(quote|spoiler)=")(.+?)("\])#', array(&$this, 'escape_tiltes_callback'), $text); + // [url] + $url_exp = '[\w\#!$%&~/.\-;:=,?@а-яА-Я\[\]+]+?'; + $text = preg_replace_callback("#\[url\](https?://$url_exp)\[/url\]#isu", array(&$this, 'url_callback'), $text); + $text = preg_replace_callback("#\[url\](www\.$url_exp)\[/url\]#isu", array(&$this, 'url_callback'), $text); + $text = preg_replace_callback("#\[url=(https?://$url_exp)\]([^?\n\t].*?)\[/url\]#isu", array(&$this, 'url_callback'), $text); + $text = preg_replace_callback("#\[url=(www\.$url_exp)\]([^?\n\t].*?)\[/url\]#isu", array(&$this, 'url_callback'), $text); + // Normalize block level tags wrapped with new lines $block_tags = join('|', $this->block_tags); $text = str_replace("\n\n[hr]\n\n", '[br][hr][br]', $text); @@ -692,6 +694,28 @@ class bbcode return $this->tpl['code_open'] . $code . $this->tpl['code_close']; } + /** + * [url] callback + */ + function url_callback ($m) + { + global $bb_cfg; + + $url = trim($m[1]); + $url_name = (isset($m[2])) ? trim($m[2]) : $url; + + if (in_array(parse_url($url, PHP_URL_HOST), $bb_cfg['nofollow']['allowed_url']) || $bb_cfg['nofollow']['disabled']) + { + $link = "$url_name"; + } + else + { + $link = "$url_name"; + } + + return $link; + } + /** * Escape tags inside tiltes in [quote="tilte"] */ @@ -739,11 +763,22 @@ class bbcode */ function make_url_clickable_callback ($m) { + global $bb_cfg; + $max_len = 70; $href = $m[1]; $name = (mb_strlen($href, 'UTF-8') > $max_len) ? mb_substr($href, 0, $max_len - 19) .'...'. mb_substr($href, -16) : $href; - return "$name"; + if (in_array(parse_url($href, PHP_URL_HOST), $bb_cfg['nofollow']['allowed_url']) || $bb_cfg['nofollow']['disabled']) + { + $link = "$name"; + } + else + { + $link = "$name"; + } + + return $link; } /** diff --git a/upload/includes/class.sitemap.php b/upload/includes/class.sitemap.php index 75fd7a0e0..8e39a2e28 100644 --- a/upload/includes/class.sitemap.php +++ b/upload/includes/class.sitemap.php @@ -2,12 +2,12 @@ class sitemap { - var $home = ""; + var $home = ''; var $limit = 0; - var $topic_priority = "0.5"; - var $stat_priority = "0.5"; - var $priority = "0.6"; - var $cat_priority = "0.7"; + var $topic_priority = '0.5'; + var $stat_priority = '0.5'; + var $priority = '0.6'; + var $cat_priority = '0.7'; function sitemap () { global $bb_cfg; @@ -16,7 +16,6 @@ class sitemap function build_map () { $map = "\n\n"; - $map .= $this->get_static(); $map .= $this->get_forum(); $map .= $this->get_topic(); @@ -26,16 +25,13 @@ class sitemap } function build_index ($count) { + $lm = date('c'); $map = "\n\n"; - - $lastmod = date("Y-m-d"); - $map .= "\n{$this->home}sitemap/sitemap1.xml\n{$lastmod}\n\n"; - + $map .= "\n{$this->home}sitemap/sitemap1.xml\n{$lm}\n\n"; for ($i = 0; $i < $count; $i++) { $t = $i + 2; - $map .= "\n{$this->home}sitemap/sitemap{$t}.xml\n{$lastmod}\n\n"; + $map .= "\n{$this->home}sitemap/sitemap{$t}.xml\n{$lm}\n\n"; } - $map .= ""; return $map; @@ -43,7 +39,6 @@ class sitemap function build_stat () { $map = "\n\n"; - $map .= $this->get_static(); $map .= $this->get_forum(); $map .= ""; @@ -53,7 +48,6 @@ class sitemap function build_map_topic ($n) { $map = "\n\n"; - $map .= $this->get_topic($n); $map .= ""; @@ -64,24 +58,23 @@ class sitemap global $datastore; $this->priority = $this->cat_priority; - $xml = ""; - $lastmod = date( "Y-m-d" ); + $xml = ''; + $lm = date('c'); - if (!$forums = $datastore->get('cat_forums')) - { + if (!$forums = $datastore->get('cat_forums')) { $datastore->update('cat_forums'); $forums = $datastore->get('cat_forums'); } - $not_forums_id = $forums['not_auth_forums']['guest_view']; + $not_forums_id = $forums['not_auth_forums']['guest_view']; $ignore_forum_sql = ($not_forums_id) ? "WHERE forum_id NOT IN($not_forums_id)" : ''; - $sql = DB()->sql_query("SELECT forum_id, forum_topics, forum_parent, forum_name FROM ".BB_FORUMS." ".$ignore_forum_sql." ORDER BY forum_id ASC"); + $sql = DB()->sql_query("SELECT forum_id, forum_topics, forum_parent, forum_name FROM " . BB_FORUMS . " " . $ignore_forum_sql . " ORDER BY forum_id ASC"); while ($row = DB()->sql_fetchrow($sql)) { if (function_exists('seo_url')) $loc = $this->home . seo_url(FORUM_URL . $row['forum_id'], $row['forum_name']); - else $loc = $this->home . FORUM_URL. $row['forum_id']; - $xml .= $this->get_xml( $loc, $lastmod ); + else $loc = $this->home . FORUM_URL . $row['forum_id']; + $xml .= $this->get_xml($loc, $lm); } return $xml; @@ -90,7 +83,7 @@ class sitemap function get_topic ($page = false) { global $datastore; - $xml = ""; + $xml = ''; $this->priority = $this->topic_priority; if ($page) { @@ -99,10 +92,10 @@ class sitemap $this->limit = " LIMIT {$page},40000"; } else { if ($this->limit < 1) $this->limit = false; - if( $this->limit ) { + if ($this->limit) { $this->limit = " LIMIT 0," . $this->limit; } else { - $this->limit = ""; + $this->limit = ''; } } @@ -114,12 +107,12 @@ class sitemap $not_forums_id = $forums['not_auth_forums']['guest_view']; $ignore_forum_sql = ($not_forums_id) ? "WHERE forum_id NOT IN($not_forums_id)" : ''; - $sql = DB()->sql_query("SELECT topic_id, topic_title, topic_time FROM " . BB_TOPICS . " ".$ignore_forum_sql." ORDER BY topic_time DESC" . $this->limit); + $sql = DB()->sql_query("SELECT topic_id, topic_title, topic_time FROM " . BB_TOPICS . " " . $ignore_forum_sql . " ORDER BY topic_time ASC" . $this->limit); while ($row = DB()->sql_fetchrow($sql)) { if (function_exists('seo_url')) $loc = $this->home . seo_url(TOPIC_URL . $row['topic_id'], $row['topic_title']); - else $loc = $this->home . TOPIC_URL. $row['topic_id']; - $xml .= $this->get_xml($loc, date("Y-m-d", $row['topic_time'])); + else $loc = $this->home . TOPIC_URL . $row['topic_id']; + $xml .= $this->get_xml($loc, date('c', $row['topic_time'])); } return $xml; @@ -128,21 +121,19 @@ class sitemap function get_static () { global $bb_cfg; - $xml = ""; - $lastmod = date("Y-m-d"); + $xml = ''; + $lm = date('c'); $this->priority = $this->stat_priority; if (isset($bb_cfg['static_sitemap'])) { $static_url = preg_replace("/\s/", '', $bb_cfg['static_sitemap']); //вырезаем переносы строк - preg_match_all ('#(https?://[\w-]+[\.\w-]+/((?!https?://)[\w- ./?%&=])+)#', $static_url, $out); + preg_match_all('#(https?://[\w-]+[\.\w-]+/((?!https?://)[\w- ./?%&=])+)#', $static_url, $out); $static_url = count($out['0']); - if ($static_url > 0) - { - foreach($out['0'] as $url) - { + if ($static_url > 0) { + foreach ($out['0'] as $url) { $loc = $url; - $xml .= $this->get_xml($loc, $lastmod); + $xml .= $this->get_xml($loc, $lm); } } } @@ -150,11 +141,10 @@ class sitemap return $xml; } - function get_xml ($loc, $lastmod) { + function get_xml ($loc, $lm) { $xml = "\t\n"; - $xml .= "\t\t$loc\n"; - $xml .= "\t\t$lastmod\n"; + $xml .= "\t\t$lm\n"; $xml .= "\t\t" . $this->priority . "\n"; $xml .= "\t\n"; @@ -184,21 +174,19 @@ class sitemap } function create () { - $row = DB()->fetch_row("SELECT COUNT(*) AS count FROM ". BB_TOPICS); + $row = DB()->fetch_row("SELECT COUNT(*) AS count FROM " . BB_TOPICS); if (!$this->limit) $this->limit = $row['count']; if ($this->limit > 40000) { $pages_count = @ceil($row['count'] / 40000); $sitemap = $this->build_index($pages_count); - $handler = fopen(BB_ROOT. "/sitemap/sitemap.xml", "wb+"); fwrite($handler, $sitemap); fclose($handler); @chmod(BB_ROOT. "/sitemap/sitemap.xml", 0666); $sitemap = $this->build_stat(); - $handler = fopen(BB_ROOT. "/sitemap/sitemap1.xml", "wb+"); fwrite($handler, $sitemap); fclose($handler); @@ -216,7 +204,6 @@ class sitemap } } else { $sitemap = $this->build_map(); - $handler = fopen(BB_ROOT. "/sitemap/sitemap.xml", "wb+"); fwrite($handler, $sitemap); fclose($handler); diff --git a/upload/includes/cron/jobs/update_forums_atom.php b/upload/includes/cron/jobs/update_forums_atom.php index eaf6bc73e..7a517feba 100644 --- a/upload/includes/cron/jobs/update_forums_atom.php +++ b/upload/includes/cron/jobs/update_forums_atom.php @@ -9,14 +9,14 @@ require_once(INC_DIR .'functions_atom.php'); $timecheck = TIMENOW - 600; $forums_data = DB()->fetch_rowset("SELECT forum_id, allow_reg_tracker, forum_name FROM ". BB_FORUMS); -if (!file_exists($bb_cfg['atom']['path'] .'/f/0.atom') && filemtime($bb_cfg['atom']['path'] .'/f/0.atom') <= $timecheck) +if (file_exists($bb_cfg['atom']['path'] .'/f/0.atom') && filemtime($bb_cfg['atom']['path'] .'/f/0.atom') <= $timecheck) { update_forum_feed(0, $forums_data); } foreach ($forums_data as $forum_data) { - if (!file_exists($bb_cfg['atom']['path'] .'/f/'. $forum_data['forum_id'] .'.atom') && filemtime($bb_cfg['atom']['path'] .'/f/'. $forum_data['forum_id'] .'.atom') <= $timecheck) + if (file_exists($bb_cfg['atom']['path'] .'/f/'. $forum_data['forum_id'] .'.atom') && filemtime($bb_cfg['atom']['path'] .'/f/'. $forum_data['forum_id'] .'.atom') <= $timecheck) { update_forum_feed($forum_data['forum_id'], $forum_data); } diff --git a/upload/includes/datastore/build_smilies.php b/upload/includes/datastore/build_smilies.php index 0bc49996a..01d9ad6a3 100644 --- a/upload/includes/datastore/build_smilies.php +++ b/upload/includes/datastore/build_smilies.php @@ -7,7 +7,7 @@ global $bb_cfg; $smilies = array(); $rowset = DB()->fetch_rowset("SELECT * FROM ". BB_SMILIES); -usort($rowset, 'smiley_sort'); +sort($rowset); foreach ($rowset as $smile) { diff --git a/upload/includes/functions.php b/upload/includes/functions.php index b92c29b34..09d508309 100644 --- a/upload/includes/functions.php +++ b/upload/includes/functions.php @@ -275,6 +275,7 @@ $bf['user_opt'] = array( 'dis_post' => 12, // Запрет на отправку сообщений 'dis_post_edit' => 13, // Запрет на редактирование сообщений 'user_dls' => 14, // Скрывать список текущих закачек в профиле + 'user_retracker' => 15, // Добавлять ретрекер к скачиваемым торрентам ); function bit2dec ($bit_num) @@ -1776,16 +1777,6 @@ function obtain_word_list (&$orig_word, &$replacement_word) return true; } -function smiley_sort ($a, $b) -{ - if (strlen($a['code']) == strlen($b['code'])) - { - return 0; - } - - return (strlen($a['code']) > strlen($b['code'])) ? -1 : 1; -} - function bb_die ($msg_text) { global $ajax, $bb_cfg, $lang, $template, $theme, $userdata; diff --git a/upload/includes/functions_torrent.php b/upload/includes/functions_torrent.php index cf3c516ab..d3f676a51 100644 --- a/upload/includes/functions_torrent.php +++ b/upload/includes/functions_torrent.php @@ -354,7 +354,7 @@ function tracker_register ($attach_id, $mode = '', $tor_status = TOR_NOT_APPROVE function send_torrent_with_passkey ($filename) { - global $attachment, $auth_pages, $userdata, $bb_cfg, $lang; + global $attachment, $auth_pages, $userdata, $bb_cfg, $tr_cfg, $lang; if (!$bb_cfg['bt_add_auth_key'] || $attachment['extension'] !== TORRENT_EXT || !$size = @filesize($filename)) { @@ -446,7 +446,7 @@ function send_torrent_with_passkey ($filename) $announce = strval($ann_url . "?$passkey_key=$passkey_val"); // Replace original announce url with tracker default - if ($bb_cfg['bt_replace_ann_url'] || !@$tor['announce']) + if ($bb_cfg['bt_replace_ann_url'] || !isset($tor['announce'])) { $tor['announce'] = $announce; } @@ -456,11 +456,30 @@ function send_torrent_with_passkey ($filename) { unset($tor['announce-list']); } - elseif (@$tor['announce-list']) + elseif (isset($tor['announce-list'])) { $tor['announce-list'] = array_merge($tor['announce-list'], array(array($announce))); } + // Add retracker + if (isset($tr_cfg['retracker']) && $tr_cfg['retracker']) + { + if (bf($userdata['user_opt'], 'user_opt', 'user_retracker')) + { + if (!isset($tor['announce-list'])) + { + $tor['announce-list'] = array( + array($announce), + array($tr_cfg['retracker_host']) + ); + } + else + { + $tor['announce-list'] = array_merge($tor['announce-list'], array(array($tr_cfg['retracker_host']))); + } + } + } + // Add publisher & topic url $publisher_name = $bb_cfg['server_name']; $publisher_url = make_url(TOPIC_URL . $topic_id); diff --git a/upload/includes/init_bb.php b/upload/includes/init_bb.php index 3ec627302..ad1ee32c9 100644 --- a/upload/includes/init_bb.php +++ b/upload/includes/init_bb.php @@ -284,7 +284,6 @@ define('BB_BT_TORHELP', 'bb_bt_torhelp'); define('BB_BT_TORSTAT', 'bb_bt_torstat'); define('BB_CATEGORIES', 'bb_categories'); define('BB_CAPTCHA', 'bb_captcha'); -define('BB_CHAT', 'bb_chat'); define('BB_CONFIG', 'bb_config'); define('BB_CRON', 'bb_cron'); define('BB_DISALLOW', 'bb_disallow'); diff --git a/upload/includes/ucp/register.php b/upload/includes/ucp/register.php index f6632b6a2..184d77fa7 100644 --- a/upload/includes/ucp/register.php +++ b/upload/includes/ucp/register.php @@ -370,7 +370,7 @@ foreach ($profile_fields as $field => $can_edit) $reg_mode = ($mode == 'register'); $update_user_opt = array( - # 'user_opt_name' => ($reg_mode) ? #reg_setting : #in_login_change + # 'user_opt_name' => ($reg_mode) ? #reg_value : #in_login_change 'user_viewemail' => ($reg_mode) ? false : true, 'user_viewonline' => ($reg_mode) ? false : true, 'user_notify' => ($reg_mode) ? true : true, @@ -378,6 +378,7 @@ foreach ($profile_fields as $field => $can_edit) 'user_porn_forums' => ($reg_mode) ? false : true, 'user_dls' => ($reg_mode) ? false : true, 'user_callseed' => ($reg_mode) ? true : true, + 'user_retracker' => ($reg_mode) ? true : true, ); foreach ($update_user_opt as $opt => $can_change_opt) diff --git a/upload/language/en/main.php b/upload/language/en/main.php index 9616b6c8a..e27e6fc1e 100644 --- a/upload/language/en/main.php +++ b/upload/language/en/main.php @@ -1114,6 +1114,8 @@ $lang['SEEDING'] = 'Seed'; $lang['LEECHING'] = 'Leech'; $lang['IS_REGISTERED'] = 'Registered'; $lang['MAGNET'] = 'Magnet'; +$lang['DC_MAGNET'] = 'Search in DC++ by filename'; +$lang['DC_MAGNET_EXT'] = 'Search in DC++ by extension'; //torrent status mod $lang['TOR_STATUS'] = 'Status'; @@ -1515,7 +1517,8 @@ $lang['ICQ_ERROR'] = 'The field of "ICQ" may contain only icq number'; $lang['INVALID_DATE'] = 'Error date '; $lang['PROFILE_USER'] = 'Viewing profile'; $lang['GOOD_UPDATE'] = 'was successfully changed'; -$lang['DENY_VISITORS'] = 'Hide the current list of downloads on your profile'; +$lang['UCP_DOWNLOADS'] = 'Downloads'; +$lang['HIDE_DOWNLOADS'] = 'Hide the current list of downloads on your profile'; $lang['BAN_USER'] = 'To prevent a user'; $lang['USER_NOT_ALLOWED'] = 'Users are not permitted'; $lang['HIDE_AVATARS'] = 'Show avatars'; @@ -2524,6 +2527,7 @@ $lang['USE_AUTH_KEY_EXPL'] = 'enable check for passkey'; $lang['AUTH_KEY_NAME'] = 'Passkey name'; $lang['AUTH_KEY_NAME_EXPL'] = 'passkey key name in GET request'; $lang['ALLOW_GUEST_DL'] = 'Allow guest access to tracker'; +$lang['ADD_RETRACKER'] = 'Add retracker in torrent files'; // // Forum config @@ -2764,7 +2768,7 @@ $lang['BOT_MESS_SPLITS'] = 'Topic has been split. New topic - [b]%s[/b][br][br]% $lang['BOT_TOPIC_SPLITS'] = 'Topic has been split from [b]%s[/b][br][br]%s'; $lang['CALLSEED'] = 'Downloaded the call'; -$lang['CALLSEED_EXPLAIN'] = 'Take notice with a request to return to the distribution?'; +$lang['CALLSEED_EXPLAIN'] = 'Take notice with a request to return to the distribution'; $lang['CALLSEED_SUBJECT'] = 'Download help %s'; $lang['CALLSEED_TEXT'] = 'Hello![br]Your help is needed in the release [url=%s]%s[/url][br]If you decide to help, but already deleted the torrent file, you can download it [url=%s]this[/url][br][br]I hope for your help!'; $lang['CALLSEED_MSG_OK'] = 'Message has been sent to all those who downloaded this release'; diff --git a/upload/language/ru/main.php b/upload/language/ru/main.php index 4c104d200..abfb9d0d6 100644 --- a/upload/language/ru/main.php +++ b/upload/language/ru/main.php @@ -1114,6 +1114,8 @@ $lang['SEEDING'] = 'Сидер'; $lang['LEECHING'] = 'Личер'; $lang['IS_REGISTERED'] = 'Зарегистрирован'; $lang['MAGNET'] = 'Magnet'; +$lang['DC_MAGNET'] = 'Поиск в DC++ по имени файла'; +$lang['DC_MAGNET_EXT'] = 'Поиск в DC++ по расширению'; //torrent status mod $lang['TOR_STATUS'] = 'Статус'; @@ -1515,7 +1517,8 @@ $lang['ICQ_ERROR'] = 'Поле "ICQ" может содержать только $lang['INVALID_DATE'] = 'Ошибка даты '; $lang['PROFILE_USER'] = 'Профиль пользователя'; $lang['GOOD_UPDATE'] = 'был успешно изменен'; -$lang['DENY_VISITORS'] = 'Скрывать список текущих закачек в профиле'; +$lang['UCP_DOWNLOADS'] = 'Закачки'; +$lang['HIDE_DOWNLOADS'] = 'Скрывать список текущих закачек в профиле'; $lang['BAN_USER'] = 'Запретить пользователю'; $lang['USER_NOT_ALLOWED'] = 'Пользователю запрещено'; $lang['HIDE_AVATARS'] = 'Показывать аватар'; @@ -2524,6 +2527,7 @@ $lang['USE_AUTH_KEY_EXPL'] = 'включить авторизацию по passk $lang['AUTH_KEY_NAME'] = 'Имя ключа passkey'; $lang['AUTH_KEY_NAME_EXPL'] = 'имя ключа, который будет добавляться в GET запросе к announce url для идентификации юзера'; $lang['ALLOW_GUEST_DL'] = 'Разрешить "гостям" (неавторизованным юзерам) доступ к трекеру'; +$lang['ADD_RETRACKER'] = 'Добавлять ретрекер в торрент-файлы'; // // Forum config @@ -2764,7 +2768,7 @@ $lang['BOT_MESS_SPLITS'] = 'Сообщения из этой темы были $lang['BOT_TOPIC_SPLITS'] = 'Тема была выделена из [b]%s[/b][br][br]%s'; $lang['CALLSEED'] = 'Позвать скачавших'; -$lang['CALLSEED_EXPLAIN'] = 'Принимать уведомления с просьбой вернуться на раздачу?'; +$lang['CALLSEED_EXPLAIN'] = 'Принимать уведомления с просьбой вернуться на раздачу'; $lang['CALLSEED_SUBJECT'] = 'Помогите скачать %s'; $lang['CALLSEED_TEXT'] = 'Здравствуйте![br]Ваша помощь необходима в раздаче [url=%s]%s[/url][br]Если Вы решили помочь, но уже удалили торрент-файл, Вы можете скачать его [url=%s]здесь[/url][br][br]Надеюсь на Вашу помощь!'; $lang['CALLSEED_MSG_OK'] = 'Сообщения успешно отправлены всем скачавшим данный релиз'; diff --git a/upload/language/ua/main.php b/upload/language/ua/main.php index 465545a71..c458fd454 100644 --- a/upload/language/ua/main.php +++ b/upload/language/ua/main.php @@ -1114,6 +1114,8 @@ $lang['SEEDING'] = 'Сідер'; $lang['LEECHING'] = 'Лічер'; $lang['IS_REGISTERED'] = 'Зареєстрований'; $lang['MAGNET'] = 'Magnet'; +$lang['DC_MAGNET'] = 'Пошук в DC++ по імені файлу'; +$lang['DC_MAGNET_EXT'] = 'Пошук в DC++ по розширенню'; //torrent status mod $lang['TOR_STATUS'] = 'Статус'; @@ -1515,7 +1517,8 @@ $lang['ICQ_ERROR'] = 'Поле "ICQ" може містити тільки ном $lang['INVALID_DATE'] = 'Помилка дати '; $lang['PROFILE_USER'] = 'Профіль користувача'; $lang['GOOD_UPDATE'] = 'був успішно змінен'; -$lang['DENY_VISITORS'] = 'Приховувати список поточних завантажень в профілі'; +$lang['UCP_DOWNLOADS'] = 'Завантажити'; +$lang['HIDE_DOWNLOADS'] = 'Приховувати список поточних завантажень в профілі'; $lang['BAN_USER'] = 'Заборонити користувачу'; $lang['USER_NOT_ALLOWED'] = 'Користувачеві заборонено'; $lang['HIDE_AVATARS'] = 'Показувати аватар'; @@ -2441,7 +2444,7 @@ $lang['ATTACHMENTS_PER_DAY'] = 'Прикріплень за день'; // Control Panel -> Attachments $lang['STATISTICS_FOR_USER'] = 'Статистика додатків для %s'; // replace %s with username -$lang['DOWNLOAD'] = 'Завантажити'; +$lang['DOWNLOADS'] = 'Завантажити'; $lang['POST_TIME'] = 'Дата повідомлення'; $lang['POSTED_IN_TOPIC'] = 'Розміщене в темі'; $lang['SUBMIT_CHANGES'] = 'Зберегти зміни'; @@ -2524,6 +2527,7 @@ $lang['USE_AUTH_KEY_EXPL'] = 'включити авторизацію по passk $lang['AUTH_KEY_NAME'] = "Ім'я ключа passkey"; $lang['AUTH_KEY_NAME_EXPL'] = "ім'я ключа, який буде додаватися до GET запиті до announce url для ідентифікації користувача"; $lang['ALLOW_GUEST_DL'] = "Дозволити 'гостям' (неавторизованим юзерам) доступ до трекера"; +$lang['ADD_RETRACKER'] = 'Додавати ретрекер в торрент-файли'; // // Forum config @@ -2764,7 +2768,7 @@ $lang['BOT_MESS_SPLITS'] = 'Повідомлення з цієї теми бул $lang['BOT_TOPIC_SPLITS'] = 'Тема була виділена з [b]%s[/b][br][br]%s'; $lang['CALLSEED'] = 'Покликати, кто завантажил'; -$lang['CALLSEED_EXPLAIN'] = 'Приймати повідомлення з проханням повернутися на роздачу?'; +$lang['CALLSEED_EXPLAIN'] = 'Приймати повідомлення з проханням повернутися на роздачу'; $lang['CALLSEED_SUBJECT'] = 'Допоможіть завантажити %s'; $lang['CALLSEED_TEXT'] = 'Привіт![br]Ваша допомога необхідна в роздачі [url=%s]%s[/url][br]Якщо ви вирішили допомогти, але вже видалили торрент-файл, можете завантажити його [url=%s]здесь[/url][br][br]Сподіваюся на вашу допомогу!'; $lang['CALLSEED_MSG_OK'] = 'Повідомлення успішно відправлено всім скачавшим даний реліз'; diff --git a/upload/templates/admin/admin_bt_tracker_cfg.tpl b/upload/templates/admin/admin_bt_tracker_cfg.tpl index f14150ae0..7dd1624e6 100644 --- a/upload/templates/admin/admin_bt_tracker_cfg.tpl +++ b/upload/templates/admin/admin_bt_tracker_cfg.tpl @@ -51,7 +51,6 @@

{L_ALLOW_GUEST_DL}

{L_ALLOW_GUEST_DL_EXPL}
  {L_NO}{L_YES} - {L_LIMIT_ACTIVE_TOR_HEAD} @@ -103,10 +102,14 @@

{L_UPDATE_DLSTAT}

Used in cron Tracker cleanup and dlstat
+ +

{L_ADD_RETRACKER}

+ +

{L_GOLD} / {L_SILVER}

-    + @@ -128,5 +131,4 @@ -
- +
\ No newline at end of file diff --git a/upload/templates/default/index_map.tpl b/upload/templates/default/index_map.tpl index d78f82101..cf9c5af1c 100644 --- a/upload/templates/default/index_map.tpl +++ b/upload/templates/default/index_map.tpl @@ -18,13 +18,13 @@ a.hl, a.hl:visited { color: #1515FF; } function qs_highlight_found () { this.style.display = ''; - var a = $('a:first', this)[0]; + var a = $('a:first', this); var q = $('#q-search').val().toLowerCase(); - if (q != '' && a.innerHTML.toLowerCase().indexOf(q) != -1) { - a.className = 'hl'; + if (q != '' && a.text().toLowerCase().indexOf(q) != -1) { + a.html(a.text().replace(q, '' + q + '')); } else { - a.className = ''; + a.html(a.text()); } } function open_feed (f_id) diff --git a/upload/templates/default/tpl_config.php b/upload/templates/default/tpl_config.php index 31773f5bf..d7d976d60 100644 --- a/upload/templates/default/tpl_config.php +++ b/upload/templates/default/tpl_config.php @@ -62,6 +62,8 @@ $images['folder_dl_hot_new'] = $_main .'folder_dl_hot_new.gif'; $images['icon_clip'] = $_img .'icon_clip.gif'; $images['icon_dn'] = $_img .'icon_dn.gif'; $images['icon_magnet'] = $_img .'magnet.png'; +$images['icon_dc_magnet'] = $_img .'dc_magnet.png'; +$images['icon_dc_magnet_ext'] = $_img .'dc_magnet_ext.png'; // posting_icons $images['post_new'] = $_lang .'post.gif'; diff --git a/upload/templates/default/usercp_register.tpl b/upload/templates/default/usercp_register.tpl index 4490e2f1f..f475d678f 100644 --- a/upload/templates/default/usercp_register.tpl +++ b/upload/templates/default/usercp_register.tpl @@ -211,13 +211,6 @@ ajax.callback.posts = function(data){ - - {L_DENY_VISITORS}: - -    - - - {L_ALWAYS_NOTIFY}:
{L_ALWAYS_NOTIFY_EXPLAIN}
@@ -225,7 +218,6 @@ ajax.callback.posts = function(data){ - {L_NOTIFY_ON_PRIVMSG}: @@ -235,12 +227,14 @@ ajax.callback.posts = function(data){ + - {L_CALLSEED}:
{L_CALLSEED_EXPLAIN}
- -    - - + {L_DATE_FORMAT}:
{L_DATE_FORMAT_EXPLAIN}
+ + + + + {L_UCP_DOWNLOADS} {L_HIDE_PORN_FORUMS}: @@ -249,12 +243,27 @@ ajax.callback.posts = function(data){ - - {L_DATE_FORMAT}:
{L_DATE_FORMAT_EXPLAIN}
- + {L_ADD_RETRACKER}: + +    + + + + + {L_HIDE_DOWNLOADS}: + +    + + + + + {L_CALLSEED_EXPLAIN}: + +    + + - {L_AVATAR_PANEL} diff --git a/upload/templates/default/viewforum.tpl b/upload/templates/default/viewforum.tpl index 6e67ab4f1..46cd57e38 100644 --- a/upload/templates/default/viewforum.tpl +++ b/upload/templates/default/viewforum.tpl @@ -405,7 +405,8 @@ td.topic_id { cursor: pointer; }   - {L_SEARCH_SELF}  |  + {FEED_IMG} {L_ATOM_SUBSCRIBE} · + {L_SEARCH_SELF} · {L_DISPLAYING_OPTIONS} diff --git a/upload/viewtopic.php b/upload/viewtopic.php index 7f884761d..d9e0be58e 100644 --- a/upload/viewtopic.php +++ b/upload/viewtopic.php @@ -93,7 +93,7 @@ if ($topic_id) $sql = "SELECT t.*, f.*, tw.notify_status FROM ". BB_TOPICS ." t LEFT JOIN ". BB_FORUMS ." f USING(forum_id) - LEFT JOIN ". BB_TOPICS_WATCH ." tw ON(tw.topic_id = t.topic_id AND user_id = {$userdata['user_id']}) + LEFT JOIN ". BB_TOPICS_WATCH ." tw ON(tw.topic_id = t.topic_id AND tw.user_id = {$userdata['user_id']}) WHERE t.topic_id = $topic_id "; } @@ -103,7 +103,7 @@ elseif ($post_id) FROM ". BB_TOPICS ." t LEFT JOIN ". BB_FORUMS ." f USING(forum_id) LEFT JOIN ". BB_POSTS ." p USING(topic_id) - LEFT JOIN ". BB_TOPICS_WATCH ." tw ON(tw.topic_id = t.topic_id AND user_id = {$userdata['user_id']}) + LEFT JOIN ". BB_TOPICS_WATCH ." tw ON(tw.topic_id = t.topic_id AND tw.user_id = {$userdata['user_id']}) WHERE p.post_id = $post_id "; }