<?php
require_once(CLASSES_PATH . "Module/Module.php");
class JobResumeConcreteModule extends Module {
var $id;
function JobResumeConcreteModule($id) {
$this->id = $id;
}
function runAction($action) {
if ($action == "edit")
$this->edit();
elseif ($action == "edit_confirm")
$this->editConfirm();
else
header("Location: " . JOB_PATH . "resume/concrete-" . $this->id . "/");
}
function view() {
if (!$this->id) {
header("Location:" . JOB_PATH);
return;
}
require_once(CLASSES_PATH . "Job/ResumeManager.php");
$manager = new JobResumeManager();
$item = $manager->createById($this->id);
if (!$item) {
header("Location:" . JOB_PATH);
return;
}
$item->incrementViewsAmount();
if ($item->allow_comment) {
require_once(CLASSES_PATH . "Job/ResumeCommentManager.php");
$manager = new JobResumeCommentManager();
$comments = $manager->createByParentId($item->record_id);
} else {
$comments = array();
}
require_once(CLASSES_PATH . "View/Frame/View.php");
require_once(CLASSES_PATH . "View/Job/Page.php");
require_once(CLASSES_PATH . "View/Job/ResumeConcrete.php");
require_once(CLASSES_PATH . "View/Job/ResumeConcretePage.php");
$frame =& ViewFrame::getInstance();
$frame->title = htmlspecialchars($item->speciality) . ", ищет работу";
$frame->main = new ViewJobPage(new ViewJobResumeConcretePage($item, $comments));
$frame->display();
}
function edit() {
if (!$this->id || !SimpleAuth::checkAuth()) {
header("Location:" . JOB_PATH);
return;
}
require_once(CLASSES_PATH . "Job/ResumeManager.php");
$manager = new JobResumeManager();
if (!$this->checkBelonging($item = $manager->createById($this->id))) {
header("Location: " . JOB_PATH . "resume/concrete-" . $this->id . "/");
return;
}
require_once(CLASSES_PATH . "xajax/xajax.inc.php");
require_once(CLASSES_PATH . "Job/SpecialityLoader.php");
$loader = new JobSpecialityLoader();
$xajax = new xajax();
$xajax->registerFunction(array("updateList", &$loader, "load"));
$xajax->processRequests();
require_once(CLASSES_PATH . "View/Frame/View.php");
require_once(CLASSES_PATH . "View/Job/Page.php");
require_once(CLASSES_PATH . "View/Job/ResumeEdit.php");
require_once(CLASSES_PATH . "View/AjaxLoader.php");
$frame =& ViewFrame::getInstance();
$frame->head->addWidget(new ViewAjaxLoader($xajax));
$frame->main = new ViewJobPage(new ViewJobResumeEdit($item));
$frame->display();
}
function checkBelonging($item) {
if (!$item)
return false;
$authId = SimpleAuth::getUserId();
if (!$authId)
return false;
if ($item->user_id == $authId)
return true;
require_once(CLASSES_PATH . "UserItem.php");
$ui = UserItem::getInstance($authId);
return ($ui && $ui->rights);
}
function editConfirm() {
if (!$this->id || !SimpleAuth::checkAuth()) {
header("Location:" . JOB_PATH);
return;
}
require_once(CLASSES_PATH . "Job/ResumeManager.php");
$manager = new JobResumeManager();
if (!$this->checkBelonging($item = $manager->createById($this->id))) {
header("Location: " . JOB_PATH . "resume/concrete-" . $this->id . "/");
return;
}
if (sizeof($errors = $this->assertEdit()))
mustdie($errors);
$item = new JobResumeItem($item->record_id, $item->user_id, $_POST["sphere"], $_POST["speciality"], $_POST["education"], $_POST["school"], $_POST["school_speciality"], $_POST["education_addition"], $_POST["experience"], $_POST["stuff"], $_POST["sex"], $_POST["family_state"], $_POST["language"], $_POST["work_location"], $_POST["schedule"], $_POST["addition_info"], $_POST["contact"], $_POST["email"], $_POST["phone"], $_POST["icq"], $item->time, $item->expire, $item->views_amount, isset($_POST["allow_comment"]), $_POST["age"], $_POST["term"], NULL, $_POST["photo"], $_POST["document"]);
$item->update();
if (isset($_FILES["photo"]) && $_FILES["photo"]["name"]) {
$path = ROOT_DIR . $item->getPhotoPath();
move_uploaded_file($_FILES["photo"]["tmp_name"], $path);
}
if (isset($_FILES["document"]) && $_FILES["document"]["name"]) {
$path = ROOT_DIR . $item->getDocumentPath();
move_uploaded_file($_FILES["photo"]["tmp_name"], $path);
}
header("Location: " . JOB_PATH . "resume/concrete-" . $item->record_id . "/");
}
function assertEdit() {
$errors = array();
if (!isset($_POST["sphere"]) || !$_POST["sphere"]) {
$errors[] = "Сфера не указана";
} else {
require_once(CLASSES_PATH . "Job/SphereManager.php");
$manager = new JobSphereManager();
if (!$manager->createById($_POST["sphere"]))
$errors[] = "Сфера не существует";
}
if (!isset($_POST["speciality"]) || !$_POST["speciality"]) {
$errors[] = "Специальность не указана";
} else if (ppc_strlen($_POST["speciality"]) > 255){
$errors[] = "Специальность слишком длинная";
}
if (!isset($_POST["age"]) || !intval($_POST["age"])) {
$errors[] = "Возраст не указан";
}
if (!isset($_POST["sex"]) || !intval($_POST["sex"])) {
$errors[] = "Пол не указан";
}
if (!isset($_POST["family_state"])) {
$errors[] = "Семейное положение не указано, пожалуйста не пытайтесь добавлять объявления не с сайта";
}
if (!isset($_POST["education"])) {
$errors[] = "Образование не указано, пожалуйста не пытайтесь добавлять объявления не с сайта";
}
if (!isset($_POST["school"])) {
$errors[] = "Учебное заведение не указано, пожалуйста не пытайтесь добавлять объявления не с сайта";
} else if (ppc_strlen($_POST["school"]) > 255)
$errors[] = "Название учебного заведения слишком длинное";
if (!isset($_POST["school_speciality"])) {
$errors[] = "Специальность по диплому не указано, пожалуйста не пытайтесь добавлять объявления не с сайта";
} else if (ppc_strlen($_POST["school_speciality"]) > 255)
$errors[] = "Название специальности по диплому слишком длинное";
if (!isset($_POST["education_addition"])) {
$errors[] = "Дополнительное образование не указано, пожалуйста не пытайтесь добавлять объявления не с сайта";
} else if (ppc_strlen($_POST["education_addition"]) > 1500)
$errors[] = "Текст дополнительного образования слишком длинный";
if (!isset($_POST["experience"])) {
$errors[] = "Опыт работы не указан, пожалуйста не пытайтесь добавлять объявления не с сайта";
}
if (!isset($_POST["experience"])) {
$errors[] = "Опыт работы не указан, пожалуйста не пытайтесь добавлять объявления не с сайта";
}
if (!isset($_POST["stuff"]) || !is_numeric($_POST["stuff"])) {
$errors[] = "зарлата не указана";
} /*else if (!$_POST["stuff"] && !isset($_POST["stuff_open"]))
$errors[] = "Зарплата должна быть задана или установлен флажек \"По договоренности\"";*/
if (!isset($_POST["language"])) {
$errors[] = "Язык не указан, пожалуйста не пытайтесь добавлять объявления не с сайта";
}
if (!isset($_POST["schedule"])) {
$errors[] = "График работы не указан, пожалуйста не пытайтесь добавлять объявления не с сайта";
}
if (!isset($_POST["work_location"])) {
$errors[] = "Место работы не указано, пожалуйста не пытайтесь добавлять объявления не с сайта";
}
if (!isset($_POST["addition_info"])) {
$errors[] = "Дополнительная информация не указана, пожалуйста не пытайтесь добавлять объявления не с сайта";
} else if (ppc_strlen($_POST["addition_info"]) > 1500)
$errors[] = "Дополнительная информация слишком длинная";
if (!isset($_POST["contact"]) || !$_POST["contact"])
$errors[] = "Контактная информация не указана";
else if (ppc_strlen($_POST["contact"]) > 255)
$errors[] = "Контактная информация слишком длинная";
$contacted = false;
if (isset($_POST["phone"]) && $_POST["phone"]) {
$contacted = true;
if (ppc_strlen($_POST["phone"]) > 40)
$errors[] = "Телефон слишком длинный";
}
if (isset($_POST["email"]) && $_POST["email"]) {
$contacted = true;
if (ppc_strlen($_POST["email"]) > 40)
$errors[] = "Телефон слишком длинный";
}
if (isset($_POST["icq"]) && $_POST["icq"]) {
$contacted = true;
if (ppc_strlen($_POST["icq"]) > 11)
$errors[] = "ICQ слишком длинный";
}
if (!$contacted)
$errors[] = "Одно или более полей Телефон, email или ICQ должны быть заполнены";
if (!isset($_POST["term"]))
$errors[] = "Срок размещения не указан";
$_POST["photo"] = "";
if (isset($_FILES["photo"]) && $_FILES["photo"]["name"]) {
$ext = pathinfo($FILES["photo"]["name"], PATHINFO_EXTENSION);
if (!in_array($ext, array("png", "jpg", "jpeg", "gif")))
$errors[] = "Недопустимое расширение фотографии";
else
$_POST["photo"] = $ext;
}
$_POST["document"] = "";
if (isset($_FILES["document"]) && $_FILES["document"]["name"]) {
$ext = pathinfo($FILES["document"]["name"], PATHINFO_EXTENSION);
if (!in_array($ext, array("doc", "txt", "zip", "rar")))
$errors[] = "Недопустимое расширение резюме";
else
$_POST["document"] = $ext;
}
return $errors;
}
}
?>