Search release groups releases in tracker.php

+ Поиск раздач релиз групп в tracker.php
+ Вывод ссылки "Релизы группы" если группа является релиз группой
+ Проверка является ли группа релиз группой
This commit is contained in:
Dark Nightmare 2014-08-09 22:24:15 +06:00
commit 1635224764
8 changed files with 76 additions and 19 deletions

View file

@ -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;

View file

@ -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);

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -99,7 +99,7 @@
</form>
<div class="spacer_10"></div>
<p class="nav"><a href="{U_GROUP_MEMBERS}" name="members">{L_GROUP_MEMBERS}</a>&nbsp;::&nbsp;<a href="{U_GROUP_RELEASES}" name="releases">{L_GROUPS_RELEASES}</a></p>
<p class="nav"><a href="{U_GROUP_MEMBERS}" name="members">{L_GROUP_MEMBERS}</a>&nbsp; <!-- IF RELEASE_GROUP -->::&nbsp;<a href="{U_GROUP_RELEASES}" name="releases">{L_GROUPS_RELEASES}</a><!-- ENDIF --></p>
<!-- IF MEMBERS -->
<form action="{S_GROUPCP_ACTION}" method="post" name="post">
@ -275,7 +275,7 @@
<!-- END releases -->
<tfoot>
<tr>
<td class="cat" colspan="9">&nbsp;</td>
<td class="cat" colspan="9" align="center"><b><a href="{U_SEARCH_RELEASES}">{L_MORE_RELEASES}</a></b></td>
</tr>
</tfoot>
</table>

View file

@ -266,6 +266,12 @@ $(function(){
<p class="input"><input style="width: 40%" <!-- IF POSTER_ERROR -->style="color: red"<!-- ELSE --> class="post"<!-- ENDIF --> type="text" size="16" maxlength="{POSTER_NAME_MAX}" name="{POSTER_NAME_NAME}" value="{POSTER_NAME_VAL}" /> <input style="width: 40%;" type="button" value="{L_FIND_USERNAME}" onclick="window.open('{U_SEARCH_USER}', '_bbsearch', 'HEIGHT=250,resizable=yes,WIDTH=400'); return false;" /></p>
</div>
</fieldset>
<fieldset>
<legend>{L_GROUPS_RELEASES}</legend>
<div>
<p class="select">{S_RG_SELECT}</p>
</div>
</fieldset>
<fieldset>
<legend>{L_TITLE_MATCH}</legend>
<div>

View file

@ -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,