<?
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');
?>