Esempio n. 1
0
             } else {
                 echo "<script>";
                 echo "window.parent.quickPRJ_process_continue();";
                 echo "</script>";
                 exit;
             }
         }
     }
 }
 $t_cats = $tmpPrj->getCategories();
 $is_edit = $tmpPrj->isEdit();
 if (!($error['buy'] = $tmpPrj->saveProject(hasPermissions('projects') ? $uid : NULL, $proj))) {
     //Если проект был создан при переходе с лендинга
     //то привязываем его для статистики
     if (!$is_edit) {
         if ($landingProjectId = getLastLandingProjectId()) {
             require_once ABS_PATH . '/classes/LandingProjects.php';
             LandingProjects::model()->linkWithProject($landingProjectId, $proj['id'], false);
         }
     }
     if (!$is_edit) {
         # Если есть раздел "Дизайн" среди выбранных
         $finded = 0;
         foreach ($t_cats as $cat) {
             if (in_array($cat['category_id'], array(3, 10, 11, 18))) {
                 $finded = $cat['category_id'];
                 break;
             }
         }
         if ($finded > 0) {
             $category_names = array(3 => 'Дизайн', 10 => 'Фотография', 11 => 'Аудио/Видео', 18 => 'Арт');
Esempio n. 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()));
 }