View file www/admin/partners/add.php

File size: 7.02Kb
<?
define("ADMIN_AUTHORIZATION",1);
include("../../../includes/common.php");

$table = "partners";

$id = trim($_GET['id']=="")?trim($_POST['id']):trim($_GET['id']);

$CheckObj=new TCheckForm;

//$res=pg_query($DB_LINK, );

/*getting row*/
if($id>0){
	$row = mysql_fetch_object(mysql_query("select * from $table where id=$id"));
	$login = $row->login;
	$stat = $row->status;
	$email = $row->email;
	$site_name = $row->site_name;
	$site_url = $row->site_url;
	$comission = $row->payout_perc*100;
	$amount = $row -> amount;
}
else{
	$id=-1;
}

/* generating fields */
$fields=Array();
if ($id>0) {
    $fields[id]=Array($id,'ID:');
}

$fields = Array_Merge($fields,Array(
	"login" => Array('<input type="text" size=40 class="text_input" >','Логин:',"Введите логин, пожалуйста."),
	"pass" => Array('<input type="password" size=40 class="text_input" >','Пароль:'),
	"pass_confirm" => Array('<input type="password" size=40 class="text_input" >','Подтверждение пароля:'),
	"email" => Array('<input type="text" size=40 class="text_input" >','E-mail:',"Введите e-mail, пожалуйста."),
	"site_name" => Array('<input type="text" size=40 class="text_input" >','Название сайта:',"Введите название сайта, пожалуйста."),
	"site_url" => Array('<input type="text" size=40 class="text_input" >','URL сайта:',"Введите URL сайта, пожалуйста."),
	"amount" => Array('<input type="text" size=40 class="text_input" >','Баланс:',"Укажите баланс, пожалуйста."),
	"comission" => Array('<input type="text" size=40 class="text_input" >','Комиссия, %:',"Укажите комиссию, пожалуйста."),
	"status" => Array('<select><option value="1">Активный<option value="0">Не активный</select>','Статус:','Укажите статус, пожалуйста.',"^0|1$")
));

if(isset($_POST['subm'])){
	reset ($_POST);
	while (list($key, $value) = each ($_POST)) {
		$$key = $value;
	}
	
	if (!(eregi("^[A-Za-z0-9_-]{5,15}$", $_POST['login'])))
	{	
		$error .= "Укажите корректное имя пользователя. Оно может содежрать только буквы
		латинского алфавита, цифры, знаки подчеркивания и тире, и быть длиной 
		5-15 символов<br>\n";
	}	
	elseif ($id>0)
	{
		$row = mysql_fetch_object(mysql_query("select id from partners where login='".addslashes($_POST['login'])."'"));
		//echo "ASDASD".$id;
		if (($row->id != '') && ($row->id != $id))
		{
			$error .= "Указанное имя пользователя уже существует.<br>\n";	
		}
	}	
	elseif ((@mysql_num_rows(mysql_query("select * from partners where login='".
					addslashes($_POST['login'])."'"))>0))
	{
		$error .= "Указанное имя пользователя уже существует.<br>\n";
	}
	
	$pass_edit = (($_POST['pass'] != '') && ($_POST['pass_comfirm'] != ''));
	
	if ($id>0)
	{
		if (!(($_POST['pass'] == '') && ($_POST['pass_confirm'] == '')))
		{
			if (!eregi("^.{5,25}$", $_POST['pass']))
			{
				$error .= "Длина пароля должна быть от 5 до 25 символов<br>\n";
			}
			elseif ($_POST['pass'] != $_POST['pass_confirm'])
			{
				$error .= "Введенные пароли не совпадают<br>\n";
			}
		}
	}
	else
	{
		if (!eregi("^.{5,25}$", $_POST['pass']))
		{
			$error .= "Длина пароля должна быть от 5 до 25 символов<br>\n";
		}
		elseif ($_POST['pass'] != $_POST['pass_confirm'])
		{
			$error .= "Введенные пароли не совпадают<br>\n";
		}
	}
	
	if (!ValidateEmail($_POST['email']))
	{	
		$error .= "Введенный E-mail некорректен<br>\n";
	}
	if ((trim($_POST['site_url']) == '')||(!eregi("^((http:\/\/)?(www\.)?([a-zA-Z0-9-])+(\.([a-zA-Z0-9-])+)*(\.([a-zA-Z0-9~\/])+)+)?$", trim($_POST['site_url']))))
	{
		$error .= "Введенный URL не корректен ";
	}
	
	if(!($_POST['status']==0||$_POST['status']==1)){
		$error .="Укажите статус, пожалуйста.<br>\n";
	}
	
	if ((!eregi("^[0-9]*\.?[0-9]*$", $_POST['comission'])) || ($_POST['comission'] > 99))
	{
		$error .= "Введите, пожалуйста корректную комиссию";
	}
	
	if (!eregi("^[-+]?[0-9]*\.?[0-9]*$", $_POST['amount']))
	{
		$error .= "Введите, пожалуйста корректный баланс";
	}
		
	if($error==""){
		$activation_code = $status?'':GenRandom(25);
		$query = "select id from currencies where upper(code)='USD'";
		$curr_row = mysql_fetch_object(mysql_query($query));
		
		
		$query = "INSERT INTO `$table` (`login` , `email` , `password` , 
		`site_name` , `site_url`, `reg_ip`, `activation_code`, `regdate`, 
		`currency_id`, `payout_perc`, `amount`, `status` ) 
		VALUES 
		('$login', '$email', '$pass', '$site_name', '$site_url', '$ip',
		 '$activation_code', '$regdate', '".$row->id."', '".round($comission/100,2).".', '0', '$status');";
		
		$arr = Array(
			"login" 			=> addslashes($login),
			"email" 			=> addslashes($email),
			"site_name"			=> addslashes($site_name),
			"site_url" 			=> addslashes($site_url),
			"currency_id"		=> intval($curr_row->id),
			"payout_perc"		=> round($comission / 100, 2),
			"status"			=> intval($status),
			"activation_code"	=> addslashes($activation_code)				
		);
		
		$balance_changed = false;
		if (0 >= $id) //add
		{
			$arr["password"] = md5($pass);
			if (0 != $amount)
			{
				$balance_changed = true;
			}
			else
			{
				$arr["amount"] = 0;
			}
		}
		else //edit
		{
			if ("" != $pass)
			{
				$arr["password"] = md5($pass);
			}
			$query = "select currency_id, amount from partners where id='$id'";
			$row = mysql_fetch_object(mysql_query($query));
			if ($amount != $row->amount)
			{
				$balance_changed = true;
			}
		}
		
		if(($id<0?($n_id=AddRecord($table,$arr,1)):UpdateRecord($table,$arr,$id)) )
		{
			if ($balance_changed)
			{
				if (0 < $id)
				{
					$row = mysql_fetch_object(mysql_query("
						SELECT * FROM partners WHERE id=$id"));
					$last_amount = $row->amount;
				}
				else
				{
					$last_amount = 0;
				}
				$transact_arr = array(
				'partner_id' => (0<$id)?$id:$n_id,
				'amount' => $amount - $last_amount,
				'currency_id' => $curr_row->id,
				'comments' => 'Изменение баланса администратором',
				'allow_recursion' => 0
					);
				MakePartnerTransaction($transact_arr);
			}
			
			$_SESSION['STATUS_MSG'] = "Информация успешно сохранена!";
			header("Location: ./index.php");
			exit;
		}
		else
		{
			$_SESSION['ERROR_MSG'] = "Ошибка при работе с базой данных.";
			header("Location: ./index.php");
			exit;
		}
	}
}	
$pass="";
$pass_confirm="";
foreach($fields as $key=>$value){
	$$key=htmlspecialchars(stripslashes($$key));
	$smarty->assign($key,$$key);
}

if ((0 >= $id) && (!isset($_POST['subm'])))
{
	$comission = $SETTINGS['partner_default_payout_perc']*100;
	$amount = 0;
	$site_url="http://";
}

/* smarty */
$smarty->assign('id',$id);

$page_title = $id>0?"Редактирование партнера":"Добавление нового партнера";
$smarty->assign('index_page','./index.php?l_pager');
$smarty->assign('page_title',$page_title);
$smarty->assign('top_menu_tpl',"admin_partners_menu.tpl");

$smarty->assign('error',$error);
$smarty->assign('status',$status);

/* table template */
$smarty->assign('fields',$fields);
$smarty->assign('table_width',"95%");
$smarty->assign('main_tpl',"admin_add_form.tpl");
/* display content */
$smarty->display('admin_index.tpl');

?>