$frl = new employer(); $alert[1] = $frl->UpdatePwd(get_uid(), $oldpwd, $pwd, 0); if (!$alert[1]) { $info = "Изменения внесены"; $smail = new smail(); $smail->ChangePwd($uid, $pwd); // Пишем в лог смены паролей require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/restorepass_log.php"; restorepass_log::SaveToLog($uid, getRemoteIP(), 3); } } break; case "foto_change": $foto = new CFile($_FILES['foto']); $del = trim($_POST['del']); $frl = new employer(); if ($foto->name || $del == 1) { $error .= $frl->UpdateFoto(get_uid(), $foto, $del); /*if (!$error) $info_msg = "Изменения внесены"; else $error = "Файл не удовлетворяет условиям загрузки";*/ if (!$error) { $_SESSION['photo'] = $frl->photo; } $nParam = !$error ? 1 : 2; header_location_exit('/users/' . $_SESSION['login'] . '/setup/foto/?msg=' . $nParam); } break; //Удаление аккаунта убрано! не раскоменчивать! /*case "delete": $passwd = trim($_POST['passwd']); if ($passwd){
/** * Один из шаблон текста решения арбитража (всплывающее окно). * * @param array $arb массив данных по арбитражу. * @return string */ function arb_descr() { $stage = $this; if ($stage->arbitrage === false) { $stage->getArbitrage(TRUE); } if (!$stage->arbitrage) { return NULL; } ob_start(); if (!$stage->arbitrage['resolved']) { include $_SERVER['DOCUMENT_ROOT'] . '/norisk2/tpl.currents-arb_reason.php'; } else { $show_pay_info = true; $emp = new employer(); $frl = new freelancer(); $emp->GetUserByUID($this->sbr->emp_id); $frl->GetUserByUID($this->sbr->frl_id); if ($this->sbr->isEmp() && $stage->arbitrage['frl_percent'] >= 1 || $this->sbr->isFrl() && $stage->arbitrage['frl_percent'] <= 0 || $this->getPayouts($this->sbr->uid)) { $show_pay_info = false; } include $_SERVER['DOCUMENT_ROOT'] . '/norisk2/tpl.currents-arb_solution.php'; } return ob_get_clean(); }
/** * Уведомления заказчику, если кандидат/победитель/исполнитель заблокирован на сайте * * проект/конкурс/СБР - всего 5 видов уведомлений @see pmail::_ExecutorCandidateBanMail * * @param string|array $ids идентификаторы заблокированных пользователей * @param resource $connect соединение к БД (необходимо в PgQ) или NULL -- создать новое * @return bool true - успех, false - провал */ function ExecutorCandidateBanMail($ids, $connect = NULL) { if (empty($ids)) { return false; } $mRes = employer::GetEmployersBlockedCandidates($ids); if (!$GLOBALS['DB']->error && pg_num_rows($mRes)) { $nCurCnf = 1; $aRecipient = array(); while ($aOne = pg_fetch_assoc($mRes)) { $aOne['name'] = htmlspecialchars($aOne['name'], ENT_QUOTES, 'CP1251', false); if ($nCurCnf != $aOne['cnf']) { if ($aRecipient) { $this->_ExecutorCandidateBanMail($nCurCnf, $aRecipient); $aRecipient = array(); } $nCurCnf = $aOne['cnf']; } if ($aOne['lnk'] == 'project') { $sLink = $GLOBALS['host'] . getFriendlyURL('project', $aOne['id']); } elseif ($aOne['lnk'] == 'sbr') { $sLink = $GLOBALS['host'] . '/' . sbr::NEW_TEMPLATE_SBR . '/?id=' . $aOne['id']; } $sUlink = $GLOBALS['host'] . '/users/' . $aOne['login']; $sUname = $aOne['uname'] . ' ' . $aOne['usurname'] . ' [' . $aOne['login'] . ']'; $aRecipient[] = array('email' => $aOne['e_name'] . " " . $aOne['e_surname'] . " <" . $aOne['email'] . ">", 'extra' => array('name' => $aOne['name'], 'link' => $sLink, 'u_link' => $sUlink, 'u_name' => $sUname, 'USER_LOGIN' => $aOne['e_login'])); } if ($aRecipient) { $this->_ExecutorCandidateBanMail($nCurCnf, $aRecipient); } } }
$action = "save"; } if ($_POST['action_reload'] != "") { $action = "reload"; } if ($_POST['action_change'] != "") { $action = "change"; } if ($_POST['action_change2'] != "") { $action = "change_country"; } if ($_POST['action_change3'] != "") { $action = "change_country2"; } } $employer = new employer(); $employer->GetUserByUID(get_uid(false)); $contacts = array('phone' => array('name' => 'Телефон', 'value' => $employer->phone), 'site' => array('name' => 'Сайт', 'value' => $employer->site), 'icq' => array('name' => 'ICQ', 'value' => $employer->icq), 'skype' => array('name' => 'Skype', 'value' => $employer->skype), 'email' => array('name' => 'E-mail', 'value' => $employer->second_email)); //hash. Если пользователь вводил данные до авторизации, то подставляем данные в массив #_POST //@todo Переписать это в адаптер. if ($hash) { $guestMemoryModel = new GuestMemoryModel(); $savedData = $guestMemoryModel->getData($hash); $tmpPrj->setProjectField('name', substr(__paramValue('html', antispam(addslashes($savedData['name'])), 60, true), 0, 512)); $tmpPrj->setProjectField('descr', __paramValue('html', antispam(addslashes($savedData['descr'])), null, true)); if (isset($savedData['IDResource'])) { $uploader = new uploader($savedData['IDResource']); } $agreement = $savedData['agreement']; $tmpPrj->setProjectField('agreement', $agreement); if ($agreement) {
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/stop_words.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/tu/models/TServiceOrderModel.php'; //Для чего тут? session_start(); $uid = get_uid(); $stop_words = new stop_words(hasPermissions('users')); $g_page_id = "0|25"; $name = trim($_GET['user']); $page = trim($_GET['p']); $template = 'template2.php'; $css_file = array('profile.css', 'opinions.css', '/css/block/b-opinion/b-opinion.css', '/css/block/b-icon/__cont/b-icon__cont.css', '/css/nav.css', '/css/block/b-voting/b-voting.css'); $js_file = array('warning.js', 'note.js', 'status.js', 'banned.js', 'tawl.js', 'paid_advices.js', '/css/block/b-filter/b-filter.js', '/css/block/b-fon/b-fon.js', '/css/block/b-layout/b-layout.js', 'del_acc.js', 'sbr.js', 'specadd.js', 'drafts.js', 'polls.js', 'mAttach.js', 'blogs_cnt.js', 'blogs.js', 'opinions.js', 'calendar.js', 'projects-quick-edit.js', 'attachedfiles.js', 'projects.js'); //rus $page_keyw = "работа, удаленная работа, поиск работы, предложение работы, портфолио фрилансеров, fl.ru"; $page_descr = "Работа. Удаленная работа. Поиск работы. Предложение работы. Портфолио фрилансеров. FL.ru"; $user = new employer(); $user->GetUser($name); $p_user = $user; if (strtolower($user->uid) == strtolower($uid) && is_pro(true)) { $no_adv = true; } else { $no_adv = false; } switch ($page) { case "rating": $css_file[] = "promotion.css"; if ($user->uid == $uid) { $js_file[] = 'raphael-min.js'; $js_file[] = 'svg.js'; } $inner = "rating_inner.php";
/** * Отправляем письма уведомления об отмене арбитража заказчику и исполнителю. * * @param array $order Заказ * @return boolean */ protected function _onApplyArbitrage($order, $price) { if (empty($order)) { return FALSE; } $priceBack = $order['reserve_data']['price'] - $price; //Уведомления заказчику $user = new employer(); $user->GetUserByUID((int) @$order['emp_id']); if (!$user->uid) { return FALSE; } $this->recipient = $this->_formatFullname(&$user, true); $this->message = Template::render(RESERVES_TPL_MAIL_PATH . 'apply_arbitrage.tpl.php', array('smail' => &$this, 'order' => $order, 'is_emp' => true, 'pricePay' => $price, 'priceBack' => $priceBack, 'params' => $this->_addUrlParams('e'))); $ret1 = $this->send('text/html'); ReservesSms::model($user->uid)->sendByStatusAndPrice(ReservesSms::STATUS_APPLY_ARBITRAGE_EMP, $price, $priceBack, $order['id']); //Уведомления исполнителю $user = new freelancer(); $user->GetUserByUID((int) @$order['frl_id']); if (!$user->uid) { return FALSE; } $this->recipient = $this->_formatFullname(&$user, true); $this->message = Template::render(RESERVES_TPL_MAIL_PATH . 'apply_arbitrage.tpl.php', array('smail' => &$this, 'order' => $order, 'is_emp' => false, 'pricePay' => $price, 'priceBack' => $priceBack, 'params' => $this->_addUrlParams('e'))); $ret2 = $this->send('text/html'); ReservesSms::model($user->uid)->sendByStatusAndPrice(ReservesSms::STATUS_APPLY_ARBITRAGE_FRL, $price, $priceBack, $order['id']); return $ret1 && $ret2; }
public function doActivation($code) { $activation_data = $this->getActivation($code); if (!$activation_data) { return false; } $this->deleteActivation($code); $current_uid = get_uid(false); if ($current_uid) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/employer.php'; $user = new employer(); $user->GetUserByUID($current_uid); $status = 1; } else { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/registration.php'; $registration = new registration(); $user_data = $registration->autoRegistationAndLogin(array('uid' => $activation_data['user_id'], 'role' => 1, 'email' => $activation_data['email'], 'uname' => $activation_data['uname'], 'usurname' => $activation_data['usurname'])); if (!$user_data || !$user_data['ret']) { return self::REDIRECT_AUTH_FAIL; } $status = $user_data['ret']; $user = $user_data['user']; } $uid = $user->uid; $redirect = false; $data = $activation_data['data']; switch ($activation_data['type']) { case GuestConst::TYPE_PERSONAL_ORDER: $data['emp_id'] = $uid; require_once $_SERVER['DOCUMENT_ROOT'] . '/tu/models/TServiceOrderModel.php'; $orderModel = TServiceOrderModel::model(); if ($order = $orderModel->createPersonal($data)) { $tservices_smail = new tservices_smail(); $tservices_smail->newOrder($order); $redirect = sprintf(tservices_helper::url('order_card_url'), $order['id']); } break; case GuestConst::TYPE_VACANCY: require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/projects.php'; $data['state'] = projects::STATE_MOVED_TO_VACANCY; $date_public = null; $redirect_layout = '/public/?step=1&kind=4&public=%s&popup=1'; case GuestConst::TYPE_PROJECT: require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/projects.php'; $key = md5(uniqid($uid)); $tmpPrj = new tmp_project($key); $tmpPrj->initForUser($user); if (isset($data['IDResource']) && !empty($data['IDResource'])) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/uploader/uploader.php'; $uploader = new uploader($data['IDResource']); $attachedfiles_files = $uploader->getFiles(); $tmpPrj->clearAttaches(); $tmpPrj->addAttachedFiles($attachedfiles_files, false); $uploader->clear(); } if ($prj = $tmpPrj->addSimpleProject($data)) { $_SESSION['new_public'] = 1; $redirect = getFriendlyURL('project', $prj); if (isset($redirect_layout)) { $redirect = sprintf($redirect_layout, $prj['id']); } $src_id = $prj['id']; //Если проект был создан при переходе с лендинга //то привязываем его для статистики if (isset($data['landingProjectId'])) { require_once ABS_PATH . '/classes/LandingProjects.php'; LandingProjects::model()->linkWithProject($data['landingProjectId'], $src_id, !$activation_data['user_id']); } } break; } //Обновляем приглашение if (isset($activation_data['invite_id']) && $activation_data['invite_id'] > 0) { $guestInviteModel = new GuestInviteModel(); $guestInviteModel->updateDateComeInvite($activation_data['invite_id'], array('src_id' => isset($src_id) ? $src_id : null, 'date_public' => isset($date_public) ? $date_public : null)); } //Мессага с паролями для новеньких if (!$activation_data['user_id'] && !$current_uid) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/Helpers/SubBarNotificationHelper.php'; SubBarNotificationHelper::getInstance()->setMessage($activation_data['type'], array('login' => $user->login, 'password' => $user->passwd), $user->uid); } elseif ($status == users::AUTH_STATUS_2FA) { $_SESSION['ref_uri'] = $redirect; $redirect = '/auth/second/'; } return $redirect; }
<?php require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/stdf.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/account.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/projects.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/project_exrates.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/drafts.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/country.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/city.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/employer.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/freelancer.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/projects_offers.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/billing.php'; $uid = get_uid(false); $employer = new employer(); $employer->GetUserByUID($uid); $account = new account(); $account->GetInfo($uid); $_SESSION['ac_sum'] = $account->sum; $_SESSION['ac_sum_rub'] = $account->sum_rub; $_SESSION['bn_sum'] = $account->bonus_sum; //Формируем проект $tmpPrj = new tmp_project('key'); $tmpPrj->setEdit(true); $tmpPrj->setProjectField('kind', 1); $tmpPrj->setProjectField('descr', 'Описание проекта для оплаты с разными op_code'); $tmpPrj->setProjectField('name', 'Проект для оплаты с разными op_code'); $tmpPrj->setProjectField('agreement', 1); $tmpPrj->setProjectField('priceby', 1); $tmpPrj->setProjectField('budget_type', 1); $cats[] = array('category_id' => 12, 'subcategory_id' => 120);
/** * Выдает объект sbr в зависимости от роли пользователя и запрошенной страницы. * Админ может выступать от роли фрилансера/работодателя чужой сделки, админа или обычного участника сделки. * * @return object экземпляр класса sbr_emp|sbr_frl|sbr_adm. */ static function getInstance($access = NULL, $U = NULL, $is_emp = NULL) { $req =& $_REQUEST; $sess =& $_SESSION; $site = $req['site']; $sbr = NULL; if (!$sess['uid'] && !$U) { return NULL; } if (($is_adm = hasPermissions('sbr', $sess['uid'])) || hasPermissions('sbr_finance', $sess['uid'])) { if (isset($req['access'])) { if ($req['access'] == self::USER_ACCESS) { unset($sess['F']); unset($sess['E']); unset($sess['access']); } else { $sess['access'] = $req['access']; if ($req['F']) { $sess['F'] = $req['F']; unset($sess['E']); } else { if ($req['E']) { $sess['E'] = $req['E']; unset($sess['F']); } else { unset($sess['F']); unset($sess['E']); } } } } if (!$access) { $access = $sess['access']; } } if (hasPermissions('sbr_finance', $sess['uid'])) { $is_adm_sbr = true; } if ($is_adm && $site == 'admin') { // доступ А. $sbr = new sbr_adm($sess['uid'], $sess['login']); } else { if ($is_adm_sbr && $site == 'admin') { $sbr = new sbr_adm_finance($sess['uid'], $sess['login']); } else { if ($access == self::ADMIN_ACCESS) { if ($U && $is_emp !== NULL) { if ($is_emp) { $E = $U; } else { $F = $U; } } else { $E = $sess['E']; $F = $sess['F']; } if ($E) { $cls = 'sbr_emp'; if ($E instanceof users) { $u = $E; } else { $u = new employer(); $u->GetUser($E); } } else { if ($F) { $cls = 'sbr_frl'; if ($F instanceof users) { $u = $F; } else { $u = new freelancer(); $u->GetUser($F); } } } if ($u && !$err) { // отдаем доступ Ф или Р. $sbr = new $cls($u->uid, $u->login, $sess['uid']); } } } } if (!$sbr && $sess['uid']) { $cls = $access == self::ADMIN_ACCESS && $is_adm ? 'sbr_adm' : ($access == self::ADMIN_ACCESS && $is_adm_sbr ? 'sbr_adm_finance' : (is_emp($sess['role']) ? 'sbr_emp' : 'sbr_frl')); $sbr = new $cls($sess['uid'], $sess['login']); } return $sbr; }
/** * Аналог generateInvoice * использующий DocGenReserves класс для генерации дока. * * @param type $user_info * * @return bool */ public function generateInvoice2($user_info, $generate_now = false) { $user_info['form_type'] = sbr::FT_JURI; $file = new CFile(); $reserve_id = @$this->data['reserve_id']; $data = $this->getCheckByReserveId($reserve_id); if (isset($data['payed_date']) && !empty($data['payed_date'])) { return false; } if (isset($data['check_file_id']) && $data['check_file_id'] > 0) { $file->Delete($data['check_file_id']); } if (!$data) { $data = array(); } $this->data = array_merge($data, $this->data, $user_info); $login = @$_SESSION['login']; if (@$_SESSION['uid'] != $this->data['user_id']) { $emp = new employer(); $ret = $emp->GetName($this->data['user_id'], $error); if (!$ret) { return false; } $login = $ret['login']; } try { $doc = new DocGenReserves(array('id' => $this->options['src_id'], 'employer' => array('login' => $login))); $doc->setField('date_offer', $this->data['date_offer']); unset($this->data['date_offer']); if (!isset($this->data['date'])) { $this->data['date'] = date('Y-m-d H:i:s'); } $doc->setField('datetext_1', $this->data['date']); $doc->setField('num_bs', $this->options['src_id']); $doc->setField('fio_emp', $this->data); if (empty($user_info['phone'])) { $user_info['phone'] = $user_info['mob_phone']; } $doc->setField('phone', $user_info['phone']); $doc->setField('price_price', $this->data['price']); $doc->setField('nonds_commision', $this->data['tax_price']); $doc->setField('nondstotal_price', $this->data); $doc->setField('pricends_commision', $this->data['tax_price']); $doc->setField('price_reserve_price', $this->data['reserve_price']); $doc->setField('pricelong_reserve_price', $this->data['reserve_price']); $doc->setField('price_commision', $this->data['tax_price']); if ($generate_now) { $doc->disableQueue(); } $file = $doc->generateBankInvoice(); } catch (Exception $e) { return false; } $this->data['check_file_id'] = $file->id; if (!$this->addCheck()) { return false; } if ($generate_now) { Events::trigger('generateInvoice2'); } return $file; }
<?php if ($uid) { require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/employer.php"; $user = new employer(); // Изменяем авто продление PRO, если нужно if (strtolower($_GET['pro_auto_prolong']) == 'on') { $user->setPROAutoProlong('on', get_uid()); } if (strtolower($_GET['pro_auto_prolong']) == 'off') { $user->setPROAutoProlong('off', get_uid()); } $user->GetUser($_SESSION['login']); require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/account.php"; $account = new account(); $ok = $account->GetInfo($_SESSION['uid'], true); $u_is_pro_auto_prolong = $user->GetField($uid, $e, 'is_pro_auto_prolong', false); // Включено ли у юзера автоматическое продление PRO ?> <script type="text/javascript"> tr = true; var PRICE_EMP_PRO = <?php echo payed::PRICE_EMP_PRO; ?> ; function chang(t){ var amm = <?php echo round($account->sum, 2); ?> ; var s = t;
/** * Уведомление второй стороны о новом отзыве * * @param type $project */ public function _onFeedback($project, $to_frl = true) { $params = array('project_title' => $project['name'], 'project_url' => $GLOBALS['host'] . '/projects/' . $project['id']); $frl = new freelancer(); $frl->GetUserByUID($project['exec_id']); $emp = new employer(); $emp->GetUserByUID($project['user_id']); if ($to_frl) { //Письмо отправляем исполнителю $recipient = $this->_formatFullname($frl, true); $subject = "Заказчик оставил вам отзыв о сотрудничестве в проекте"; $params['emp_login'] = $emp->login; $params['emp_fullname'] = $this->_formatFullname($emp); $params['rating'] = $project['emp_rating']; $params['opinions_url'] = $GLOBALS['host'] . '/users/' . $frl->login . '/opinions/'; $params['text'] = $project['emp_feedback']; $template = 'fb_frl.tpl.php'; //С отзывом if ($project['emp_rating'] == 1 && $frl->is_pro != 't') { $template = 'pos_fb_frl.tpl.php'; //Не-ПРО с положительным отзывом } } else { $recipient = $this->_formatFullname($emp, true); $subject = "Исполнитель оставил вам отзыв о сотрудничестве в проекте"; $params['frl_login'] = $frl->login; $params['frl_fullname'] = $this->_formatFullname($frl); $params['rating'] = $project['frl_rating']; $params['opinions_url'] = $GLOBALS['host'] . '/users/' . $emp->login . '/opinions/'; $params['text'] = $project['frl_feedback']; $template = 'fb_emp.tpl.php'; } $this->subject = $subject; $this->recipient = $recipient; $this->message = Template::render(PROJECTS_TPL_MAIL_PATH . $template, $params); $ret = $this->send('text/html'); //Отправляем СМС if ($to_frl && isset($project['emp_feedback'])) { $status = null; if ($frl->is_pro == 't' && $project['emp_rating'] > 0 || $project['emp_rating'] < 0) { $status = @$project['frl_feedback_id'] > 0 ? 102 : 100; } elseif ($frl->is_pro == 'f' && $project['emp_rating'] > 0) { $status = 101; } if ($status) { ProjectsSms::model($frl->uid)->sendStatus($status, $project['id']); } } return $ret; }
$url_parts = parse_url($_SERVER['REQUEST_URI']); if ($_GET['pid'] && !$_POST['action']) { $friendly_url = getFriendlyURL('project', $_GET['pid']); if (strtolower($url_parts['path']) != $friendly_url) { header('HTTP/1.1 301 Moved Permanently'); header('Location: ' . $friendly_url); exit; } } switch ($section) { // смена статуса блока рекомендованных фрилансерова case 'setRcmdFrlStatus': require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/employer.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/stdf.php'; $status = __paramInit('string', 'status') == 'true'; $rcmdFrlStatus = employer::SetRcmdFrlStatus($status); exit; //$_GET['status'] case 'changePrjFavState': $pid = isset($_GET['pid']) ? intval($_GET['pid']) : 0; $uid = isset($_SESSION['uid']) ? intval($_SESSION['uid']) : 0; if ($pid === 0 || $uid === 0) { die('0'); } $obj_project = new projects(); echo $obj_project->changePrjFavState($uid, $pid); exit; //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ default: if (isset($_POST['prjid'])) {
<?php require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/employer.php"; $user = new employer(); $user->GetUser($_SESSION['login']); ?> <style> .tarif { color: #333333; font-size: 13px; } </style> <h1>Услуги</h1> <?php if ($profs) { ?> <table width="100%" border="0" cellspacing="0" cellpadding="19"> <tr valign="top"> <td height="400" valign="top" bgcolor="#FFFFFF" class="box2" style="color: #333333;"> <div style="color: #000000; font-size: 35px; margin-bottom: 25px;">Предоставленные услуги</div> <table width="290" border="0" cellspacing="0" cellpadding="0" style="background-image: url(/images/bg_pro.gif); background-repeat: no-repeat;"> <tr valign="top"> <td width="50" rowspan="2" style="height: 112; padding-top:35px; padding-left:8px;padding-right:3px;"><?php echo view_avatar($user->login, $user->photo); ?> </td> <td class="frlname" style="height: 112; padding-top:35px;"><?php echo view_pro_emp(); ?> <?php echo $user->uname;
/** * @param $frm - данные запроса * @param $type - тип страницы, с которой была запрошена форма быстрого редактирования проекта * 1 - лента на главной, * 2 - редактируется конкурс, * 3 - страница проекта в профиле работодателя, * 4 - проект в списке в профиле работодателя * */ function quickprjedit_save_prj($frm, $type) { $objResponse = new xajaxResponse(); if (hasPermissions('projects')) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/projects.php'; $oprj = new new_projects(); $project = $oprj->getPrj($frm['id']); if ($project['id']) { $objResponse->script('popupQEditPrjHideErrors();'); $key = $frm['tmpid']; $tmpPrj = new tmp_project($key); $tmpPrj->init(2); $errors = array(); $frm['name'] = trim($frm['name']); $frm['descr'] = trim($frm['descr']); if ($frm['link'] == 'Адрес сайта') { $frm['link'] = ''; } $frm['link'] == trim($frm['link']); if (!empty($frm['link'])) { if (strpos($frm['link'], 'http://') === 0) { $protocol = 'http://'; } if (strpos($frm['link'], 'https://') === 0) { $protocol = 'https://'; } if ($protocol == '') { $protocol = 'http://'; } $frm['link'] = $protocol . ltrim($frm['link'], $protocol); if (!is_url($frm['link'])) { $errors[] = 'logourl'; } } if (empty($frm['name'])) { $errors[] = 'name'; } if (empty($frm['descr'])) { $errors[] = 'descr'; } if ($frm['pf_city']) { $frm['city'] = $frm['pf_city']; } if ($project['kind'] == 7) { if (!preg_match("/^([0-9]{1,2})\\-([0-9]{1,2})\\-([0-9]{4})\$/", $frm['end_date'], $o1) || !checkdate($o1[2], $o1[1], $o1[3])) { $errors[] = 'end_date'; } if (!preg_match("/^([0-9]{1,2})\\-([0-9]{1,2})\\-([0-9]{4})\$/", $frm['win_date'], $o2) || !checkdate($o2[2], $o2[1], $o2[3])) { $errors[] = 'win_date'; } if (!in_array('end_date', $errors) && mktime(0, 0, 0, $o1[2], $o1[1], $o1[3]) <= mktime(0, 0, 0)) { $errors[] = 'end_date_past'; } if (!in_array('end_date', $errors) && mktime(0, 0, 0, $o2[2], $o2[1], $o2[3]) <= mktime(0, 0, 0, $o1[2], $o1[1], $o1[3])) { $errors[] = 'win_date_past'; } } if (!count($errors)) { $c = $frm['categories']; $sc = $frm['subcategories']; foreach ($frm['categories'] as $sKey => $value) { if ($value == 0) { continue; } $check[] = $value . '_' . $sc[$sKey]; } $uniq = array_unique($check); foreach ($uniq as $val) { list($cat, $subcat) = explode('_', $val); $check_array[$cat][] = $subcat; } $categories = array(); foreach ($check_array as $k => $val) { if (count($val) > 1 && array_search(0, $val) !== false) { $categories[] = array('category_id' => $k, 'subcategory_id' => 0); unset($check_array[$k]); } else { foreach ($val as $m => $v) { $categories[] = array('category_id' => $k, 'subcategory_id' => $v); } } } $tmpPrj->setProjectField('name', change_q_x($frm['name']), true); $tmpPrj->setProjectField('descr', change_q_x($frm['descr'], false, true, '', false, false)); $tmpPrj->setProjectField('pro_only', $frm['pro_only'] == 1 ? 't' : 'f'); $tmpPrj->setProjectField('verify_only', $frm['verify_only'] == 1 ? 't' : 'f'); $tmpPrj->setProjectField('strong_top', (int) $frm['strong_top']); $tmpPrj->setProjectField('prefer_sbr', $frm['prefer_sbr'] == 1 ? 't' : 'f'); $tmpPrj->setProjectField('urgent', $frm['is_urgent'] == 1 ? 't' : 'f'); $tmpPrj->setProjectField('hide', $frm['is_hide'] == 1 ? 't' : 'f'); switch ($frm['kind']) { case 1: $tmpPrj->setProjectField('country', 0); $tmpPrj->setProjectField('city', 0); $tmpPrj->setProjectField('kind', $frm['kind']); break; case 4: $tmpPrj->setProjectField('country', $frm['country']); $tmpPrj->setProjectField('city', $frm['city']); $tmpPrj->setProjectField('kind', $frm['kind']); break; } if ($project['kind'] == 7) { $tmpPrj->setProjectField('end_date', $frm['end_date']); $tmpPrj->setProjectField('win_date', $frm['win_date']); $tmpPrj->clearWinners(); } $tmpPrj->setCategories($categories); $tmpPrj->setProjectField('link', $frm['link']); $tmpPrj->setProjectField('is_color', $frm['is_color'] == 1 ? 't' : 'f'); $tmpPrj->setProjectField('is_bold', $frm['is_bold'] == 1 ? 't' : 'f'); $tmpPrj->setAddedTopDays($frm['top_ok'] == 1 ? $frm['top_days'] : 0); if (!$project['folder_id']) { $tmpPrj->setProjectField('folder_id', 0); } require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/attachedfiles.php'; $attachedfiles = new attachedfiles($frm['attachedfiles_session']); $attachedfiles_files = $attachedfiles->getFiles(array(1, 3, 4)); $tmpPrj->addAttachedFiles($attachedfiles_files); $attachedfiles->clear(); $tmpPrj->saveProject(get_uid(false), $ttt); require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/project_exrates.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/stop_words.php'; $stop_words = new stop_words(hasPermissions('projects')); $objResponse->script('popupQEditPrjHide();'); switch ($type) { case 1: case 4: // Лента проектов global $session; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/projects.php'; $prj_id = $project['id']; $obj_project = new new_projects(); $tproject = $obj_project->getProjects($num, -1, 1, false, null, false, true, $prj_id); $this_kind = $tproject[0]['kind']; $this_uid = get_uid(false); $this_pro_last = $_SESSION['pro_last']; $this_is_pro = payed::CheckPro($_SESSION['login']); $this_edit_mode = hasPermissions('projects'); if ($this_uid) { $this_user_role = $_SESSION['role']; } $this_project = $tproject[0]; $row = $this_project; if ($this_edit_mode || $this_project['kind'] == 2 || $this_project['user_id'] == $this_uid || $this_project['offer_id'] || $this_pro_last) { $this_show_data = 1; $row['show_data'] = 1; } else { $this_show_data = 0; $row['show_data'] = 0; } $descr = $row['descr']; $descr = preg_replace('/^ /', "", $descr); $descr = preg_replace("/(\n) /", "\$1", $descr); $descr = reformat(strip_tags(LenghtFormatEx($descr, 180), '<br />'), 50, 1, 0, 1); $descr = preg_replace("//", ' ', $descr); $row['descr'] = $descr; $row['t_is_payed'] = $this_project['payed'] && $this_project['kind'] != 2 && $this_project['kind'] != 7; $row['t_is_contest'] = $this_project['kind'] == 2 || $this_project['kind'] == 7; $row['t_pro_only'] = $this_project['pro_only'] == 't'; $row['t_verify_only'] = $this_project['verify_only'] == 't'; $row['t_hide'] = $this_project['hide'] == 't'; $row['t_urgent'] = $this_project['urgent'] == 't'; $row['t_prefer_sbr'] = $this_project['prefer_sbr'] == 't'; $row['priceby'] = $this_project['priceby']; $row['t_is_adm'] = hasPermissions('projects'); $row['t_is_ontop'] = strtotime($this_project['top_to']) >= time(); $row['unread'] = (int) $this_project['unread_p_msgs'] + (int) $this_project['unread_c_msgs'] + (int) $this_project['unread_c_prjs']; $row['t_is_proonly'] = $this_project['pro_only'] == 't' && !$_SESSION['pro_last'] && !$this_edit_mode && $this_uid != $this_project['user_id']; $attaches = projects::GetAllAttach($this_project['id']); $attaches = !$attaches ? array() : $attaches; foreach ($attaches as $k => $a) { $a['virus'] = is_null($a['virus']) ? $a['virus'] : bindec($a['virus']); $attaches[$k] = $a; } $row['attaches'] = $this_project['attaches'] = $attaches; $is_ajax = true; $can_change_prj = hasPermissions('projects'); $row['friendly_url'] = getFriendlyURL('project', $row['id']); ob_start(); if ($type == 1) { $project = projects::initData($row); require_once $_SERVER['DOCUMENT_ROOT'] . '/projects/tpl.lenta-item.php'; } else { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/employer.php'; $user = new employer(); $user->GetUserByUID($this_project['user_id']); require_once $_SERVER['DOCUMENT_ROOT'] . '/projects/tpl.employer-project-item.php'; } $html_data = ob_get_contents(); ob_end_clean(); $objResponse->assign("project-item{$prj_id}", 'innerHTML', $html_data); if ($row['is_color'] == 't') { $objResponse->script("\$('project-item{$prj_id}').addClass('b-post_bg_fffded')"); } else { $objResponse->script("\$('project-item{$prj_id}').removeClass('b-post_bg_fffded')"); } //$objResponse->script('alert("Лента");'); //$objResponse->script('window.location.reload();'); break; case 2: // Конкурс //$objResponse->script('alert("Конкурс");'); $project_exRates = project_exrates::GetAll(); $translate_exRates = array(0 => 2, 1 => 3, 2 => 4, 3 => 1); global $session; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/contest.php'; $prj_id = $project['id']; $obj_project = new projects(); $project = $obj_project->GetPrjCust($prj_id); if (hasPermissions('projects')) { $project_history = $obj_project->GetPrjHistory($prj_id); } $project_attach = $obj_project->GetAllAttach($prj_id); $contest = new contest($project['id'], $uid, is_emp(), $project['user_id'] == $uid, hasPermissions('projects'), is_pro()); $contest->GetOffers((string) $_GET['filter']); $project['contest_end'] = mktime() > strtotime($project['end_date']); $project['contest_win'] = mktime() > strtotime($project['win_date']); if (trim($project['contacts']) != '') { $contacts_employer = unserialize($project['contacts']); $empty_contacts_employer = 0; foreach ($contacts_employer as $name => $contact) { if (trim($contact['value']) == '') { $empty_contacts_employer++; } } $is_contacts_employer_empty = count($contacts_employer) == $empty_contacts_employer; } ob_start(); require_once $_SERVER['DOCUMENT_ROOT'] . '/projects/contest_item.php'; $html_data = ob_get_contents(); ob_end_clean(); $objResponse->assign("contest_info_{$prj_id}", 'innerHTML', $html_data); break; case 3: // Проект $project_exRates = project_exrates::GetAll(); $translate_exRates = array(0 => 2, 1 => 3, 2 => 4, 3 => 1); $prj_id = $project['id']; $obj_project = new projects(); $project = $obj_project->GetPrjCust($prj_id); if (trim($project['contacts']) != '') { $contacts_employer = unserialize($project['contacts']); $empty_contacts_employer = 0; foreach ($contacts_employer as $name => $contact) { if (trim($contact['value']) == '') { $empty_contacts_employer++; } } $is_contacts_employer_empty = count($contacts_employer) == $empty_contacts_employer; } $project_attach = $obj_project->GetAllAttach($prj_id); ob_start(); require_once $_SERVER['DOCUMENT_ROOT'] . '/projects/tpl.prj-main-info.php'; $html_data = ob_get_contents(); ob_end_clean(); $objResponse->assign("project_info_{$project['id']}", 'innerHTML', $html_data); break; default: $objResponse->script('window.location.reload();'); break; } } else { $tab1 = 0; $tab2 = 0; foreach ($errors as $error) { switch ($error) { case 'end_date': $objResponse->script('$("popup_qedit_prj_fld_err_txt_cal1").set("html", "Неправильная дата");'); $objResponse->script('popupQEditPrjShowError("cal1");'); break; case 'win_date': $objResponse->script('$("popup_qedit_prj_fld_err_txt_cal2").set("html", "Неправильная дата");'); $objResponse->script('popupQEditPrjShowError("cal2");'); break; case 'end_date_past': $objResponse->script('$("popup_qedit_prj_fld_err_txt_cal1").set("html", "Дата окончания конкурса не может находиться в прошлом");'); $objResponse->script('popupQEditPrjShowError("cal1");'); break; case 'win_date_past': $objResponse->script('$("popup_qedit_prj_fld_err_txt_cal2").set("html", "Дата определения победителя должна быть больше даты окончания конкурса");'); $objResponse->script('popupQEditPrjShowError("cal2");'); break; case 'logourl': $objResponse->script('$("popup_qedit_prj_fld_err_pay").setStyle("display","block");'); $objResponse->script('$("popup_qedit_prj_fld_err_pay_txt").set("html", "Ссылка для логотипа указана не верно");'); break; default: $objResponse->script('popupQEditPrjShowError("' . $error . '");'); break; } if (in_array($error, array('name', 'descr', 'location', 'end_date', 'win_date', 'end_date_past', 'win_date_past'))) { ++$tab1; } elseif (in_array($error, array('logourl'))) { ++$tab2; } } if ($tab1) { $objResponse->script('popupQEditPrjMenu(1)'); } elseif ($tab2) { $objResponse->script('popupQEditPrjMenu(2)'); } } } $objResponse->script('popupQEditIsProcess = false;'); } return $objResponse; }
/** * Формирует отчет по арбитражу за определенный период. * * @param string $sStartDate дата начала периода * @param string $sEndDate дата конца периода */ public function printArbitrageReport($sStartDate = null, $sEndDate = null) { global $EXRATE_CODES; // имя итогового файла $sWorkTitle = 'Arbitrage report'; $sWorkTitle .= $sStartDate ? ' ' . $sStartDate : ''; $sWorkTitle .= $sEndDate ? ' - ' . $sEndDate : ''; $sWorkTitle .= '.xls'; // выбираем все этапы которые закрыты арбитражом global $DB; $sQuery = 'SELECT ss.id, sd.num FROM sbr_stages ss LEFT JOIN sbr_docs sd ON ss.sbr_id = sd.sbr_id AND sd.type = 8 WHERE ss.status = ' . sbr_stages::STATUS_ARBITRAGED; $sQuery .= $sStartDate ? " AND ss.closed_time >= '{$sStartDate}'" : ''; $sQuery .= $sEndDate ? " AND ss.closed_time <= '{$sEndDate}'" : ''; $aRows = $DB->rows($sQuery . ' ORDER BY ss.closed_time'); // подключаем pear require_once 'Spreadsheet/Excel/Writer.php'; // создаем документ $workbook = new Spreadsheet_Excel_Writer(); $workbook->setVersion(8); // создаем лист $worksheet =& $workbook->addWorksheet('1'); $worksheet->setInputEncoding('CP1251'); // заголовок листа $worksheet->write(0, 0, 'ООО "Ваан"'); $worksheet->write(2, 1, 'Таблица по актам арбитража'); $m_sty = array('NumFormat' => '### ### ##0.00', 'Align' => 'right'); $d_sty = array('NumFormat' => 'DD MMM, YYYY HH:MM:SS'); $td_sty = array('FontFamily' => 'Calibri', 'VAlign' => 'vequal_space', 'Align' => 'center', 'Border' => 1, 'BorderColor' => 'black'); $th_sty = array('FontFamily' => 'Arial', 'Size' => 10, 'Align' => 'center', 'Border' => 1, 'BorderColor' => 'black', 'Bold' => 1); $format_top =& $workbook->addFormat($th_sty); $format_td =& $workbook->addFormat($td_sty); $format_money =& $workbook->addFormat(array_merge($td_sty, $m_sty)); $format_date =& $workbook->addFormat(array_merge($td_sty, $d_sty)); $format_top->setTextWrap(1); $aHeader = array('№ п/п', 'Номер акта', 'Дата', 'Номер «Безопасной Сделки»', 'Наименование Работодателя', 'Наименование Исполнителя', 'Сумма к выплате Работодателю, руб.коп.', 'Сумма к выплате Исполнителю, руб.коп.', 'Способ выплаты'); for ($i = 0; $i < count($aHeader); ++$i) { $worksheet->write(3, $i, $aHeader[$i], $format_top); } // данные if ($aRows) { $nCnt = 1; $aRates = exrates::GetAll(); foreach ($aRows as $aOne) { $sbr = sbr_meta::getInstance(sbr_meta::ADMIN_ACCESS); $stage = $sbr->initFromStage($aOne['id'], false); $stage->getArbitrage(true); // № п/п $worksheet->write($nCnt + 3, 0, $nCnt, $format_td); // Номер акта $worksheet->write($nCnt + 3, 1, $aOne['num'], $format_td); // Дата $sDate = date('Y-m-d H:i:s', strtotime($stage->arbitrage['resolved'])); $worksheet->write($nCnt + 3, 2, $sDate, $format_date); // Номер СБР $worksheet->write($nCnt + 3, 3, $stage->sbr->getContractNum(), $format_td); // Наименование Работодателя $stage->sbr->getEmpReqvs(); $sEmpFio = sbr_meta::getFioFromReqvs($stage->sbr->emp_reqvs); if (!$sEmpFio) { $emp = new employer(); $emp->GetUserByUID($stage->sbr->emp_id); $sEmpFio = $emp->uname . ' ' . $emp->usurname . ' [' . $emp->login . ']'; } $worksheet->write($nCnt + 3, 4, $sEmpFio, $format_td); // Наименование Исполнителя $stage->sbr->getFrlReqvs(); $sFrlFio = sbr_meta::getFioFromReqvs($stage->sbr->frl_reqvs); if (!$sFrlFio) { $frl = new freelancer(); $frl->GetUserByUID($stage->sbr->frl_id); $sFrlFio = $frl->uname . ' ' . $frl->usurname . ' [' . $frl->login . ']'; } $worksheet->write($nCnt + 3, 5, $sFrlFio, $format_td); // Сумма к выплате Работодателю, руб.коп. $nSumm = $stage->getPayoutSum(sbr::EMP, exrates::BANK); $worksheet->write($nCnt + 3, 6, $nSumm, $format_money); // Сумма к выплате Исполнителю, руб.коп. $nSumm = $stage->getPayoutSum(sbr::FRL, exrates::BANK); $worksheet->write($nCnt + 3, 7, $nSumm, $format_money); // Способ выплаты $worksheet->write($nCnt + 3, 8, $EXRATE_CODES[$stage->sbr->cost_sys][1], $format_td); ++$nCnt; } } // отправляем на скачивание $workbook->send($sWorkTitle); // закрываем документ $workbook->close(); }
/** * Как работать с выбранным исполнителем: вы можете обсудить проект в сообщениях и договорившись о сотр-ве, начать СБР. * Это рассылка для новых работодателей. Отправляется в тот же день через несколько часов. * вызывается из hourly.php раз в сутки. */ public function employerHelpInfo() { session_start(); global $DB; $rows = employer::GetNewEmployer(); require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/sbr.php'; $host = $GLOBALS['host']; $this->subject = 'FL.ru: как работать с выбранным исполнителем?'; $message = "<p>Мы рады приветствовать вас на крупнейшей бирже удаленной работы FL.ru. Начало работы на сайте – это подбор нужного вам специалиста. Найти исполнителя можно несколькими способами:</p>\n \n<ul>\n<li>публикация проекта или конкурса;</li>\n<li>поиск в каталоге фрилансеров;</li>\n<li>заказ подбора исполнителя у наших менеджеров.</li>\n</ul>\n\n<p>После того как вы определитесь с фрилансером, который будет выполнять ваш заказ, обсудите с ним детали сотрудничества.</p>\n\n<p>Мы рекомендуем всегда заключать «<a href='{$host}/" . sbr::NEW_TEMPLATE_SBR . "/?utm_source=newsletter4&utm_medium=rassylka&utm_campaign=wellcome_employer_2'>Безопасную Сделку</a>» – так вы сможете обмениваться любой информацией и будете уверены в том, что ваш заказ будет выполнен точно в срок и в соответствии с техническим заданием.</p>\n\n<p>При сотрудничестве через «Безопасную Сделку» гонорар исполнителю выплачивается только после того, как вы примете результат работы. <a href='https://feedback.fl.ru/topic/397436-chto-takoe-bezopasnaya-sdelka/?utm_source=newsletter4&utm_medium=rassylka&utm_campaign=wellcome_employer_2'>Оплата</a> производится любым удобным для вас способом: банковской картой, с помощью электронных платежных систем или же по безналичному расчету.</p>\n\n<p>Перейти на сайт и приступить к поиску исполнителя!</p>"; $this->message = $this->GetHtml(false, $message, array('header' => 'default', 'footer' => 'feedback_default'), array('target_footer' => true)); if (count($rows) < 20) { foreach ($rows as $user) { $this->message = $this->GetHtml(false, $message, array('header' => 'default', 'footer' => 'feedback_default'), array('login' => $user['login'])); $this->recipient = $user['uname'] . ' ' . $user['usurname'] . ' [' . $user['login'] . '] <' . $user['email'] . '>'; $this->send('text/html'); } return; } $this->recipient = ''; $massId = $this->send('text/html'); foreach ($rows as $user) { if (!$user['unsubscribe_key']) { $user['unsubscribe_key'] = users::GetUnsubscribeKey($user['login']); } $this->recipient[] = array('email' => $user['uname'] . ' ' . $user['usurname'] . ' [' . $user['login'] . '] <' . $user['email'] . '>', 'extra' => array('USER_NAME' => $user['uname'], 'USER_SURNAME' => $user['usurname'], 'USER_LOGIN' => $user['login'], 'MESSAGE' => $message, 'UNSUBSCRIBE_KEY' => $user['unsubscribe_key'])); } $this->bind($massId); }
/** * Основной метод регистрации пользователей * @param bool $is_preset Флаг, показывающий наличие подготовленных данных * @return type */ public function actionRegistration($is_preset = false) { require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/sbr_meta.php"; if (!$is_preset) { $this->setFieldInfo('role', __paramInit('int', null, 'role')); $this->setFieldInfo('login', trim(__paramInit('string', null, 'login'))); $this->setFieldInfo('email', trim(__paramInit('string', null, 'email'))); $this->setFieldInfo('subscr_news', trim(__paramInit('bool', null, 'subscribe'))); //$this->setFieldInfo('smscode', trim(__paramInit('string', null, 'smscode'))); //$this->setFieldInfo('phone', $_SESSION["reg_phone"]); // пароль берем напрямую из $_POST, а то __paramInit режет спецсимволы (пароль хешируется - SQL инъекция невозможна) $this->setFieldInfo('password', stripslashes($_POST['password'])); $this->checkedFields(); session_start(); $this->setFieldInfo('captchanum', __paramInit('string', null, 'captchanum')); $num = __paramInit('string', null, 'rndnum'); if (!$_SESSION["regform_captcha_entered"]) { $_SESSION['reg_captcha_num'] = $this->captchanum; $captcha = new captcha($this->captchanum); if (!$captcha->checkNumber($num)) { $this->error['captcha'] = 'Неверный код. Попробуйте еще раз'; $this->is_validate = false; unset($_SESSION['reg_captcha_num']); } } } //if ( (is_release() || $_SESSION["reg_phone"] != 71111112222) && sbr_meta::findSafetyPhone($_SESSION["reg_phone"], __paramInit('string', null, 'role') == 2 ? 'emp' : 'frl') ) { // $this->error['phone'] = 'Пользователь с таким номером уже зарегистрирован'; // $this->is_validate = false; // unset($_SESSION['reg_captcha_num']); //} if ($this->is_validate) { //unset($_SESSION['smsIsRequested']); if ($this->role == self::ROLE_FREELANCER) { require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/freelancer.php"; $newuser = new freelancer(); $newuser->role = 0; } else { if ($this->role == self::ROLE_EMPLOYER) { require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/employer.php"; $newuser = new employer(); $newuser->role = 1; } } $newuser->login = substr($this->login, 0, 15); $newuser->email = substr($this->email, 0, 64); $newuser->passwd = substr($this->password, 0, 24); $newuser->subscr = '1111111' . (int) $this->subscr_news . '11111111'; $newuser->uid = $newuser->Create($rerror, $error); if ($newuser->uid && !$error) { $ok = $this->completedRegistration($newuser); if ($ok) { //require_once $_SERVER['DOCUMENT_ROOT']."/classes/sms_gate.php"; //$phone = '+' . preg_replace("#^\+#", "", $_SESSION["reg_phone"]); unset($_SESSION["regform_captcha_entered"]); unset($_SESSION["login_generated"]); $tu_ref_uri = @$_SESSION['tu_ref_uri']; //unset($_SESSION["reg_phone"]); //unset($_SESSION['send_sms_time']); //sms_gate::saveSmsInfo($phone, $_SESSION["reg_sms_isnn"], $_SESSION["smsCode"], $_SESION["reg_sms_date_send"], $newuser->uid); $_SESSION['email'] = $newuser->email; $_SESSION['rrole'] = $this->role; // Если пришли сюда регистрироватся то после нажатия кнопки регистрации удаляем куки регистрации иначе после активации нас перекинет на мастер $wizard = new wizard(); $wizard->clearCookiesById($newuser->role == 1 ? 1 : 2); // В зависимоти от того кого регистрируем // На всякий случай при новой регистрации удаляем переменную проверки self::resetCheckAccess(); $_user_action = isset($_REQUEST['user_action']) && $_REQUEST['user_action'] ? substr(htmlspecialchars($_REQUEST['user_action']), 0, 25) : ''; $_user_action = trim($_user_action); login($newuser->login, users::hashPasswd(trim(stripslashes($newuser->passwd))), 1, false); if (is_emp($newuser->role)) { $_SESSION['reg_role'] = 'Employer'; $ref_uri = isset($_SESSION['ref_uri'], $_SESSION['was_customer_wizard']) ? urldecode($_SESSION['ref_uri']) : null; unset($_SESSION['was_customer_wizard']); $redirect_to = $ref_uri ? $ref_uri : '/public/?step=1&kind=1'; //По умолчанию, при регистрации заказчика, перенаправляем его на публикацию проекта if (strpos($_user_action, 'project_to_')) { $login = str_replace('add_project_to_', '', $_user_action); $redirect_to = '/public/?step=1&kind=9&exec=' . $login; } $redirect = __paramInit('link', NULL, 'redirect'); if ($redirect && !$ref_uri) { $redirect_to = urldecode($redirect); } } else { $_SESSION['reg_role'] = 'Freelancer'; $redirect_to = $redirect_to = "/registration/profession.php" . (!empty($user_action) ? "?user_action={$user_action}" : ''); //Очищаем чтобы далее небыло редиректа //@todo: согласно https://beta.free-lance.ru/mantis/view.php?id=28862 $_user_action = ''; } switch ($_user_action) { case 'tu': if ($tu_ref_uri) { $redirect_to = HTTP_PFX . $_SERVER["HTTP_HOST"] . urldecode($tu_ref_uri); } break; case 'new_tu': if (!is_emp($newuser->role)) { $redirect_to = HTTP_PFX . $_SERVER["HTTP_HOST"] . '/users/' . $newuser->login . '/tu/new/'; } else { $redirect_to = HTTP_PFX . $_SERVER["HTTP_HOST"] . '/tu/'; } break; case 'promo_verification': $redirect_to = '/promo/verification/'; break; case 'buypro': if (is_emp($newuser->role)) { $redirect_to = '/payed-emp/'; } else { $redirect_to = '/payed/'; } break; case 'add_order': $url = __paramInit('link', NULL, 'redirect'); $redirect_to = HTTP_PFX . $_SERVER["HTTP_HOST"] . urldecode($url); break; } if (!is_emp($newuser->role)) { $_SESSION['activate_password'] = $newuser->passwd; $_SESSION['subscr_news'] = (int) $this->subscr_news; //Создаем новый экземпляр, т.к. нужно обновить только подписки //Отписываем от всего, кроме личных сообщений $freelancer = new freelancer(); $freelancer->UpdateSubscr($newuser->uid, 1, array(), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, false, 0); } //Обработать действия по событию успешной регистрации $this->afterSuccessRegistation($newuser); if ($is_preset) { return array('success' => true, 'user_id' => $newuser->uid, 'redirect' => $redirect_to); } else { header("Location: " . $redirect_to); exit; } } } } else { return $this->error; } }
/** * Не использовать! * Отправляем письмо уведомление исполнителю об изменении заказе на базе ТУ. * * @param array $order * @return boolean */ public function _changeOrder($order) { if (empty($order)) { return FALSE; } //@todo: Нет необходимости получать пользователей в заказе все есть! $employer = new employer(); $employer->GetUserByUID(@$order['emp_id']); if (!$employer->uid) { return FALSE; } $freelancer = new freelancer(); $freelancer->GetUserByUID(@$order['frl_id']); if (!$freelancer->uid) { return FALSE; } $this->recipient = $this->_formatFullname(&$freelancer, true); $message = Template::render(TSERVICES_TPL_MAIL_PATH . 'change_order_frl.tpl.php', array('smail' => &$this, 'order' => $order, 'params' => $this->_addUrlParams('f'), 'emp_fullname' => $this->_formatFullname(&$employer))); $this->message = nl2br($message); $ret_f = $this->send('text/html'); return $ret_f; }
//а нафига вообще тут это нужно? if (!$page) { $page = 1; } if ($login) { // Ћичный блог пользовател¤ $login = pg_escape_string($login); $user = new users(); $user->GetUser($login); if ($user->uid && !$user->is_banned) { if (!is_emp($user->role)) { $user = new freelancer(); $user->GetUser($login); $is_visible = substr($user->tabs, 3, 1); } else { $user = new employer(); $user->GetUser($login); $is_visible = substr($user->tabs, 2, 1); } $user->GetUser($login); if ($is_visible) { $themes = $blog->GetMsgs($user->uid, $page, $num_msgs, $error, 1); } } $rss_title = "Ћичные блоги на FL.ru ({$user->login})"; $rss_link = $host . "/rss/blogs.php?user={$user->login}"; $rss_description = "Ћичные блоги на сайте www.fl.ru ({$user->login})"; $gr_name = "Ћичные блоги"; } else { // ќбщие блоги $themes = $blog->GetGroup($gr, $gr_name, $num_msgs, $page, $err, 0, 1, $from, $read_only, "new", false);
session_start(); $uid = get_uid(); $no_banner = true; /* if ( !$uid ) { include( '../emp_only.php' ); exit(); } */ if ($uid && substr($_SESSION['role'], 0, 1) != 1) { header('Location: /payed/'); exit; } if ($uid) { $mod = hasPermissions('users') ? 0 : 1; $user = new employer(); // Изменяем авто продление PRO, если нужно if (strtolower($_POST['pro_auto_prolong']) == 'on') { $user->setPROAutoProlong('on', $uid); $result['success'] = true; if (!WalletTypes::isWalletActive($uid)) { $result['wallet_popup'] = true; } echo json_encode($result); exit; } if (strtolower($_POST['pro_auto_prolong']) == 'off') { $user->setPROAutoProlong('off', $uid); echo json_encode(array('success' => true)); exit; }