mirror of
https://github.com/torrentpier/torrentpier
synced 2025-08-21 22:03:49 -07:00
R594
+ Добавлены релизы группы на страницу группы + Исправлена проблема спойлера с названием Signed-off-by: Dark Nightmare <gtdarknightmare@gmail.com>
This commit is contained in:
parent
5c355fd027
commit
8691ad0751
6 changed files with 228 additions and 114 deletions
|
@ -25,7 +25,7 @@ switch ($mode)
|
|||
case 'group_name':
|
||||
case 'group_signature':
|
||||
case 'group_description':
|
||||
$value = htmlCHR($value);
|
||||
$value = htmlCHR($value, false, ENT_NOQUOTES);
|
||||
$this->response['new_value'] = $value;
|
||||
break;
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ function generate_user_info(&$row, $date_format, $group_mod, &$from, &$posts, &$
|
|||
$user_time = ( !empty($row['user_time']) ) ? bb_date($row['user_time']) : $lang['NONE'];
|
||||
$posts = ( $row['user_posts'] ) ? $row['user_posts'] : 0;
|
||||
$pm = ($bb_cfg['text_buttons']) ? '<a class="txtb" href="'. (PM_URL . "?mode=post&". POST_USERS_URL ."=".$row['user_id']) .'">'. $lang['SEND_PM_TXTB'] .'</a>' : '<a href="' . (PM_URL . "?mode=post&". POST_USERS_URL ."=".$row['user_id']) .'"><img src="' . $images['icon_pm'] . '" alt="' . $lang['SEND_PRIVATE_MESSAGE'] . '" title="' . $lang['SEND_PRIVATE_MESSAGE'] . '" border="0" /></a>';
|
||||
$avatar = get_avatar($row['user_id'], $row['avatar_ext_id'], !bf($row['user_opt'], 'user_opt', 'dis_avatar'), true, 50, 50);
|
||||
$avatar = get_avatar($row['user_id'], $row['avatar_ext_id'], !bf($row['user_opt'], 'user_opt', 'dis_avatar'), 50, 50);
|
||||
|
||||
if (bf($row['user_opt'], 'user_opt', 'user_viewemail') || $group_mod)
|
||||
{
|
||||
|
@ -47,6 +47,7 @@ set_die_append_msg();
|
|||
$group_id = isset($_REQUEST[POST_GROUPS_URL]) ? intval($_REQUEST[POST_GROUPS_URL]) : null;
|
||||
$start = isset($_REQUEST['start']) ? abs(intval($_REQUEST['start'])) : 0;
|
||||
$per_page = $bb_cfg['groupcp_members_per_page'];
|
||||
$view_mode = isset($_REQUEST['view']) ? $_REQUEST['view'] : null;
|
||||
|
||||
$group_info = array();
|
||||
$is_moderator = false;
|
||||
|
@ -380,51 +381,6 @@ else
|
|||
WHERE user_id = ". $group_info['group_moderator'] ."
|
||||
");
|
||||
|
||||
// Members
|
||||
$count_members = DB()->fetch_rowset("
|
||||
SELECT u.username, u.user_rank, u.user_id, u.user_opt, u.user_posts, u.user_regdate, u.user_from, u.user_website, u.user_email, ug.user_pending, ug.user_time
|
||||
FROM ". BB_USER_GROUP ." ug, ". BB_USERS ." u
|
||||
WHERE ug.group_id = $group_id
|
||||
AND ug.user_pending = 0
|
||||
AND ug.user_id <> ". $group_moderator['user_id'] ."
|
||||
AND u.user_id = ug.user_id
|
||||
ORDER BY u.username
|
||||
");
|
||||
$count_members = count($count_members);
|
||||
|
||||
// Get user information for this group
|
||||
$modgroup_pending_count = 0;
|
||||
|
||||
// Members
|
||||
$group_members = DB()->fetch_rowset("
|
||||
SELECT u.username, u.avatar_ext_id, u.user_rank, u.user_id, u.user_opt, u.user_posts, u.user_regdate, u.user_from, u.user_website, u.user_email, ug.user_pending, ug.user_time
|
||||
FROM ". BB_USER_GROUP ." ug, ". BB_USERS ." u
|
||||
WHERE ug.group_id = $group_id
|
||||
AND ug.user_pending = 0
|
||||
AND ug.user_id <> ". $group_moderator['user_id'] ."
|
||||
AND u.user_id = ug.user_id
|
||||
ORDER BY u.username
|
||||
LIMIT $start, $per_page
|
||||
");
|
||||
$members_count = count($group_members);
|
||||
|
||||
generate_pagination(GROUP_URL . $group_id, $count_members, $per_page, $start);
|
||||
|
||||
// Pending
|
||||
if ($is_moderator)
|
||||
{
|
||||
$modgroup_pending_list = DB()->fetch_rowset("
|
||||
SELECT u.username, u.avatar_ext_id, u.user_rank, u.user_id, u.user_opt, u.user_posts, u.user_regdate, u.user_from, u.user_website, u.user_email
|
||||
FROM ". BB_USER_GROUP ." ug, ". BB_USERS ." u
|
||||
WHERE ug.group_id = $group_id
|
||||
AND ug.user_pending = 1
|
||||
AND u.user_id = ug.user_id
|
||||
ORDER BY u.username
|
||||
LIMIT 200
|
||||
");
|
||||
$modgroup_pending_count = count($modgroup_pending_list);
|
||||
}
|
||||
|
||||
// Current user membership
|
||||
$is_group_member = $is_group_pending_member = false;
|
||||
|
||||
|
@ -527,6 +483,9 @@ else
|
|||
'MOD_TIME' => (!empty($group_info['mod_time'])) ? bb_date($group_info['mod_time']) : $lang['NONE'],
|
||||
'U_SEARCH_USER' => "search.php?mode=searchuser",
|
||||
|
||||
'U_GROUP_RELEASES' => "groupcp.php?view=releases&". POST_GROUPS_URL ."=$group_id",
|
||||
'U_GROUP_MEMBERS' => "groupcp.php?view=members&". POST_GROUPS_URL ."=$group_id",
|
||||
|
||||
'U_GROUP_CONFIG' => "group_config.php?g=$group_id",
|
||||
'RELEASE_GROUP' => ($group_info['release_group']) ? true : false,
|
||||
'GROUP_TYPE' => $group_type,
|
||||
|
@ -543,84 +502,189 @@ else
|
|||
'S_GROUPCP_ACTION' => "groupcp.php?" . POST_GROUPS_URL . "=$group_id",
|
||||
));
|
||||
|
||||
// Dump out the remaining users
|
||||
foreach ($group_members as $i => $member)
|
||||
{
|
||||
$user_id = $member['user_id'];
|
||||
switch($view_mode)
|
||||
{
|
||||
case 'releases':
|
||||
|
||||
generate_user_info($member, $bb_cfg['default_dateformat'], $is_moderator, $from, $posts, $joined, $pm, $email, $www, $user_time, $avatar);
|
||||
// TODO Correct SQL to posts with attach and limit them, optimization
|
||||
|
||||
if ($group_info['group_type'] != GROUP_HIDDEN || $is_group_member || $is_moderator)
|
||||
{
|
||||
$row_class = !($i % 2) ? 'row1' : 'row2';
|
||||
// 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
|
||||
FROM ". BB_POSTS ." p
|
||||
LEFT JOIN ". BB_TOPICS ." t ON(p.topic_id = t.topic_id)
|
||||
LEFT JOIN ". BB_FORUMS ." f ON(p.forum_id= f.forum_id)
|
||||
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
|
||||
");
|
||||
|
||||
$template->assign_block_vars('member', array(
|
||||
'ROW_NUMBER' => $i + ( $start + 1 ),
|
||||
'ROW_CLASS' => $row_class,
|
||||
'USER' => profile_url($member),
|
||||
'AVATAR_IMG' => $avatar,
|
||||
'FROM' => $from,
|
||||
'JOINED' => $joined,
|
||||
'POSTS' => $posts,
|
||||
'USER_ID' => $user_id,
|
||||
'PM' => $pm,
|
||||
'EMAIL' => $email,
|
||||
'WWW' => $www,
|
||||
'TIME' => $user_time,
|
||||
));
|
||||
$count_releases = count($all_releases);
|
||||
|
||||
if ($is_moderator)
|
||||
{
|
||||
$template->assign_block_vars('member.switch_mod_option', array());
|
||||
}
|
||||
}
|
||||
}
|
||||
generate_pagination(GROUP_URL . $group_id ."&view=releases", $count_releases, $per_page, $start);
|
||||
|
||||
// No group members
|
||||
if (!$members_count)
|
||||
{
|
||||
$template->assign_block_vars('switch_no_members', array());
|
||||
}
|
||||
$sql = "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
|
||||
FROM ". BB_POSTS ." p
|
||||
LEFT JOIN ". BB_TOPICS ." t ON(p.topic_id = t.topic_id)
|
||||
LEFT JOIN ". BB_FORUMS ." f ON(p.forum_id= f.forum_id)
|
||||
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 $start, $per_page";
|
||||
|
||||
// No group members
|
||||
if ($group_info['group_type'] == GROUP_HIDDEN && !$is_group_member && !$is_moderator)
|
||||
{
|
||||
$template->assign_block_vars('switch_hidden_group', array());
|
||||
}
|
||||
if (!$releases = DB()->fetch_rowset($sql))
|
||||
{
|
||||
bb_die('Could not get releases data');
|
||||
}
|
||||
|
||||
//
|
||||
// We've displayed the members who belong to the group, now we
|
||||
// do that pending memebers...
|
||||
//
|
||||
if ($is_moderator && $modgroup_pending_list)
|
||||
{
|
||||
foreach ($modgroup_pending_list as $i => $member)
|
||||
{
|
||||
$user_id = $member['user_id'];
|
||||
foreach ($releases as $i => $release)
|
||||
{
|
||||
$row_class = !($i % 2) ? 'row1' : 'row2';
|
||||
|
||||
generate_user_info($member, $bb_cfg['default_dateformat'], $is_moderator, $from, $posts, $joined, $pm, $email, $www, $user_time, $avatar);
|
||||
$template->assign_block_vars('releases', array(
|
||||
'ROW_NUMBER' => $i + ( $start + 1 ),
|
||||
'ROW_CLASS' => $row_class,
|
||||
'RELEASER' => profile_url(array('user_id' => $release['poster_id'], 'username' => $release['username'], 'user_rank' => $release['user_rank'])),
|
||||
'AVATAR_IMG' => get_avatar($release['poster_id'], $release['avatar_ext_id'], !bf($release['user_opt'], 'user_opt', 'dis_avatar'), 50, 50),
|
||||
'RELEASE_NAME' => sprintf('<a href="%s">%s</a>', TOPIC_URL . $release['topic_id'], htmlCHR($release['topic_title'])),
|
||||
'RELEASE_TIME' => bb_date($release['topic_time']),
|
||||
'RELEASE_FORUM' => sprintf('<a href="%s">%s</a>', FORUM_URL . $release['forum_id'], htmlCHR($release['forum_name'])),
|
||||
));
|
||||
}
|
||||
|
||||
$row_class = !($i % 2) ? 'row1' : 'row2';
|
||||
$template->assign_vars(array('RELEASES' => true));
|
||||
|
||||
$user_select = '<input type="checkbox" name="member[]" value="'. $user_id .'">';
|
||||
break;
|
||||
case 'members':
|
||||
default:
|
||||
|
||||
$template->assign_block_vars('pending', array(
|
||||
'ROW_CLASS' => $row_class,
|
||||
'AVATAR_IMG'=> $avatar,
|
||||
'USER' => profile_url($member),
|
||||
'FROM' => $from,
|
||||
'JOINED' => $joined,
|
||||
'POSTS' => $posts,
|
||||
'USER_ID' => $user_id,
|
||||
'PM' => $pm,
|
||||
'EMAIL' => $email,
|
||||
));
|
||||
}
|
||||
// Members
|
||||
$count_members = DB()->fetch_rowset("
|
||||
SELECT u.username, u.user_rank, u.user_id, u.user_opt, u.user_posts, u.user_regdate, u.user_from, u.user_website, u.user_email, ug.user_pending, ug.user_time
|
||||
FROM ". BB_USER_GROUP ." ug, ". BB_USERS ." u
|
||||
WHERE ug.group_id = $group_id
|
||||
AND ug.user_pending = 0
|
||||
AND ug.user_id <> ". $group_moderator['user_id'] ."
|
||||
AND u.user_id = ug.user_id
|
||||
ORDER BY u.username
|
||||
");
|
||||
$count_members = count($count_members);
|
||||
|
||||
$template->assign_vars(array(
|
||||
'PENDING_USERS' => true,
|
||||
));
|
||||
}
|
||||
// Get user information for this group
|
||||
$modgroup_pending_count = 0;
|
||||
|
||||
// Members
|
||||
$group_members = DB()->fetch_rowset("
|
||||
SELECT u.username, u.avatar_ext_id, u.user_rank, u.user_id, u.user_opt, u.user_posts, u.user_regdate, u.user_from, u.user_website, u.user_email, ug.user_pending, ug.user_time
|
||||
FROM ". BB_USER_GROUP ." ug, ". BB_USERS ." u
|
||||
WHERE ug.group_id = $group_id
|
||||
AND ug.user_pending = 0
|
||||
AND ug.user_id <> ". $group_moderator['user_id'] ."
|
||||
AND u.user_id = ug.user_id
|
||||
ORDER BY u.username
|
||||
LIMIT $start, $per_page
|
||||
");
|
||||
$members_count = count($group_members);
|
||||
|
||||
generate_pagination(GROUP_URL . $group_id, $count_members, $per_page, $start);
|
||||
|
||||
// Dump out the remaining users
|
||||
foreach ($group_members as $i => $member)
|
||||
{
|
||||
$user_id = $member['user_id'];
|
||||
|
||||
generate_user_info($member, $bb_cfg['default_dateformat'], $is_moderator, $from, $posts, $joined, $pm, $email, $www, $user_time, $avatar);
|
||||
|
||||
if ($group_info['group_type'] != GROUP_HIDDEN || $is_group_member || $is_moderator)
|
||||
{
|
||||
$row_class = !($i % 2) ? 'row1' : 'row2';
|
||||
|
||||
$template->assign_block_vars('member', array(
|
||||
'ROW_NUMBER' => $i + ( $start + 1 ),
|
||||
'ROW_CLASS' => $row_class,
|
||||
'USER' => profile_url($member),
|
||||
'AVATAR_IMG' => $avatar,
|
||||
'FROM' => $from,
|
||||
'JOINED' => $joined,
|
||||
'POSTS' => $posts,
|
||||
'USER_ID' => $user_id,
|
||||
'PM' => $pm,
|
||||
'EMAIL' => $email,
|
||||
'WWW' => $www,
|
||||
'TIME' => $user_time,
|
||||
));
|
||||
|
||||
if ($is_moderator)
|
||||
{
|
||||
$template->assign_block_vars('member.switch_mod_option', array());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// No group members
|
||||
if (!$members_count)
|
||||
{
|
||||
$template->assign_block_vars('switch_no_members', array());
|
||||
}
|
||||
|
||||
// No group members
|
||||
if ($group_info['group_type'] == GROUP_HIDDEN && !$is_group_member && !$is_moderator)
|
||||
{
|
||||
$template->assign_block_vars('switch_hidden_group', array());
|
||||
}
|
||||
|
||||
//
|
||||
// We've displayed the members who belong to the group, now we
|
||||
// do that pending memebers...
|
||||
//
|
||||
|
||||
// Pending
|
||||
if ($is_moderator)
|
||||
{
|
||||
$modgroup_pending_list = DB()->fetch_rowset("
|
||||
SELECT u.username, u.avatar_ext_id, u.user_rank, u.user_id, u.user_opt, u.user_posts, u.user_regdate, u.user_from, u.user_website, u.user_email
|
||||
FROM ". BB_USER_GROUP ." ug, ". BB_USERS ." u
|
||||
WHERE ug.group_id = $group_id
|
||||
AND ug.user_pending = 1
|
||||
AND u.user_id = ug.user_id
|
||||
ORDER BY u.username
|
||||
LIMIT 200
|
||||
");
|
||||
$modgroup_pending_count = count($modgroup_pending_list);
|
||||
}
|
||||
|
||||
if ($is_moderator && $modgroup_pending_list)
|
||||
{
|
||||
foreach ($modgroup_pending_list as $i => $member)
|
||||
{
|
||||
$user_id = $member['user_id'];
|
||||
|
||||
generate_user_info($member, $bb_cfg['default_dateformat'], $is_moderator, $from, $posts, $joined, $pm, $email, $www, $user_time, $avatar);
|
||||
|
||||
$row_class = !($i % 2) ? 'row1' : 'row2';
|
||||
|
||||
$user_select = '<input type="checkbox" name="member[]" value="'. $user_id .'">';
|
||||
|
||||
$template->assign_block_vars('pending', array(
|
||||
'ROW_CLASS' => $row_class,
|
||||
'AVATAR_IMG'=> $avatar,
|
||||
'USER' => profile_url($member),
|
||||
'FROM' => $from,
|
||||
'JOINED' => $joined,
|
||||
'POSTS' => $posts,
|
||||
'USER_ID' => $user_id,
|
||||
'PM' => $pm,
|
||||
'EMAIL' => $email,
|
||||
));
|
||||
}
|
||||
|
||||
$template->assign_vars(array(
|
||||
'PENDING_USERS' => true,
|
||||
));
|
||||
}
|
||||
|
||||
$template->assign_vars(array('MEMBERS' => true));
|
||||
}
|
||||
|
||||
if ($is_moderator)
|
||||
{
|
||||
|
|
|
@ -778,6 +778,7 @@ $lang['POST_RELEASE_FROM_GROUP'] = 'Post release from group';
|
|||
$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';
|
||||
|
||||
//
|
||||
// Search
|
||||
|
|
|
@ -778,6 +778,7 @@ $lang['POST_RELEASE_FROM_GROUP'] = 'Создать релиз от группы'
|
|||
$lang['CHOOSE_RELEASE_GROUP'] = 'Выбрать релиз группу';
|
||||
$lang['ATTACH_RG_SIG'] = 'Добавить подпись релиз группы';
|
||||
$lang['RELEASE_FROM_RG'] = 'Релиз подготовлен';
|
||||
$lang['GROUPS_RELEASES'] = 'Релизы группы';
|
||||
|
||||
//
|
||||
// Search
|
||||
|
|
|
@ -778,6 +778,7 @@ $lang['POST_RELEASE_FROM_GROUP'] = 'Создать релиз от группы'
|
|||
$lang['CHOOSE_RELEASE_GROUP'] = 'Выбрать релиз группу';
|
||||
$lang['ATTACH_RG_SIG'] = 'Добавить подпись релиз группы';
|
||||
$lang['RELEASE_FROM_RG'] = 'Релиз подготовлен';
|
||||
$lang['GROUPS_RELEASES'] = 'Релизы групи';
|
||||
|
||||
//
|
||||
// Search
|
||||
|
|
|
@ -93,12 +93,15 @@
|
|||
<td><a href="{U_GROUP_CONFIG}">{L_GROUP_GOTO_CONFIG}</a></td>
|
||||
</tr>
|
||||
<!-- END switch_mod_option -->
|
||||
|
||||
</table>
|
||||
|
||||
</form>
|
||||
|
||||
<div class="spacer_10"></div>
|
||||
<p class="nav"><a href="{U_GROUP_MEMBERS}" name="members">{L_GROUP_MEMBERS}</a> :: <a href="{U_GROUP_RELEASES}" name="releases">{L_GROUPS_RELEASES}</a></p>
|
||||
|
||||
<!-- IF MEMBERS -->
|
||||
<form action="{S_GROUPCP_ACTION}" method="post" name="post">
|
||||
{S_HIDDEN_FIELDS}
|
||||
|
||||
|
@ -243,6 +246,50 @@
|
|||
<!-- ENDIF / PENDING_USERS -->
|
||||
|
||||
</form>
|
||||
<!-- ENDIF / MEMBERS -->
|
||||
|
||||
<!-- IF RELEASES -->
|
||||
<table class="forumline tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="{sorter: false}" ><b class="tbs-text">#</b></th>
|
||||
<th class="{sorter: false}" ><b class="tbs-text">{L_AVATAR}</b></th>
|
||||
<th class="{sorter: 'text'}" ><b class="tbs-text">{L_USERNAME}</b></th>
|
||||
<th class="{sorter: 'text'}" ><b class="tbs-text">{L_TOPIC}</b></th>
|
||||
<th class="{sorter: 'text'}" ><b class="tbs-text">{L_FORUM}</b></th>
|
||||
<th class="{sorter: 'digit'}" width="3%"><b class="tbs-text">{L_BT_CREATED}</b></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="catTitle" colspan="9">{L_GROUPS_RELEASES}</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<!-- BEGIN releases -->
|
||||
<tr class="{releases.ROW_CLASS} tCenter">
|
||||
<td width="3%">{releases.ROW_NUMBER}</td>
|
||||
<td width="3%">{releases.AVATAR_IMG}</td>
|
||||
<td><b>{releases.RELEASER}</b></td>
|
||||
<td>{releases.RELEASE_NAME}</td>
|
||||
<td>{releases.RELEASE_FORUM}</td>
|
||||
<td>{releases.RELEASE_TIME}</td>
|
||||
</tr>
|
||||
<!-- END releases -->
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td class="cat" colspan="9"> </td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
|
||||
<div class="bottom_info">
|
||||
|
||||
<div class="nav">
|
||||
<p style="float: left">{PAGE_NUMBER}</p>
|
||||
<p style="float: right">{PAGINATION}</p>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- ENDIF / RELEASES -->
|
||||
|
||||
<!--========================================================================-->
|
||||
<!-- ENDIF / GROUP_INFO -->
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue