} 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 => 'Арт');
/** * Создание проекта */ 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())); }