function edit($args = null) { $answer = array(); $answer["success"]["fields"] = array(); if (empty($_SESSION["user"]) || empty($_SESSION["user"]["id"])) { //$answer["error"]["field"] = "auth"; $answer["error"]["msg"] = "Вы не авторизованы!"; return $answer; } $user = new UserCustomer(); if (!$user->load(array("id" => $_SESSION["user"]["id"]))) { //$answer["error"]["field"] = null; $answer["error"]["msg"] = Common::echoLastError(); return $answer; } $validate_fields = array(); if (isset($_POST["validate_fields"])) { $validate_fields = $_POST["validate_fields"]; } $required_fields = array(); if (isset($_POST["required_fields"])) { $required_fields = $_POST["required_fields"]; } //считываем фамилию $user->surname = readPostField($answer, "surname", $validate_fields, $required_fields); if ($user->surname === null) { return $answer; } //считываем имя $user->name = readPostField($answer, "name", $validate_fields, $required_fields); if ($user->name === null) { return $answer; } //считываем отчество $user->second_name = readPostField($answer, "second_name", $validate_fields, $required_fields); if ($user->second_name === null) { return $answer; } //считываем пол $user->sex = readPostField($answer, "sex", $validate_fields, $required_fields); if ($user->sex === null) { return $answer; } //считываем дату рождения $user->birthday = readPostField($answer, "birthday", $validate_fields, $required_fields); if ($user->birthday === null) { return $answer; } //$user->write(); //если указана фотография if (!empty($_POST["photo_data"])) { //парсим ее в MIME $photo = new MIME(); $photo_data = json_decode($_POST["photo_data"]); $photo->parseString($photo_data->image); //считываем область выделения и проверяем, установлена ли она $selection = $photo_data->selection; if (empty($selection) || empty($selection->width) || empty($selection->height)) { //если не установлена, то берем максимально большую область по размерам картинки $photo_size = $photo->imageSize(); if ($photo_size === false) { $answer["error"] = array("field" => "photo", "Не удалось сохранить фотографию (" . Common::getLastErrorMsg() . ")"); return $answer; } $selection->x1 = 0; $selection->y1 = 0; if ($photo_size["width"] <= $photo_size["height"]) { $selection->width = $photo_size["width"]; $selection->height = $photo_size["width"]; } else { $selection->width = $photo_size["height"]; $selection->height = $photo_size["height"]; } } //удаляем старую фотку, если есть $file_name = $user->photo; if (!empty($file_name) && file_exists($file_name)) { unlink($file_name); } //и сохраняем новую картинку с изменением размеров $file_name = $photo->saveToFile(User::$user_photo_dir . $user->id, array("x1" => 0, "y1" => 0, "width" => 200, "height" => 200), array("x1" => $selection->x1, "y1" => $selection->y1, "width" => $selection->width, "height" => $selection->height)); if ($file_name === false) { $answer["error"] = array("field" => "photo", "msg" => "Не удалось сохранить фотографию (" . Common::getLastErrorMsg() . ")"); return $answer; } $user->photo = $file_name; $answer["success"]["fields"][] = "photo"; } //считываем телефоны $phones = readPostField($answer, "phone", $validate_fields, $required_fields); if ($phones === null) { return $answer; } $user->phones = array(); foreach ($phones as $phone) { $phone_data = explode(',', $phone); if (count($phone_data) != 2) { $answer["error"] = array("field" => "phone", "msg" => "Телефоны указаны некорректно"); array_pop($answer["success"]["fields"]); return $answer; } $user->phones[] = array("phone" => preg_replace('/[^0-9]/', '', $phone_data[1]), "type" => $phone_data[0]); } //считываем jabber $user->jabber = readPostField($answer, "jabber", $validate_fields, $required_fields); if ($user->jabber === null) { return $answer; } //считываем skype $user->skype = readPostField($answer, "skype", $validate_fields, $required_fields); if ($user->skype === null) { return $answer; } /*$old_pwd = readPostField($answer,"old_pwd",$validate_fields,$required_fields); if($old_pwd === null) return $answer; if(!empty($old_pwd)) { $pwd1 = $_POST["pwd1"]; $pwd2 = $_POST["pwd2"]; $pwd_strong = 0; $error = Users::validatePassword($pwd1,$pwd2,$pwd_strong); if($error !== Users::ERROR_NOT) { //в случае ошибки возвращаем текст ошибки //если пароли отличаются или второй пароль пустой, указываем фокус на второй пароль if(($error === Users::ERROR_PWD_DIFFERENT)||(($error === Users::ERROR_PWD_EMPTY)&&(!empty($pwd1)))) { $answer["error"]["field"] = "pwd2"; array_push($answer["success"]["fields"],"pwd"); } else $answer["error"]["field"] = "pwd"; array_pop($answer["success"]["fields"]); return $answer; } }*/ //если нужна была только валидация, выходим if (!isset($_POST["submit"]) || !$_POST["submit"]) { return $answer; } //сохраняем if (!$user->save()) { $answer["error"] = array("field" => "submit", "msg" => Common::echoLastErrorMsg()); return $answer; } //указываем об успешности опреации и выходим $answer["success"]["msg"] = "Данные успешно сохранены"; $answer["success"]["fields"][] = "submit"; return $answer; }