<?
define("ADMIN_AUTHORIZATION",1);
include("../../../includes/common.php");
$table = "administrators";
$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"));
$name = $row->name;
$email=$row->email;
$login=$row->login;
$stat=$row->status;
}
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=20 class="text_input" maxlength=20>','Логин:',"Введите корректный логин.", '^[A-Za-z0-9_]{1,255}$'),
"pass" => Array('<input type="password" size=20 class="text_input" maxlength=20>','Пароль:'),
"c_pass" => Array('<input type="password" size=20 class="text_input" maxlength=20>','<nobr>Подтверждение пароля:</nobr>'),
"name" => Array('<input type="text" size=60 class="text_input">','Имя:','Введите имя, пожалуйста.'),
"email" => Array('<input type="text" size=60 class="text_input">','E-mail:','Введите корректный e-mail, пожалуйста.',$REG_EXP[email]),
"stat" => Array('<select><option value="1">Активный<option value="0">Не активный</select>','Статус:','Укажите статус, пожалуйста.',"^0|1$")
));
if($id>0){
$fields["custom_content"] = "<strong>Если Вы хотите оставить прежний пароль, оставьте поля для ввода паролей пустыми.</strong>";
}
if(isset($_POST['subm'])){
reset ($_POST);
while (list($key, $value) = each ($_POST)) {
$$key = $value;
}
$error = $CheckObj->LocalCheck();
if($_POST['pass']!=$_POST['c_pass']){
$error.="Введенные пароли не совпадают.<br>\n";
}
elseif($_POST['pass']!=""&&!eregi("^.{3,30}$",$_POST['pass'])){
$error .= "Пароль должен быть длиной от 3 до 20 символов.<br>\n";
}
$row = mysql_fetch_object(mysql_query("select * from $table where login='".addslashes($_POST['login'])."'".($id>0?" and id<>$id":"")));
if($row->id!=""){
$error .="Админмстратор с таким логином уже существует.<br>\n";
}
if (($stat==0)&&($ADMIN_ID==$id)) {
$_SESSION['ERROR_MSG'] = "Вы не можете удалить самого себя.";
header("Location: ./index.php?l_pager");
exit;
}
if($error==""){
$arr = Array(
"name" => addslashes($name),
"email" => addslashes($email),
"login" => addslashes($login),
"status" => $stat
);
if($id<0){
$arr["password"] = md5($pass);
}
elseif($pass!=""){
$arr["password"] = md5($pass);
}
if(($id<0?AddRecord($table,$arr):UpdateRecord($table,$arr,$id)) ){
$_SESSION['STATUS_MSG'] = "Информация успешно сохранена!";
header("Location: ./index.php");
exit;
}
else{
$_SESSION['ERROR_MSG'] = "Ошибка при работе с базой данных.";
header("Location: ./index.php");
exit;
}
}
}
$pass="";
$c_pass="";
foreach($fields as $key=>$value){
$$key=htmlspecialchars(stripslashes($$key));
$smarty->assign($key,$$key);
}
/* 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_admins_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');
?>