} } break; case 'masssending': if ($is_log > 0) { $location = '/masssending/'; } break; } if ((is_emp() || $is_log == users::AUTH_STATUS_2FA) && $guest_query) { require_once $_SERVER['DOCUMENT_ROOT'] . '/guest/models/GuestHelper.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/guest/models/GuestMemoryModel.php'; $dataForm = GuestHelper::overrideDataFromString($guest_query); if (isset($dataForm['kind']) && is_numeric($dataForm['kind'])) { $guestMemoryModel = new GuestMemoryModel(); $hash = $guestMemoryModel->saveData($dataForm); $_location = '/public/?step=1&kind=' . $dataForm['kind'] . '&hash=' . $hash; if ($is_log == users::AUTH_STATUS_2FA) { $_SESSION['ref_uri'] = $_location; } else { $location = $_location; } } } header("Location: {$location}"); exit; } else { $_SESSION['toppayed_catalog'] = $adCatalog; $_SESSION['toppayed_main'] = $adMain; $_SESSION['toppayed_head'] = $adHead; $_SESSION['toppayed_text'] = $adText;
/** * Создание вакансии */ public function actionVacancy() { $subform = new GuestNewVacancyForm(array('is_adm' => $this->is_adm)); $form = new NewDataForm($subform, array('is_adm' => $this->is_adm)); $form->addElement(new Form_Element_Hidden('social')); //@todo: не корректно использование - есть общее решение в GuestConst::$_error_messages $userValidator = $form->getElement('email')->getValidator('NoUserExists'); $userValidator->setMessages(array('userFound' => GuestConst::VACANCY_EMAIL_BUSY)); 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 $data['dataForm']['kind'] = 4; //вакансия! unset($data['dataForm']['profession']); $data['dataForm']['categories'][] = array('category_id' => $subform->getElement('profession')->getGroupDbIdValue(), 'subcategory_id' => $subform->getElement('profession')->getSpecDbIdValue()); unset($data['dataForm']['location']); $data['dataForm']['country'] = $subform->getElement('location')->getColumnId(0); $data['dataForm']['city'] = $subform->getElement('location')->getColumnId(1); $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'] = 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_VACANCY) . '&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_VACANCY; $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); $messageKey = $user->uid > 0 ? GuestConst::MSG_AL_EXIST : GuestConst::MSG_AL; $messageText = GuestConst::getMessage($messageKey, $data['type']); if ($user->uid > 0) { $action = $user->is_pro == 't' ? GuestConst::VACANCY_ACTION_PRO : GuestConst::VACANCY_ACTION_NOPRO; $messageText['message'] = sprintf($messageText['message'], $action); } require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/Helpers/PopupAfterPageLoaded.php"; PopupAfterPageLoaded::getInstance()->showAfterLoad($messageText); $ref_uri = '.'; if (!$this->is_adm) { $ref_uri = empty($_SESSION['ref_uri']) ? sprintf('/') : urldecode($_SESSION['ref_uri']); } $this->redirect($ref_uri); } } } } $this->render('index', array('title' => 'Новая вакансия', 'form' => $form->render())); }