From 1635224764397248c5e557b5ab685b7f1e507266 Mon Sep 17 00:00:00 2001 From: Dark Nightmare Date: Sat, 9 Aug 2014 22:24:15 +0600 Subject: [PATCH] Search release groups releases in tracker.php MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit + Поиск раздач релиз групп в tracker.php + Вывод ссылки "Релизы группы" если группа является релиз группой + Проверка является ли группа релиз группой --- upload/config.php | 2 +- upload/groupcp.php | 6 +++ upload/language/en/main.php | 2 + upload/language/ru/main.php | 2 + upload/language/ua/main.php | 2 + upload/templates/default/groupcp.tpl | 4 +- upload/templates/default/tracker.tpl | 6 +++ upload/tracker.php | 71 +++++++++++++++++++++------- 8 files changed, 76 insertions(+), 19 deletions(-) diff --git a/upload/config.php b/upload/config.php index 4748b5b78..c24e45cfa 100644 --- a/upload/config.php +++ b/upload/config.php @@ -498,7 +498,7 @@ $bb_cfg['user_not_activated_days_keep'] = 7; // "not activated" == "not fi $bb_cfg['user_not_active_days_keep'] = 180; // inactive users but only with no posts // GroupCP -$bb_cfg['groupcp_members_per_page'] = 300; +$bb_cfg['groupcp_members_per_page'] = 50; // Tidy $bb_cfg['tidy_post'] = (!extension_loaded('tidy')) ? false : true; diff --git a/upload/groupcp.php b/upload/groupcp.php index 6bb033593..9f1d527a4 100644 --- a/upload/groupcp.php +++ b/upload/groupcp.php @@ -49,6 +49,8 @@ $start = isset($_REQUEST['start']) ? abs(intval($_REQUEST['start'])) : 0; $per_page = $bb_cfg['groupcp_members_per_page']; $view_mode = isset($_REQUEST['view']) ? (string) $_REQUEST['view'] : null; +$releases_limit = 50; + $group_info = array(); $is_moderator = false; @@ -482,6 +484,7 @@ else 'MOD_WWW' => $www, 'MOD_TIME' => (!empty($group_info['mod_time'])) ? bb_date($group_info['mod_time']) : $lang['NONE'], 'U_SEARCH_USER' => "search.php?mode=searchuser", + 'U_SEARCH_RELEASES' => "tracker.php?srg=$group_id", 'U_GROUP_RELEASES' => "groupcp.php?view=releases&". POST_GROUPS_URL ."=$group_id", 'U_GROUP_MEMBERS' => "groupcp.php?view=members&". POST_GROUPS_URL ."=$group_id", @@ -508,6 +511,8 @@ else // TODO Correct SQL to posts with attach and limit them, optimization + if (!$group_info['release_group']) bb_die($lang['NOT_A_RELEASE_GROUP']); + // Count releases for pagination $all_releases = DB()->fetch_rowset(" SELECT p.topic_id, p.forum_id, p.poster_id, t.topic_title, t.topic_time, f.forum_name, u.username, u.avatar_ext_id, u.user_opt, u.user_rank @@ -517,6 +522,7 @@ else LEFT JOIN ". BB_USERS ." u ON(p.poster_id = u.user_id) WHERE p.poster_rg_id = $group_id ORDER BY t.topic_time DESC + LIMIT $releases_limit "); $count_releases = count($all_releases); diff --git a/upload/language/en/main.php b/upload/language/en/main.php index 8b6289bd4..e9f0e0ea2 100644 --- a/upload/language/en/main.php +++ b/upload/language/en/main.php @@ -779,6 +779,8 @@ $lang['CHOOSE_RELEASE_GROUP'] = 'Select release group'; $lang['ATTACH_RG_SIG'] = 'Attach release group signature'; $lang['RELEASE_FROM_RG'] = 'Release was prepared by'; $lang['GROUPS_RELEASES'] = 'Group\'s releases'; +$lang['MORE_RELEASES'] = 'All releases'; +$lang['NOT_A_RELEASE_GROUP'] = 'This group is not a release group'; // // Search diff --git a/upload/language/ru/main.php b/upload/language/ru/main.php index 8c6d3f859..cccba160d 100644 --- a/upload/language/ru/main.php +++ b/upload/language/ru/main.php @@ -779,6 +779,8 @@ $lang['CHOOSE_RELEASE_GROUP'] = 'Выбрать релиз группу'; $lang['ATTACH_RG_SIG'] = 'Добавить подпись релиз группы'; $lang['RELEASE_FROM_RG'] = 'Релиз подготовлен'; $lang['GROUPS_RELEASES'] = 'Релизы группы'; +$lang['MORE_RELEASES'] = 'Все релизы'; +$lang['NOT_A_RELEASE_GROUP'] = 'Эта группа не является релиз группой'; // // Search diff --git a/upload/language/ua/main.php b/upload/language/ua/main.php index f9222b787..7edc46046 100644 --- a/upload/language/ua/main.php +++ b/upload/language/ua/main.php @@ -779,6 +779,8 @@ $lang['CHOOSE_RELEASE_GROUP'] = 'Выбрать релиз группу'; $lang['ATTACH_RG_SIG'] = 'Добавить подпись релиз группы'; $lang['RELEASE_FROM_RG'] = 'Релиз подготовлен'; $lang['GROUPS_RELEASES'] = 'Релизы групи'; +$lang['MORE_RELEASES'] = 'Всi релизы'; +$lang['NOT_A_RELEASE_GROUP'] = 'Эта группа не является релиз группой'; // // Search diff --git a/upload/templates/default/groupcp.tpl b/upload/templates/default/groupcp.tpl index 1732aa940..015ac36ba 100644 --- a/upload/templates/default/groupcp.tpl +++ b/upload/templates/default/groupcp.tpl @@ -99,7 +99,7 @@
- +
@@ -275,7 +275,7 @@ -   + {L_MORE_RELEASES} diff --git a/upload/templates/default/tracker.tpl b/upload/templates/default/tracker.tpl index 353470f6c..98bb97036 100644 --- a/upload/templates/default/tracker.tpl +++ b/upload/templates/default/tracker.tpl @@ -266,6 +266,12 @@ $(function(){

style="color: red" class="post" type="text" size="16" maxlength="{POSTER_NAME_MAX}" name="{POSTER_NAME_NAME}" value="{POSTER_NAME_VAL}" />

+
+ {L_GROUPS_RELEASES} +
+

{S_RG_SELECT}

+
+
{L_TITLE_MATCH}
diff --git a/upload/tracker.php b/upload/tracker.php index f41b402dc..2510eb0c5 100644 --- a/upload/tracker.php +++ b/upload/tracker.php @@ -7,6 +7,7 @@ require(BB_ROOT .'common.php'); require(INC_DIR .'class.utf8.php'); require(INC_DIR .'class.correct.php'); require(INC_DIR .'class.reflection.php'); +require(INC_DIR .'functions_group.php'); // Page config $page_cfg['include_bbcode_js'] = true; @@ -21,7 +22,7 @@ $user->session_start(array('req_login' => $bb_cfg['bt_tor_browse_only_reg'])); set_die_append_msg(); $tor_search_limit = (IS_AM) ? 2000 : 500; -$forum_select_size = 24; // forum select box max rows +$forum_select_size = 26; // forum select box max rows $max_forum_name_len = 60; // inside forum select box $max_forums_selected = 50; $title_match_max_len = 60; @@ -51,6 +52,7 @@ $row_num = $tor_count = 0; $torrents_tbl = BB_BT_TORRENTS .' tor'; $cat_tbl = BB_CATEGORIES .' c'; $forums_tbl = BB_FORUMS .' f'; +$posts_tbl = BB_POSTS .' p'; $topics_tbl = BB_TOPICS .' t'; $users_tbl = BB_USERS .' u'; $tracker_tbl = BB_BT_TRACKER .' tr'; @@ -219,6 +221,30 @@ foreach ($s_not_seen_opt as $val => $opt) $s_not_seen_select[$opt['lang']] = $val; } +if ($release_groups = get_group_data('all')) +{ + $s_rg_opt = array( + $search_all => array( + 'lang' => $lang['GROUPS_RELEASES'], + 'sql' => 0, + )); + foreach ($release_groups as $rg) + { + + if ($rg['release_group']) + { + $s_rg_opt[$rg['group_id']] = array( + 'lang' => $rg['group_name'], + 'sql' => $rg['group_id'], + ); + } + } + foreach ($s_rg_opt as $val => $opt) + { + $s_release_group_select[$opt['lang']] = $val; + } +} + $GPC = array( # var_name key_name def_value GPC type 'all_words' => array('allw', 1, CHBOX), @@ -239,12 +265,13 @@ $GPC = array( 'sort' => array('s', $sort_desc, SELECT), 'seed_exist' => array('sd', 0, CHBOX), 'show_author' => array('da', 1, CHBOX), + 's_rg' => array('srg', $search_all, SELECT), 'show_cat' => array('dc', 0, CHBOX), 'show_forum' => array('df', 1, CHBOX), 'show_speed' => array('ds', 0, CHBOX), 's_not_seen' => array('sns', $search_all, SELECT), 'time' => array('tm', $search_all, SELECT), - 'tor_type' => array('tor_type', 0, CHBOX), + 'tor_type' => array('tor_type', 0, CHBOX), ); // Define all GPC vars with default values @@ -445,21 +472,22 @@ if ($dl_will_val) $dl_status[] = DL_STATUS_WILL; $dl_status_csv = join(',', $dl_status); // Switches -$only_new = ($new_val && !IS_GUEST); -$seed_exist = (bool) $seed_exist_val; -$only_active = ($active_val || $seed_exist); -$dl_search = ($dl_status && !IS_GUEST); -$only_my = ($my_val && !IS_GUEST && !$dl_search); -$prev_days = ($time_val != $search_all); -$poster_id = (bool) $poster_id_val; -$title_match = (bool) $title_match_sql; -$s_not_seen = ($s_not_seen_val != $search_all); -$tor_type = (bool) $tor_type_val; +$only_new = ($new_val && !IS_GUEST); +$seed_exist = (bool) $seed_exist_val; +$only_active = ($active_val || $seed_exist); +$dl_search = ($dl_status && !IS_GUEST); +$only_my = ($my_val && !IS_GUEST && !$dl_search); +$prev_days = ($time_val != $search_all); +$poster_id = (bool) $poster_id_val; +$s_release_group = ($s_rg_val != $search_all); +$title_match = (bool) $title_match_sql; +$s_not_seen = ($s_not_seen_val != $search_all); +$tor_type = (bool) $tor_type_val; -$hide_cat = intval(!$show_cat_val); -$hide_forum = intval(!$show_forum_val); -$hide_author = intval(!$show_author_val); -$hide_speed = intval(!$show_speed_val); +$hide_cat = intval(!$show_cat_val); +$hide_forum = intval(!$show_forum_val); +$hide_author = intval(!$show_author_val); +$hide_speed = intval(!$show_speed_val); if ($s_not_seen_val != $search_all) { @@ -490,6 +518,7 @@ if ($allowed_forums) 'order', 'poster_id', 'poster_name', + 's_rg', 's_not_seen', 'seed_exist', 'show_author', @@ -528,6 +557,7 @@ if ($allowed_forums) { $reg_time = $time_opt[$time_val]['sql']; $poster_id_sql = (int) $poster_id_val; + $rg_id_sql = (int) $s_rg_val; $s_seen_time = $s_not_seen_opt[$s_not_seen_val]['sql']; $s_seen_sign = ($s_not_seen_val == $never) ? '=' : '<'; $s_seen_exclude = ($s_not_seen_val == $never) ? '' : "AND tor.seeder_last_seen != 0"; @@ -563,6 +593,10 @@ if ($allowed_forums) AND dl.user_status IN($dl_status_csv) )"; } + if ($s_release_group) + { + $SQL['LEFT JOIN'][] = "$posts_tbl ON(p.topic_id = tor.topic_id)"; + } // WHERE $title_match_notfound_flag = false; @@ -582,6 +616,10 @@ if ($allowed_forums) { $SQL['WHERE'][] = "tor.poster_id = $poster_id_sql"; } + if ($s_release_group) + { + $SQL['WHERE'][] = "p.poster_rg_id = $rg_id_sql"; + } if ($only_new) { $SQL['WHERE'][] = "tor.reg_time > $lastvisit"; @@ -926,6 +964,7 @@ $template->assign_vars(array( 'ORDER_SELECT' => build_select($order_key, $order_select, $order_val), 'TIME_SELECT' => build_select($time_key, $time_select, $time_val), 'S_NOT_SEEN_SELECT' => build_select($s_not_seen_key, $s_not_seen_select, $s_not_seen_val), + 'S_RG_SELECT' => build_select($s_rg_key, $s_release_group_select, $s_rg_val), 'TOR_SEARCH_ACTION' => $tracker_url, 'TOR_COLSPAN' => $tor_colspan, 'TITLE_MATCH_MAX' => $title_match_max_len,