Проблема с фото при редактировании резюме в скрипте yanaidu

Тема в разделе "Коммерческие", создана пользователем diegos, 10 окт 2011.

Информация :
Публиковать (для всех) нуленые версии, особенно от modulesgarden КАТЕГОРИЧЕСКИ не стоит. Тема мониторится оным разработчиком, а к нам приходят абузы которые нельзя игнорировать.
Статус темы:
Закрыта.
Модераторы: Amazko, Aste
  1. diegos

    diegos Постоялец

    Регистр.:
    5 дек 2008
    Сообщения:
    59
    Симпатии:
    10
    Помогите пожалуйста разобраться с проблемой отображения фото и файла при редактировании резюме после создания его, пропадают фото и файл резюме.

    А также при создании резюме без регистрации - невозможно редактировать его.
    И при создании объявления без регистрации - невозможно редактировать его.

    Буду очень признателен за помощь в исправлении кода.
     
  2. eskort

    eskort Постоялец

    Регистр.:
    14 июл 2011
    Сообщения:
    50
    Симпатии:
    21
    А с меню Погода,Горсправка,Афиша,Реклама на сайте разобрались?

    как погоду вывести?пустая страница.
     
  3. diegos

    diegos Постоялец

    Регистр.:
    5 дек 2008
    Сообщения:
    59
    Симпатии:
    10
    Горсправка и афиша работают и так, просто нужно внимательно прописать разделы в коде (вместо afisha.site.com, я прописывал site.com/afisha), "реклама на сайте" - я вставил свою страницу с информацией и формой связи, погода которая там по умолчанию - для меня лично примитивная, поэтому вставил свою погоду.

    А вот с фото замучался немного.. никак не получается разобраться... Кто может подскажите пожалуйста как поправить код в classes/Job/ResumeConcreteModule.php в функции function edit() и function editConfirm() а также Job/ResumeManager.php и ResumeItem.php

    Или нужно другие файлы править? Буду признателен за помощь!

    Спасибо!
     
  4. anz

    anz Level XXL

    Регистр.:
    17 окт 2006
    Сообщения:
    936
    Симпатии:
    304
    на нашем форуме уже есть ответы на все ваши вопросы -
    ищите в поиске темы и читайте форум, больше года назад этот янайду по строчкам разобрали.
     
  5. diegos

    diegos Постоялец

    Регистр.:
    5 дек 2008
    Сообщения:
    59
    Симпатии:
    10
    Я прочитал все темы которые касаются скрипта yanaidu, но не встречал обсуждения и ответа на подобный вопрос. Обсуждалось всё то, что и так работает, а вот данную ошибку в коде ни кто не заявлял на обсуждение либо же под большим хайдом возможно что то рассказывалось..

    Если человек, хорошо знает php то ему нужно минут 10 чтобы явно увидеть где касяк и подсказать.

    Меня интересует ТОЛЬКО правка редактирования фото и файла вложения - это единственное в чём я не разобрался ещё в скрипте! При создании резюме, всё корректно создаётся и фото и вложение DOC, но как только резюме редактируется, то фото и вложение пропадают (они удаляются из базы почемуто).
     
  6. anz

    anz Level XXL

    Регистр.:
    17 окт 2006
    Сообщения:
    936
    Симпатии:
    304
    если читали хорошо, вопросы надо было там и задавать, быстрее получили бы ответ и насколько я помню в указанных вами функциях ошибок не было.
     
  7. diegos

    diegos Постоялец

    Регистр.:
    5 дек 2008
    Сообщения:
    59
    Симпатии:
    10
    На сегодняшний день те все темы практически безлюдны чтобы у кого то разбирающегося спросить, если и есть кто там, так в основном те, кто спрашивает как настроить погоду, домены и т.д. А здесь нужны грамотные знания php!

    Сами функции вероятней всего правильные, но вызываются они неправильно скорее всего. Я заметил, что сам скрипт писался несколькими программистами, и возможно где то кто то недосмотрел вызов этих функций. Например при редактировании объявления (раздел board) без регистрации, не задействуется файл UnauthorizedEditModule.php в classes/Insertion...
     
  8. diegos

    diegos Постоялец

    Регистр.:
    5 дек 2008
    Сообщения:
    59
    Симпатии:
    10
    Проблема в том, что после сохранения редактирования, пропадают пути к загруженным файлам и сами файлы также не обновляются.

    Вот содержание файла ResumeConcreteModule.php
    PHP:
    <?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;
        }
       
    }
    ?>
    Если Вы хорошо знаете PHP, подскажите пожалуйста где ошибка?!

    СПАСИБО
     
    Последнее редактирование: 11 авг 2015
  9. stealthdebuger

    stealthdebuger Механик

    Administrator
    Регистр.:
    25 авг 2008
    Сообщения:
    634
    Симпатии:
    1.420
    Посмотрите внимательно на этот код, думаю поймете дальше...
    PHP:
    $_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;
            }
     
    diegos нравится это.
  10. diegos

    diegos Постоялец

    Регистр.:
    5 дек 2008
    Сообщения:
    59
    Симпатии:
    10
    Поправку сделал по этому участку кода, но конечный результат не изменился. Всё также пути с расширением в базу не записываются и сами файлы не обновляются в загруженной директории.
     
Статус темы:
Закрыта.