Exemplo n.º 1
0
function edit($s) {	
	$_SESSION['last_land_id'] = (isset($_SESSION['last_land_id'])) ? $_SESSION['last_land_id'] : -1;
	$id = intval($_REQUEST['id']);
	$land = new Land();
	$land->getFull($id);
	//загрузка дома	
	if (empty($_POST) && $land->id>0) {		
		if (isset($_SESSION["admin"])) $_SESSION['last_land_id'] = $id; 	
		if ($id!=$_SESSION['last_land_id'] && !$_SESSION['user_id'] && !$_SESSION["admin"]) {
			header("Location: /index.html");
			exit();
		}		
		if (isset($_SESSION['user_id']) && $land->user_id != $_SESSION['user_id'] && !$_SESSION["admin"] 
			&& $id!=$_SESSION['last_land_id']) {
			header("Location: /index.html");
			exit();
		}		
		$block_html = Html::pageLandEdit($land);
		$s->assign("YANDEX_KEY",YANDEX_KEY);
		
		$s->assign("city_id",$land->city_id);
		$s->assign("city",$land->city);				
		if (isset($_SESSION['admin'])) $s->assign("is_admin",$_SESSION['admin']);		
		$s->assign("block_html",$block_html);
		$s->display("land_edit.tpl");
	}
	//обновление
	elseif (isset($_POST) && $_REQUEST['id']>0) {
		$land = new Land();		
		$errors = $land->checkForm($_REQUEST);
		$id = intval($_REQUEST['id']);
		if ($id!=$_SESSION['last_land_id'] && !$_SESSION['user_id'] && !$_SESSION["admin"]) {
			header("Location: /index.html");
			exit();
		}
		if (!isset($_SESSION['user_id'])) {
			$land->getFull($id);
		}
		else {
			$land->getFull($id,"h.user_id='{$_SESSION['user_id']}'");
			if ($land->user_id != $_SESSION['user_id'] && !$_SESSION["admin"] && $id!=$_SESSION['last_land_id']) {
				header("Location: /index.html");
				exit();
			}
		}				
		if (!isset($errors['is_error']) && $land->id > 0) {						
			$land->update($_POST);
			$photo_land_path = $land->getPhotoPath();
			if (!is_dir($photo_land_path)) {			
				mkdir($photo_land_path,0777);
				chmod($photo_land_path,0777);						
			}
			//добавляем новые фото
			if (isset($_POST['photo_land']) && is_array($_POST['photo_land'])) {
				foreach ($_POST['photo_land'] as $fname) {
					$fname = clearTextData($fname);
					if ($fname!='') $land->addPhoto($fname,$_POST);
				}
			}
			//редактируем существующие фото
			if (isset($_POST['photo_land_exist']) && is_array($_POST['photo_land_exist'])) {
				foreach ($_POST['photo_land_exist'] as $fname) {
					$fname = clearTextData($fname);
					if ($fname!='') $land->editPhoto($fname,$_POST);
				}
			}			
			header("Location: /land.html?action=view&id=".$land->id);
			exit();
		}
		else {
			echo "error";
			$id = intval($_REQUEST['id']);			
			$land->getFull($id);				
			$block_html = Html::pageLandEdit($land,$errors);
			$s->assign("YANDEX_KEY",YANDEX_KEY);
			$s->assign("is_admin",$_SESSION['admin']);			
			$s->assign("block_html",$block_html);
			$s->display("land_edit.tpl");
		}
	}
	else {
		echo "error";
	}
}