コード例 #1
0
ファイル: index.php プロジェクト: Nikitian/fl-ru-damp
    $user_action = $exec ? '/registration/?user_action=add_project_to_' . $exec : '/guest/new/project/';
    if ($kind != 1 && $kind != 4 || $exec) {
        ref_uri();
        //Сохраняем ref_uri страницы
    }
    if ($kind == 4) {
        $user_action = '/guest/new/vacancy/';
    } elseif ($kind == 7) {
        $user_action = '/registration/?user_action=add_contest';
    }
    // Публикация проектов доступна только для работодателя
    header('Location: ' . $user_action);
    exit;
}
//Проверка перехода с лендинга публикации проекта
if ($name = isLandingProject()) {
    $tmpPrj->setProjectField('name', $name);
}
ref_uri();
//Сохраняем ref_uri страницы
$is_personal = false;
if ($exec || $project['exec_id']) {
    $freelancer = new freelancer();
    if ($exec) {
        //Добавление проекта
        $freelancer->GetUser($exec);
    } else {
        $freelancer->GetUserByUID($project['exec_id']);
    }
    if ($freelancer->uid && ($project['kind'] == projects::KIND_PERSONAL || $kind == projects::KIND_PERSONAL)) {
        $is_personal = true;
コード例 #2
0
 /**
  * Создание проекта
  */
 public function actionProject()
 {
     $subform = new GuestNewProjectForm(array('is_adm' => $this->is_adm));
     $form = new NewDataForm($subform, array('is_adm' => $this->is_adm));
     $form->addElement(new Form_Element_Hidden('social'));
     //Проверка перехода с лендинга публикации проекта
     if ($name = isLandingProject()) {
         $subform->setDefault('name', $name);
     }
     if (isset($_POST) && sizeof($_POST) > 0) {
         if (isset($_POST['social']) && $_POST['social']) {
             $form->getElement('uname')->setRequired(false);
             $form->getElement('usurname')->setRequired(false);
             $form->getElement('email')->setRequired(false);
         }
         $valid = $form->isValid($_POST);
         $data = $form->getValues();
         //@todo: подготовка данных, лучше все это делать в контролах но нет времени!
         //@todo: частично дублирует GuestHelper::overrideData
         //Если публикация проекта из лендинга, то фиксируем ID
         //чтобы в случае публикации привязать проект
         if ($landingProjectId = getLastLandingProjectId()) {
             $data['dataForm']['landingProjectId'] = $landingProjectId;
         }
         $data['dataForm']['kind'] = 1;
         //проект!
         unset($data['dataForm']['profession']);
         $data['dataForm']['categories'][] = array('category_id' => $subform->getElement('profession')->getGroupDbIdValue(), 'subcategory_id' => $subform->getElement('profession')->getSpecDbIdValue());
         $data['dataForm']['IDResource'] = @$data['dataForm']['IDResource'][0];
         $cost_element = $subform->getElement('cost');
         $is_agreement = $cost_element->getValue('agreement') == 1;
         $data['dataForm']['cost'] = $is_agreement ? 0 : $data['dataForm']['cost'];
         $data['dataForm']['currency'] = $is_agreement ? 0 : $cost_element->getValue('currency_db_id');
         $data['dataForm']['priceby'] = $is_agreement ? 1 : $cost_element->getValue('priceby_db_id');
         $filter = @$data['dataForm']['filter'];
         if (!$filter) {
             $filter = array();
         }
         $data['dataForm']['pro_only'] = true;
         //in_array('pro_only', $filter);
         $data['dataForm']['verify_only'] = in_array('verify_only', $filter);
         unset($data['dataForm']['filter']);
         if ($this->is_adm) {
             if (!$data['uname'] && !$data['usurname']) {
                 $data['uname'] = "Менеджер";
                 $data['usurname'] = "Компании";
             }
         }
         if (isset($data['dataForm']['auth']) && $data['dataForm']['auth']) {
             $data['dataForm']['agreement'] = $is_agreement;
             $guestMemoryModel = new GuestMemoryModel();
             $hash = $guestMemoryModel->saveData($data['dataForm']);
             $redirect = GuestConst::getMessage(GuestConst::URI_CANCEL, GuestConst::TYPE_PROJECT) . '&hash=' . $hash;
             $this->redirect($redirect);
         }
         if ($valid) {
             $oauth_link = $form->getElement('social')->getValue();
             unset($data['social']);
             if (!$oauth_link) {
                 $userValidator = $form->getElement('email')->getValidator('NoUserExists');
                 $user = $userValidator->getUser();
                 $data['user_id'] = $user->uid;
             }
             $data['type'] = GuestConst::TYPE_PROJECT;
             $code = GuestActivationModel::model()->newActivation($data);
             if ($code) {
                 if ($oauth_link) {
                     $redirect = urlencode("/guest/activate/" . $code);
                     $this->redirect($oauth_link . '&emp_redirect=' . $redirect);
                 } else {
                     $guestSmail = new GuestSmail();
                     $link = $this->is_adm ? $data['dataForm']['link'] : '';
                     $guestSmail->sendActivation($data['email'], $code, $user, $data['type'], $link);
                     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/Helpers/PopupAfterPageLoaded.php";
                     PopupAfterPageLoaded::getInstance()->showAfterLoad(GuestConst::getMessage($user->uid > 0 ? GuestConst::MSG_AL_EXIST : GuestConst::MSG_AL, $data['type']));
                     $ref_uri = '.';
                     if (!$this->is_adm) {
                         $ref_uri = empty($_SESSION['ref_uri']) ? sprintf('/') : urldecode($_SESSION['ref_uri']);
                     }
                     $this->redirect($ref_uri);
                 }
             }
         }
     }
     $this->render('project', array('title' => 'Новый проект (задание на разовую работу)', 'form' => $form->render()));
 }