<?php
/** 
*
* @package acp
* @version $Id$
* @copyright (c) 2005 phpBB Group 
* @license http://opensource.org/licenses/gpl-license.php GNU Public License 
*
*/

/**
* @package acp
*/
class acp_ranks
{
	var $u_action;

	function main($id, $mode)
	{
		global $db, $user, $auth, $template, $cache;
		global $config, $phpbb_root_path, $phpbb_admin_path, $phpEx;

		$user->add_lang('acp/posting');

		// Set up general vars
		$action = request_var('action', '');
		$action = (isset($_POST['add'])) ? 'add' : $action;
		$action = (isset($_POST['save'])) ? 'save' : $action;
		$rank_id = request_var('id', 0);

		$this->tpl_name = 'acp_ranks';
		$this->page_title = 'ACP_MANAGE_RANKS';

		switch ($action)
		{
			case 'save':
				
				$rank_title = request_var('title', '', true);
				$special_rank = request_var('special_rank', 0);
				$min_posts = ($special_rank) ? 0 : request_var('min_posts', 0);
				$rank_image = request_var('rank_image', '');

				// The rank image has to be a jpg, gif or png
				if ($rank_image != '' && !preg_match('#(\.gif|\.png|\.jpg|\.jpeg)$#i', $rank_image))
				{
					$rank_image = '';
				}

				if (!$rank_title)
				{
					trigger_error($user->lang['NO_RANK_TITLE'] . adm_back_link($this->u_action), E_USER_WARNING);
				}

				$sql_ary = array(
					'rank_title'		=> $rank_title,
					'rank_special'		=> $special_rank,
					'rank_min'			=> $min_posts,
					'rank_image'		=> htmlspecialchars_decode($rank_image)
				);
				
				if ($rank_id)
				{
					$sql = 'UPDATE ' . RANKS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . " WHERE rank_id = $rank_id";
					$message = $user->lang['RANK_UPDATED'];

					add_log('admin', 'LOG_RANK_UPDATED', $rank_title);
				}
				else
				{
					$sql = 'INSERT INTO ' . RANKS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary);
					$message = $user->lang['RANK_ADDED'];

					add_log('admin', 'LOG_RANK_ADDED', $rank_title);
				}
				$db->sql_query($sql);

				$cache->destroy('ranks');

				trigger_error($message . adm_back_link($this->u_action));

			break;

			case 'delete':

				if (!$rank_id)
				{
					trigger_error($user->lang['MUST_SELECT_RANK'] . adm_back_link($this->u_action), E_USER_WARNING);
				}

				if (confirm_box(true))
				{
					$sql = 'SELECT rank_title
						FROM ' . RANKS_TABLE . '
						WHERE rank_id = ' . $rank_id;
					$result = $db->sql_query($sql);
					$rank_title = (string) $db->sql_fetchfield('rank_title');
					$db->sql_freeresult($result);

					$sql = 'DELETE FROM ' . RANKS_TABLE . "
						WHERE rank_id = $rank_id";
					$db->sql_query($sql);

					$sql = 'UPDATE ' . USERS_TABLE . "
						SET user_rank = 0
						WHERE user_rank = $rank_id";
					$db->sql_query($sql);

					$cache->destroy('ranks');

					add_log('admin', 'LOG_RANK_REMOVED', $rank_title);
				}
				else
				{
					confirm_box(false, $user->lang['CONFIRM_OPERATION'], build_hidden_fields(array(
						'i'			=> $id,
						'mode'		=> $mode,
						'rank_id'	=> $rank_id,
						'action'	=> 'delete',
					)));
				}

			break;

			case 'edit':
			case 'add':

				$data = $ranks = $existing_imgs = array();
				
				$sql = 'SELECT * 
					FROM ' . RANKS_TABLE . ' 
					ORDER BY rank_min ASC, rank_special ASC';
				$result = $db->sql_query($sql);

				while ($row = $db->sql_fetchrow($result))
				{
					$existing_imgs[] = $row['rank_image'];

					if ($action == 'edit' && $rank_id == $row['rank_id'])
					{
						$ranks = $row;
					}
				}
				$db->sql_freeresult($result);

				$imglist = filelist($phpbb_root_path . $config['ranks_path'], '');

				$edit_img = $filename_list = '';

				foreach ($imglist as $path => $img_ary)
				{
					foreach ($img_ary as $img)
					{
						$img = $path . $img; 

						if (!in_array($img, $existing_imgs) || $action == 'edit')
						{
							if ($ranks && $img == $ranks['rank_image'])
							{
								$selected = ' selected="selected"';
								$edit_img = $img;
							}
							else
							{
								$selected = '';
							}

							if (strlen($img) > 255)
							{
								continue;
							}

							$filename_list .= '<option value="' . htmlspecialchars($img) . '"' . $selected . '>' . $img . '</option>';
						}
					}
				}

				$filename_list = '<option value=""' . (($edit_img == '') ? ' selected="selected"' : '') . '>----------</option>' . $filename_list;
				unset($existing_imgs, $imglist);

				$template->assign_vars(array(
					'S_EDIT'			=> true,
					'U_BACK'			=> $this->u_action,
					'RANKS_PATH'		=> $phpbb_root_path . $config['ranks_path'],
					'U_ACTION'			=> $this->u_action . '&amp;id=' . $rank_id,

					'RANK_TITLE'		=> (isset($ranks['rank_title'])) ? $ranks['rank_title'] : '',
					'S_FILENAME_LIST'	=> $filename_list,
					'RANK_IMAGE'		=> ($edit_img) ? $phpbb_root_path . $config['ranks_path'] . '/' . $edit_img : $phpbb_admin_path . 'images/spacer.gif',
					'S_SPECIAL_RANK'	=> (!isset($ranks['rank_special']) || $ranks['rank_special']) ? true : false,
					'MIN_POSTS'			=> (isset($ranks['rank_min']) && !$ranks['rank_special']) ? $ranks['rank_min'] : 0)
				);
						

				return;

			break;
		}
	
		$template->assign_vars(array(
			'U_ACTION'		=> $this->u_action)
		);

		$sql = 'SELECT *
			FROM ' . RANKS_TABLE . '
			ORDER BY rank_min ASC, rank_special ASC, rank_title ASC';
		$result = $db->sql_query($sql);

		while ($row = $db->sql_fetchrow($result))
		{
			$template->assign_block_vars('ranks', array(
				'S_RANK_IMAGE'		=> ($row['rank_image']) ? true : false,
				'S_SPECIAL_RANK'	=> ($row['rank_special']) ? true : false,

				'RANK_IMAGE'		=> $phpbb_root_path . $config['ranks_path'] . '/' . $row['rank_image'],
				'RANK_TITLE'		=> $row['rank_title'],
				'MIN_POSTS'			=> $row['rank_min'],

				'U_EDIT'			=> $this->u_action . '&amp;action=edit&amp;id=' . $row['rank_id'],
				'U_DELETE'			=> $this->u_action . '&amp;action=delete&amp;id=' . $row['rank_id'])
			);	
		}
		$db->sql_freeresult($result);

	}
}

?>tion value='2'>2</option><option value='3' selected='selected'>3</option><option value='4'>4</option><option value='5'>5</option><option value='6'>6</option><option value='7'>7</option><option value='8'>8</option><option value='9'>9</option><option value='10'>10</option><option value='15'>15</option><option value='20'>20</option><option value='25'>25</option><option value='30'>30</option><option value='35'>35</option><option value='40'>40</option></select></td></tr><tr><td class='label'>space:</td><td class='ctrl'><select name='ignorews' onchange='this.form.submit();'><option value='0' selected='selected'>include</option><option value='1'>ignore</option></select></td></tr><tr><td class='label'>mode:</td><td class='ctrl'><select name='dt' onchange='this.form.submit();'><option value='0' selected='selected'>unified</option><option value='1'>ssdiff</option><option value='2'>stat only</option></select></td></tr><tr><td/><td class='ctrl'><noscript><input type='submit' value='reload'/></noscript></td></tr></table></form></div><table summary='commit info' class='commit-info'>
<tr><th>author</th><td>damien &lt;damien@mandriva.com&gt;</td><td class='right'>2001-03-06 00:08:45 +0000</td></tr>
<tr><th>committer</th><td>damien &lt;damien@mandriva.com&gt;</td><td class='right'>2001-03-06 00:08:45 +0000</td></tr>
<tr><th>commit</th><td colspan='2' class='sha1'><a href='/software/drakx-backup-do-not-use/commit/perl-install/c/sbus.c?h=ka9_0&amp;id=71bdad5f0093737b768ef324e61221de573a1fe2'>71bdad5f0093737b768ef324e61221de573a1fe2</a> (<a href='/software/drakx-backup-do-not-use/patch/perl-install/c/sbus.c?id=71bdad5f0093737b768ef324e61221de573a1fe2'>patch</a>)</td></tr>
<tr><th>tree</th><td colspan='2' class='sha1'><a href='/software/drakx-backup-do-not-use/tree/?h=ka9_0&amp;id=71bdad5f0093737b768ef324e61221de573a1fe2'>932122721a5544f15f20617d8d401b5c792d1935</a> /<a href='/software/drakx-backup-do-not-use/tree/perl-install/c/sbus.c?h=ka9_0&amp;id=71bdad5f0093737b768ef324e61221de573a1fe2'>perl-install/c/sbus.c</a></td></tr>
<tr><th>parent</th><td colspan='2' class='sha1'><a href='/software/drakx-backup-do-not-use/commit/perl-install/c/sbus.c?h=ka9_0&amp;id=88a93870fb290186a2745474f995db27c53b395d'>88a93870fb290186a2745474f995db27c53b395d</a> (<a href='/software/drakx-backup-do-not-use/diff/perl-install/c/sbus.c?h=ka9_0&amp;id=71bdad5f0093737b768ef324e61221de573a1fe2&amp;id2=88a93870fb290186a2745474f995db27c53b395d'>diff</a>)</td></tr><tr><th>download</th><td colspan='2' class='sha1'><a href='/software/drakx-backup-do-not-use/snapshot/drakx-backup-do-not-use-71bdad5f0093737b768ef324e61221de573a1fe2.tar'>drakx-backup-do-not-use-71bdad5f0093737b768ef324e61221de573a1fe2.tar</a><br/><a href='/software/drakx-backup-do-not-use/snapshot/drakx-backup-do-not-use-71bdad5f0093737b768ef324e61221de573a1fe2.tar.gz'>drakx-backup-do-not-use-71bdad5f0093737b768ef324e61221de573a1fe2.tar.gz</a><br/><a href='/software/drakx-backup-do-not-use/snapshot/drakx-backup-do-not-use-71bdad5f0093737b768ef324e61221de573a1fe2.tar.bz2'>drakx-backup-do-not-use-71bdad5f0093737b768ef324e61221de573a1fe2.tar.bz2</a><br/><a href='/software/drakx-backup-do-not-use/snapshot/drakx-backup-do-not-use-71bdad5f0093737b768ef324e61221de573a1fe2.tar.xz'>drakx-backup-do-not-use-71bdad5f0093737b768ef324e61221de573a1fe2.tar.xz</a><br/><a href='/software/drakx-backup-do-not-use/snapshot/drakx-backup-do-not-use-71bdad5f0093737b768ef324e61221de573a1fe2.zip'>drakx-backup-do-not-use-71bdad5f0093737b768ef324e61221de573a1fe2.zip</a><br/></td></tr></table>
<div class='commit-subject'>added setinhash</div><div class='commit-msg'></div><div class='diffstat-header'><a href='/software/drakx-backup-do-not-use/diff/?h=ka9_0&amp;id=71bdad5f0093737b768ef324e61221de573a1fe2'>Diffstat</a> (limited to 'perl-install/c/sbus.c')</div><table summary='diffstat' class='diffstat'></table><div class='diffstat-summary'>0 files changed, 0 insertions, 0 deletions</div><table summary='diff' class='diff'><tr><td></td></tr></table></div> <!-- class=content -->
<div class='footer'>generated by <a href='https://git.zx2c4.com/cgit/about/'>cgit v1.2.1</a> (<a href='https://git-scm.com/'>git 2.21.0</a>) at 2025-04-26 01:22:15 +0000</div>
</div> <!-- id=cgit -->
</body>
</html>