All pastes #97264 Raw Edit

Unnamed

public text v1 · immutable
#97264 ·published 2006-07-23 14:42 UTC
rendered paste body
<?php
/***************************************************************************
 *                            functions_mg_ranks.php
 *                            ---------------------
 *   begin                : 2005/08/31
 *   copyright            : Mighty Gorgon (Luca Libralato)
 *   website              : http://www.mightygorgon.com
 *   email                : mightygorgon@mightygorgon.com
 *   version              : 1.1.0
 *
 *
 ***************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 ***************************************************************************/


function query_ranks()
{
	global $db;

	$sql = "SELECT ban_userid
		FROM " . BANLIST_TABLE . "
		ORDER BY ban_userid ASC";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, "Could not obtain banned users information.", '', __LINE__, __FILE__, $sql);
	}
	
		$ranks_sql = array();
	/*
	while ($row = $db->sql_fetchrow($result) )
	{
		$ranks_sql['bannedrow'][] = $row;
	}
	*/
	//$ranks_sql['bannedrow'][] = $db->sql->fetchrowset($result);
	ranks_sql['bannedrow'][] = $db->sql_fetchrowset($result);
	$db->sql_freeresult($result);

	$sql = "SELECT *
		FROM " . RANKS_TABLE . "
		ORDER BY rank_special ASC, rank_min ASC";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, "Could not obtain ranks information.", '', __LINE__, __FILE__, $sql);
	}

	while ($row = $db->sql_fetchrow($result) )
	{
		$ranks_sql['ranksrow'][] = $row;
	}
	//$ranks_sql['ranksrow'][] = $db->sql->fetchrowset($result);
	$db->sql_freeresult($result);

	return $ranks_sql;
}


function generate_ranks($user_row, $ranks_sql)
{
	$user_fields_array = array(
		'user_rank',
		'user_rank2',
		'user_rank3',
		'user_rank4',
		'user_rank5'
	);
	$user_ranks_array = array(
		'rank_01', 'rank_01_img',
		'rank_02', 'rank_02_img',
		'rank_03', 'rank_03_img',
		'rank_04', 'rank_04_img',
		'rank_05', 'rank_05_img',
	);
	$user_ranks = array();
	
	$is_banned = false;
	$is_guest = false;
	$rank_sw = false;

	for($j = 0; $j < count($user_ranks_array); $j++)
	{
		$user_ranks[$user_ranks_array[$j]] = '';
	}

	if ( $user_row['user_id'] == '-1' )
	{
		$is_guest = true;
	}

	if ($is_guest == false)
	{
		for($j = 0; $j < count($ranks_sql['bannedrow']); $j++)
		{
			if ( $ranks_sql['bannedrow'][$j]['ban_userid'] == $user_row['user_id'] )
			{
				$is_banned = true;
			}
		}
	}

	for($j = 0; $j < count($ranks_sql['ranksrow']); $j++)
	{
		$rank_tmp = $ranks_sql['ranksrow'][$j]['rank_title'];
		$rank_img_tmp = ( $ranks_sql['ranksrow'][$j]['rank_image'] ) ? '<img src="' . $ranks_sql['ranksrow'][$j]['rank_image'] . '" alt="' . $ranks_tmp . '" title="' . $ranks_tmp . '" border="0" />' : '';
		if ($is_guest == true)
		{
			if ($ranks_sql['ranksrow'][$j]['rank_special'] == '2')
			{
				$user_ranks['rank_01'] = $rank_tmp;
				$user_ranks['rank_01_img'] = $rank_img_tmp;
			}
		}
		elseif ($is_banned == true)
		{
			if ($ranks_sql['ranksrow'][$j]['rank_special'] == '3')
			{
				$user_ranks['rank_01'] = $rank_tmp;
				$user_ranks['rank_01_img'] = $rank_img_tmp;
			}
		}
		else
		{
			$day_diff = intval( (time() - $user_row['user_regdate']) / 86400 );

			for($k = 0; $k < count($user_fields_array); $k++)
			{
				switch ($ranks_sql['ranksrow'][$j]['rank_special'])
				{
					case '1':
						if ($user_row[$user_fields_array[$k]] == $ranks_sql['ranksrow'][$j]['rank_id'])
						{
							$rank_sw = true;
						}
						break;
					case '0':
						if (($user_row[$user_fields_array[$k]] == '0') && ($user_row['user_posts'] >= $ranks_sql['ranksrow'][$j]['rank_min']))
						{
							$rank_sw = true;
						}
						break;
					case '-1':
						if (($user_row[$user_fields_array[$k]] == '-1') && ($day_diff >= $ranks_sql['ranksrow'][$j]['rank_min']))
						{
							$rank_sw = true;
						}
						break;
					default:
						break;
				}

				if ($rank_sw == true)
				{
					$user_ranks[$user_ranks_array[(($k + 1) * 2) - 2]] = $rank_tmp;
					$user_ranks[$user_ranks_array[(($k + 1) * 2) - 1]] = $rank_img_tmp;
					$rank_sw = false;
				}
			}

		}
	}

	return $user_ranks;
}

?>