Strona 1 z 1

Przerobienie pliku modu groups page

: 06 lipca 2013, 15:02
autor: sarusc
Witam proszę o przerobienie kodu tak aby mod wyświetlał tylko grupy w których jest użytkownik

Kod: Zaznacz cały

<?php
/**
*
* @package phpBB3
* @version $Id: groups_page.php,v 1.0.2 2010-03-03 09:20:00 EST rmcgirr83 $
* @copyright (c) Rich McGirr
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
* @ignore
*/
define('IN_PHPBB', true);


$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('groups');

// grab user count of groups
$sql = 'SELECT group_id
	FROM ' . USER_GROUP_TABLE . '
		WHERE user_pending = 0
			ORDER BY group_id';
$result = $db->sql_query($sql);

$groups_count = array();
while ($row = $db->sql_fetchrow($result))
{
	$groups_count[] = $row['group_id'];
}
$db->sql_freeresult($result);
$total_groups_count = sizeof($groups_count);

// now get the group(s) info
// you can add to the array if wanted 
// by adding the group name to ignore into the array
$groups_not_display = array('GUESTS');

// don't want coppa group?
if (!$config['coppa_enable'])
{
	$no_coppa = array('REGISTERED_COPPA');
	$groups_not_display = array_merge($groups_not_display, $no_coppa);
	
	//free up a bit 'o memory
	unset($no_coppa);
}

// what groups is the user a member of?
// this allows hidden groups to display
// only to users that are in the hidden group
$sql = 'SELECT group_id
	FROM ' . USER_GROUP_TABLE . '
	WHERE user_id = ' . (int) $user->data['user_id'] . ' 
	AND user_pending = 0';
$result = $db->sql_query($sql);
$in_group = $db->sql_fetchrowset($result);
$db->sql_freeresult($result);

// get the groups
$sql = 'SELECT g.*
			FROM ' . GROUPS_TABLE . ' g
			WHERE g.group_type <> ' . GROUP_HIDDEN .' AND g.group_id NOT IN (1, 2, 3, 6, 7)';
		$result = $db->sql_query($sql);

// we gots us some results ?
if ($row = $db->sql_fetchrow($result))
{
	do
	{
		if ($row['group_type'] == GROUP_HIDDEN && !$auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel') && !in_array($row['group_id'], $in_group[0]))
		{
			continue;
		}
		// how many users does the group have?
		if ($total_groups_count)
		{
			$user_count = 0;
			for ($i = 0; $i < $total_groups_count; $i++)
			{
	            if ($row['group_id'] == $groups_count[$i])
	            {
					$user_count++;
	            }
			}
		}
		// Grab rank information
		$ranks = $cache->obtain_ranks();
		
		$rank_title = $rank_img = $rank_img_src = '';
		if ($row['group_rank'])
		{
			if (isset($ranks['special'][$row['group_rank']]))
			{
				$rank_title = $ranks['special'][$row['group_rank']]['rank_title'];
			}
			$rank_img = (!empty($ranks['special'][$row['group_rank']]['rank_image'])) ? '<img src="' . $config['ranks_path'] . '/' . $ranks['special'][$row['group_rank']]['rank_image'] . '" alt="' . $ranks['special'][$row['group_rank']]['rank_title'] . '" title="' . $ranks['special'][$row['group_rank']]['rank_title'] . '" /><br />' : '';
			$rank_img_src = (!empty($ranks['special'][$row['group_rank']]['rank_image'])) ? $config['ranks_path'] . '/' . $ranks['special'][$row['group_rank']]['rank_image'] : '';
		}

		// open, closed, hidden blah blah blah
		switch ($row['group_type'])
		{
			case GROUP_OPEN:
				$row['l_group_type'] = 'OPEN';
			break;
				
			case GROUP_HIDDEN:
				$row['l_group_type'] = 'HIDDEN';
			break;
			
			case GROUP_CLOSED:
				$row['l_group_type'] = 'CLOSED';
			break;

			case GROUP_SPECIAL:
				$row['l_group_type'] = 'SPECIAL';
			break;

			case GROUP_FREE:
				$row['l_group_type'] = 'FREE';
			break;
		}

		// Misusing the avatar function for displaying group avatars...
		$avatar_img = get_user_avatar($row['group_avatar'], $row['group_avatar_type'], $row['group_avatar_width'], $row['group_avatar_height'], 'GROUP_AVATAR');		
		$group_name = ($row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $row['group_name']] : $row['group_name'];
		$u_group = append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=group&g=' . $row['group_id']);
		$s_bot_group = ($row['group_name'] == 'BOTS') ? true : false;

		$template->assign_block_vars('group_row', array(
			'GROUP_NAME'	=> $group_name,
			'GROUP_RANK'	=> $rank_title,
			'GROUP_DESC'	=> generate_text_for_display($row['group_desc'], $row['group_desc_uid'], $row['group_desc_bitfield'], $row['group_desc_options']),
			'GROUP_COLOR'	=> $row['group_colour'],
			'GROUP_TYPE'	=> $user->lang['GROUP_IS_' . $row['l_group_type']],
			'GROUP_COUNT'	=> number_format($user_count),
			'AVATAR_IMG'	=> $avatar_img,
			'RANK_TITLE'	=> $rank_title,
			'RANK_IMG'		=> $rank_img,
			'RANK_IMG_SRC'	=> $rank_img_src,			
			
			'S_BOT_GROUP'	=> $s_bot_group,
			'U_GROUP'		=> $u_group,
		));
	}
	while ($row = $db->sql_fetchrow($result));

	$db->sql_freeresult($result);
}

$page_title = $config['sitename'] . ' - ' . $user->lang['GROUPS'];
// Output the page
page_header($page_title);
	
$template->set_filenames(array(
	'body' => 'groups_page_body.html'
));
	
page_footer();

?>