/** * показывает сплэшскрин, предварительно сделав проверку: нужно ли его показывать * @param type $type код сплэша * @param type $debug - принудительно показать сплэш, даже если не прошел проверку * @param type $setViewed если true - отметить как просмотренный * @return boolean */ function show($type, $debug = false, $setViewed = true) { $need_show = false; if (self::SPLASH_EMPLOYER & $type || self::SPLASH_FREELANCER & $type) { $need_show = self::checkEmpFrlSplashShow($type); } if (self::SPLASH_MESSAGES & $type) { $need_show = self::checkContactsSplashShow(); } if (self::SPLASH_MONEY & $type) { $need_show = !self::isViewed($type); } if (self::SPLASH_PROEMP_NOTPROFRL & $type || self::SPLASH_NOTPROEMP_NOTPROFRL & $type) { $need_show = true; } if (self::SPLASH_REAL_NAMES & $type && !self::isViewed($type) || $debug) { require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/attachedfiles.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/users.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/rating.php"; $attachedFiles = new attachedfiles(); $user = new users(); $user->GetUserByUID(get_uid(0)); $userpicSrc = $user->photo ? WDCPREFIX . '/users/' . $user->login . '/foto/' . $user->photo : WDCPREFIX . '/images/no_foto.png'; $rating = new rating($user->uid, $user->is_pro, $user->is_verify, $user->is_profi); $r_data = $rating->data; $need_show = true; } if (self::SPLASH_NO_SPEC & $type && !self::isViewed($type) || $debug) { require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/freelancer.php"; $frl = new freelancer(); $frl->GetUserByUID(get_uid(0)); if (!$frl->spec) { $need_show = true; } } // Проверяем не показывали уже этот тип if ($need_show || $debug || self::SPLASH_KONKURS == $type) { $tpl_splash = $_SERVER['DOCUMENT_ROOT'] . self::SPLASH_DIR . self::getTemplateSplash($type); if ($tpl_splash != '') { include $tpl_splash; if ($debug) { return true; } // Отмечаем как просмотренный if ($type != self::SPLASH_MESSAGES && $setViewed) { self::setViewed($type); } return true; } } }
public function process_event(&$event) { $this->force_connect(); switch ($event->type) { case 'newsletter_freelancer': $uid = (int) $event->data['uid']; //$op = $event->data['op']; $ms = new MemStorage('newsletter_freelancer'); if ($ms->isExistData()) { $item = freelancer::GetPrjRecp($uid); $page_id = $ms->isExistItem($uid); $this->log->notice('getDebugInfo: ' . $ms->getDebugInfo()); $this->log->notice('BEFORE: ' . print_r($ms->getItem($uid), true)); if ($item) { if ($page_id === false) { //insert $ms->insertItem($uid, $item); $this->log->notice("insertItem {$uid}"); } else { //update $ms->updateItem($uid, $item, $page_id); $this->log->notice("updateItem {$uid}"); } } elseif ($page_id) { //delete $ms->deleteItem($uid, $page_id); $this->log->notice("deleteItem {$uid}"); } $this->log->notice('AFTER: ' . print_r($ms->getItem($uid), true)); } break; } return PGQ_EVENT_OK; }
function SaveStatus($text, $statusType, $login = NULL) { session_start(); $freelancer = new freelancer(); $text = addslashes(substr(stripslashes(trim($text)), 0, 200)); close_tags($text, 's'); $freelancer->status_text = antispam(htmlspecialchars(htmlspecialchars_decode(change_q_x(trim($text), true, false), ENT_QUOTES), ENT_QUOTES)); $freelancer->status_type = intval($statusType); if ($freelancer->statusToStr($statusType)) { $stdStatus = ""; $objResponse = new xajaxResponse(); $uid = hasPermissions('users') && $login != $_SESSION['login'] ? $freelancer->GetUid($err, $login) : get_uid(false); $pro = hasPermissions('users') && $login != $_SESSION['login'] ? is_pro(true, $uid) : is_pro(); $error = $freelancer->Update($uid, $res); if (!$freelancer->status_text) { $freelancer->status_text = $stdStatus; } $freelancer->status_text = stripslashes($freelancer->status_text); switch ($freelancer->status_type) { case 1: $status_cls = 'b-status b-status_busy'; break; case 2: $status_cls = 'b-status b-status_abs'; break; case -1: $status_cls = 'b-status b-status_no'; break; default: $status_cls = 'b-status b-status_free'; } if (!$noassign) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/stop_words.php'; $stop_words = new stop_words(hasPermissions('users')); $sStatusText = $pro ? $freelancer->status_text : $stop_words->replace($freelancer->status_text); //$GLOBALS['xajax']->setCharEncoding("windows-1251"); $jsobj = json_encode(array('data' => iconv('CP1251', 'UTF8', $freelancer->status_text))); $objResponse->assign("statusText", "innerHTML", $freelancer->status_text == $stdStatus ? "" : reformat($sStatusText, 40, 0, 1, 25)); $objResponse->assign("statusTitle", "innerHTML", $freelancer->statusToStr($statusType)); // $objResponse->assign("statusTitle", "style.display", $statusType > -1 ? '' : 'none'); $objResponse->script("statusType = {$statusType};\n\t\t\t statusTxt = document.getElementById('statusText').innerHTML;\n\t\t\t statusTxtSrc = {$jsobj};"); } $objResponse->script("\$('bstatus').erase('class');\n \$('bstatus').addClass('{$status_cls}');"); } return $objResponse; }
/** * Функция автозаполнения полей. * * @return bool */ public function setFieldAutoComplete() { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/freelancer.php'; $freelancer = freelancer::getTopFreelancer($this->getListSize()); if ($freelancer) { foreach ($freelancer as $frl) { $link[] = "{$GLOBALS['host']}/users/{$frl['login']}"; } $this->initBlock($link); return true; } return false; }
} $page = intval(trim($_GET['page'])); $from = intval(trim($_GET['from'])); $from = 0; //а нафига вообще тут это нужно? 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})";
function checkFrlRezType($frl_id, $emp_rez_type) { $frl_id = intval($frl_id); $objResponse = new xajaxResponse(); $objResponse->script("\$('taxes_alert').hide();"); $objResponse->script("\$('unknown_frl_rez').addClass('b-fon_hide');"); $objResponse->script("if(!\$('nerez_frl_rez').hasClass('b-fon_nohide')) \$('nerez_frl_rez').addClass('b-fon_hide');"); $objResponse->script("\$('frl_ban').addClass('b-fon_hide');"); $objResponse->script("\$('frl').getParent().removeClass('b-combo__input_error');"); if (!$frl_id) { return $objResponse; } $frl = new freelancer(); $frl->GetUserByUID($frl_id); if (!$frl->uid) { return $objResponse; } else { if ($frl->is_banned == 1) { $objResponse->script("\$('frl_ban').removeClass('b-fon_hide');"); $objResponse->script("\$('frl').getParent().addClass('b-combo__input_error');"); } if ($frl_reqvs = sbr_meta::getUserReqvs($frl->uid)) { if ((int) $frl_reqvs['rez_type'] <= 0) { $objResponse->script("\$('unknown_frl_rez').removeClass('b-fon_hide');"); $objResponse->script("if(\$('scheme_type" . sbr::SCHEME_PDRD2 . "').checked) \$('taxes_alert').show();"); } if ((int) $frl_reqvs['rez_type'] == sbr::RT_UABYKZ) { $objResponse->script("\$('nerez_frl_rez').removeClass('b-fon_hide');"); } if ($frl_reqvs['rez_type'] == sbr::RT_UABYKZ) { if ($frl_reqvs['form_type'] == sbr::FT_PHYS) { $objResponse->script("\$('alert_frl_is_fiz').removeClass('b-layout__txt_hide');"); $objResponse->script("\$('alert_frl_is_jur').addClass('b-layout__txt_hide');"); $objResponse->script("sbr.options.reztype = 'UABYKZ_FIZ';"); } else { $objResponse->script("\$('alert_frl_is_jur').removeClass('b-layout__txt_hide');"); $objResponse->script("\$('alert_frl_is_fiz').addClass('b-layout__txt_hide');"); $objResponse->script("sbr.options.reztype = 'UABYKZ';"); } } elseif ($emp_rez_type == 0) { $objResponse->script("\$('alert_frl_is_fiz').addClass('b-layout__txt_hide');"); $objResponse->script("\$('alert_frl_is_jur').addClass('b-layout__txt_hide');"); $objResponse->script("sbr.options.reztype = 'RU'; "); } $objResponse->script("\$\$('input[tmpname=\"cost\"]')[0].fireEvent('change')"); $sbr = sbr_meta::getInstance(); $sbr->frl_id = $frl->uid; $sbr_schemes = $sbr->getSchemes(); $taxes = sbr_meta::jsSchemeTaxes($sbr_schemes, $frl_reqvs, $sbr->getUserReqvs(), sbr::EMP, exrates::BANK); $objResponse->script("sbr.options.schemes = {$taxes};"); $objResponse->script('sbr.form.recalcTotal()'); } else { $objResponse->script("\$('unknown_frl_rez').removeClass('b-fon_hide');"); $objResponse->script("if(\$('scheme_type" . sbr::SCHEME_PDRD2 . "').checked) \$('taxes_alert').show();"); } } return $objResponse; }
$showMainDiv = true; session_start(); $uid = get_uid(); $rpath = '../../'; $page_title = 'Получи MacBook PRO 13" оплачивая услуги fl.ru в июне чаще других'; $header = '../../header.php'; $footer = '../../footer.html'; $content = 'content.php'; $macbook_top_10_all = $DB->rows("select count(*) as nums, billing_id from account_operations\n where \n op_date >= '2015-06-01 00:00:00' \n and op_date <= '2015-06-30 23:59:59' \n and ammount < 0 and \n op_code in(48, 49, 50, 51, 163, 164, 142, 148, 181, 184, 143, 149, 182, 185, 144, 150, 183, 186, 155, 173, 156, 174, 157, 175, 158, 176)\n and is_our = false\n group by billing_id\n order by nums desc\n "); // Количество человек $macbook_top_10_total = sizeof($macbook_top_10_all); $uid = get_uid(); $billing_id = $DB->val('SELECT id from account where uid=?', $uid); $user_position = 0; $macbook_top_10 = array(); foreach ($macbook_top_10_all as $key => $value) { if ($key < 10) { $user_id = $DB->val('SELECT freelancer.uid from freelancer INNER JOIN account ON account.uid=freelancer.uid WHERE account.id = ?', $value['billing_id']); $freelancer = new freelancer(); $freelancer->GetUserByUID($user_id); $macbook_top_10[$key]['user'] = $freelancer; } if (intval($billing_id) === intval($value['billing_id'])) { $user_position = $key + 1; } if ($key > 10 && $user_position > 0) { break; } } $js_file = array('/css/block/b-shadow/b-shadow.js', 'timer.js', 'verification.js'); include '../../template3.php';
if (!($frl_info_for_reg['city'] && !get_uid(false))) { $str_location .= $str_location ? " / " . $frl['str_city'] : $frl['str_city']; } } } if ($str_location) { echo "<br>Регион: {$str_location}"; } ?> </span> <?php if ($frl['status_type'] != -1) { echo freelancer::viewStatus($frl['status_type'], true); ?> <?php } ?> </div> </td> <td><?php echo rating::round($frl['t_rating']); ?> </td> <td style="width:65px;"> <?php seo_start(); ?>
/////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// $role = $user->role; $rpath = '../'; // Статус присутсвия. $online_status = $user->getOnlineStatus4Profile(); if (is_emp($role)) { $fpath = 'employer/'; include $fpath . 'index.php'; exit; } require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/payed.php'; $is_pro = payed::CheckPro($user->login); $no_banner = !!$is_pro; $user = new freelancer(); $user->GetUser($name); if (!$page && !$user->tabs[0] && $user->tabs[7]) { $page = $_GET['p'] = 'tu'; } elseif (!$page && !$user->tabs[0] && (!$user->tabs[3] && !hasPermissions('users')) && !$user->tabs[5] && !$user->tabs[6]) { $page = $_GET['p'] = 'opinions'; } //------------------------------------------------------------------------------ // Проверяем блокировку ТУ в профиле за не погашенный долг в ЛС require_once $_SERVER['DOCUMENT_ROOT'] . '/tu/models/TServiceOrderModel.php'; $hide_tu_for_others = FALSE; $_debt_info = TServiceOrderModel::model()->isDebt($user->uid); if ($_debt_info && $user->uid != $uid && $_debt_info['is_blocked'] == 't') { $hide_tu_for_others = TRUE; } //------------------------------------------------------------------------------
<?php require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/stdf.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/freelancer.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/employer.php'; $rpath = '../'; session_start(); $uid = get_uid(); $name = $_GET['user']; $mode = intval($_GET['mode']); $user = new users(); $user->GetUser($name); $role = $user->role; $is_emp = 0; if (substr($role, 0, 1) == '1') { $user = new employer(); $is_emp = 1; } else { $user = new freelancer(); } if (!($mode > 0 && $mode <= 4) || ($mode == 4) != !!$is_emp) { header('Location: /404.php'); exit; } $user->GetUser($name); $header = '../header.php'; $footer = '../footer.html'; $content = 'all_inner.php'; $js_file = array('note.js'); include '../template.php';
$bPageDefault = true; } elseif ($page == 1) { $sLocation = e_url('page'); header("HTTP/1.1 301 Moved Permanently"); header("Location: {$sLocation}"); exit(0); } elseif ($page < 1) { include ABS_PATH . '/404.php'; exit; } //------------------------------------------------------------------------------ GaJsHelper::getInstance()->setFrlCategories(array($prof_group_id, $prof_group_parent_id), $prof_id); adriver::getInstance()->setFrlCategories(array($prof_group_id, $prof_group_parent_id), $prof_id); //------------------------------------------------------------------------------ $section = intval($_GET['section']); $freelancer = new freelancer(); $freelancer_seo = new freelancer_seo($section); if (!$prof_id && !$prof_group_id) { // Подсчитываем количество избранных. Переписать в отдельный метод. // $fav_count = 0; $prof_name = "Все фри-лансеры"; $prof_type = false; $prof_group_name = ''; $prof_descr = ''; $prof_descr_text = ''; $page_title = "Удаленная работа%prepositional_cityname%. Фрилансеры%cityname%. Проекты от работодателей%cityname%."; $page_keyw = "фрилансер, free-lance, freelance, нужны сотрудники удаленно, онлайн фрилансер ру, найти специалиста, сайт фрилансеров, ищу сотрудника, фриланс дизайнер, бухгалтер на дому, юрист удаленно, программист, разработчик, seo оптимизатор, копирайт, рерайт"; $page_descr = "Лучшие специалисты для тех, кому нужны сотрудники удаленно. Удаленная работа на дому. Онлайн фрилансеры: дизайнеры, копирайтеры, рерайтеры, разработчики, программисты, seo, бухгалтеры, юристы, художники"; //list($avg_price_hour, $avg_price_project, $avg_price_month) = professions::GetAvgPrices($prof_id); //$avg_price_hour = $avg_price_project = $avg_price_month = null; $anchor = 0;
<?php //ini_set('display_errors',1); //error_reporting(E_ALL ^ E_NOTICE); ini_set('max_execution_time', 0); ini_set('memory_limit', '512M'); if (!isset($_SERVER['DOCUMENT_ROOT']) || !strlen($_SERVER['DOCUMENT_ROOT'])) { $_SERVER['DOCUMENT_ROOT'] = rtrim(realpath(pathinfo(__FILE__, PATHINFO_DIRNAME) . '/../../'), '/'); } require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/stdf.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/freelancer.php'; if (count($argv) > 1) { parse_str(implode('&', array_slice($argv, 1)), $_GET); } $login = $_GET['login']; $freelancer = new freelancer(); $freelancer->GetUser($login); if ($freelancer->uid > 0) { $DB->query("\n UPDATE projects_offers_answers SET\n last_offer = last_offer - interval '1 day'\n WHERE uid = ?i\n ", $freelancer->uid); $data = $DB->row('SELECT * FROM projects_offers_answers WHERE uid = ?i', $freelancer->uid); print_r($data); } else { print_r('Фрилансер не найден!'); } exit;
/** * Новая СБР * Проверяет пользовательский запрос на создание/редактирование СБР. Инициализирует данные в соответствии с переданными значениями. * * @param array $request данные запроса (гет, пост). * @param array $files массив $_FILES с вложениями к каждому этапу. * @param sbr $old старый экземпляр сделки. Передается при редактировании. * * @return bool нет ошибок? */ public function _new_initFromRequest($request, $files = null, $old = null) { $is_now_draft = $this->data['is_draft']; $this->data['is_draft'] = $request['draft'] ? 't' : 'f'; if (!isset($request['frl_db_id'])) { $request['frl_db_id'] = ''; } $request['frl_db_id'] = intval($request['frl_db_id']); if (isset($request['tuid'], $request['tuhash'])) { if ($request['tuhash'] === $this->tserviceHash($request['tuid'])) { $service = $this->checkTService($request['tuid'], $request['frl_db_id']); if ($service) { $this->data['tservice_id'] = $service['id']; $this->data['tservice_hash'] = $this->tserviceHash($service['id']); } } } elseif ($request['project_id']) { $this->checkProject($request['project_id']); } // если сделка создается из конкурса, то исполнителем может быть только победитель конкурса if ($request['project_id'] && isset($request['frl_db_id']) && $this->project['kind'] == 7 && $this->project['exec_id'] != $request['frl_db_id']) { $request['frl_db_id'] = $this->project['exec_id']; $this->error['frl'] = 'Исполнителем этой сделки может быть только победитель конкурса'; } if (!isset($request['scheme_type'])) { $request['scheme_type'] = ''; } if ($old) { if (!$request['cost_sys']) { $request['cost_sys'] = $old->cost_sys; } if (!$request['scheme_type']) { $request['scheme_type'] = $old->scheme_type; } } foreach ($request as $field => $value) { if (is_scalar($value)) { $value = trim(stripslashes($value)); } switch ($field) { case 'stages': foreach ($value as $pos => $stage) { $nowStage = $this->getStageByIdForData($stage['id']); $value[$pos]['descr'] = htmlspecialchars($stage['descr']); if (($request['scheme_type'] == sbr::SCHEME_PDRD || $request['scheme_type'] == sbr::SCHEME_PDRD2) && $stage['cost'] < sbr_stages::MIN_COST_RUR_PDRD) { $this->error['cost'][$nowStage->data['num']] = 'Поле заполненно некоректно'; } if ($request['scheme_type'] == sbr::SCHEME_LC && $is_now_draft != 't' && $stage['cost'] < sbr_stages::MIN_COST_RUR && $stage['cost'] != $nowStage->data['cost']) { $this->error['cost'][$nowStage->data['num']] = 'Поле заполненно некоректно'; } if ($request['scheme_type'] == sbr::SCHEME_LC && $is_now_draft == 't' && $stage['cost'] < sbr_stages::MIN_COST_RUR) { $this->error['cost'][$nowStage->data['num']] = 'Поле заполненно некоректно'; } if ($this->data['reserved_id'] && (int) $stage['work_time_add'] == 0) { $value[$pos]['work_time'] = $nowStage->data['work_time']; $request[$field][$pos]['work_time'] = $nowStage->data['work_time']; } elseif ($this->data['reserved_id'] && (int) $stage['work_time_add'] > 0) { $start_time = $nowStage->data['start_time'] ? $nowStage->data['start_time'] : $nowStage->data['first_time']; $endDate = strtotime($start_time . ' + ' . $nowStage->data['int_work_time'] . 'days'); $nextDate = $endDate < time() ? strtotime("+{$stage['work_time_add']} days") : strtotime(date('d.m.Y H:i', $endDate) . "+{$stage['work_time_add']} days"); $workTime = ceil(($nextDate - strtotime($start_time)) / 86400); $value[$pos]['work_time'] = $workTime; $request[$field][$pos]['work_time'] = $workTime; } } break; case 'name': if (is_empty_html($value)) { $this->error[$field] = 'Пожалуйста, заполните это поле'; } $value = substr($value, 0, self::NAME_LENGTH); break; case 'frl_db_id': if (!$this->isDraft()) { if (!$value || $value == 'логин') { $this->error['frl_db_id'] = 'Необходимо добавить исполнителя'; } } if (!$this->error['frl_db_id'] && $value != '') { $frl = new freelancer(); $frl->GetUserByUID($value); if ($frl->is_banned == 1) { $this->error['frl_db_id'] = 'Данный пользователь заблокирован'; $this->error['frl_ban'] = 'Данный пользователь заблокирован'; } $this->data['frl_id'] = $frl->uid; } break; // специальность // специальность case 'profession0_db_id': if (!$value) { $this->error['profession0_db_id'] = 'Необходимо выбрать специальность'; } break; case 'cost_sys': $reqvs = $this->getUserReqvs(); if (!in_array($value, array(exrates::YM, exrates::WMR, exrates::BANK))) { $this->error['cost_sys_err'] = 'Недопустимая валюта резервирования'; $value = exrates::BANK; } if (($value == exrates::YM || $value == exrates::WMR) && $reqvs['form_type'] == sbr::FT_JURI) { $this->error['cost_sys_err'] = 'Резервирование через Яндекс.Деньги или WebMoney доступно только физическим лицам'; } break; case 'project_id': $value = $this->project['id']; break; case 'id': $value = intvalPgSql($value); break; case 'scheme_type': $value = intvalPgSql($value); if ($value && (!self::$scheme_types[$value] || $value == self::SCHEME_OLD && (!$old || $old->scheme_type != self::SCHEME_OLD))) { $this->error['scheme_type_err'] = 'Неверный тип договора'; } break; case 'version': $value = (int) $value > 32767 ? 32767 : (int) $value; break; case 'frl_refuse_reason': $value = substr($value, 0, self::SBR_REASONS_LENGTH); break; default: break; } $this->data[$field] = $value; } $this->data['professions'] = array(); if ($_POST['profession0']) { $this->data['professions'][] = array('category_id' => __paramInit('int', null, 'profession0_column_id', 0), 'subcategory_id' => __paramInit('int', null, 'profession0_db_id', 0), 'prof_name' => __paramInit('string', null, 'profession0', 0)); } if ($_POST['profession1']) { $this->data['professions'][] = array('category_id' => __paramInit('int', null, 'profession1_column_id', 0), 'subcategory_id' => __paramInit('int', null, 'profession1_db_id', 0), 'prof_name' => __paramInit('string', null, 'profession1', 0)); } if ($_POST['profession2']) { $this->data['professions'][] = array('category_id' => __paramInit('int', null, 'profession2_column_id', 0), 'subcategory_id' => __paramInit('int', null, 'profession2_db_id', 0), 'prof_name' => __paramInit('string', null, 'profession2', 0)); } if ($request['stages']) { foreach ($request['stages'] as $num => $stage) { if (isset($stage['attaches']) && is_array($stage['attaches'])) { foreach ($stage['attaches'] as $anum => $att_id) { if (!isset($files[$att_id])) { continue; } // $attached[$att_id]['id'] = md5($attached[$att_id]['id']); if ($files[$att_id]['status'] == 1) { $request['stages'][$num]['attached'][$anum] = $files[$att_id]; } } } } if ($GLOBALS['action'] === 'editstage') { foreach ($files as $key => $file) { if ($file['status'] == 4) { $this->stages[0]->data['_new_del_attach'][] = $file; } } } $this->_new_initStagesFromRequest($request['stages'], $files, $request['action'] == 'create' ? 0 : ($request['action'] == 'edit' ? 1 : 2)); $this->getUserReqvs(); $this->getFrlReqvs(); if ($this->user_reqvs['rez_type'] == sbr::RT_UABYKZ || $this->frl_reqvs['rez_type'] == sbr::RT_UABYKZ) { $cost = 0; foreach ($this->stages as $s) { $cost += $s->cost; } $cost_rur = $cost * $this->cost2rur(); if ($cost_rur > $this->maxNorezCost()) { foreach ($this->stages as $p => $s) { $this->error['cost'][$pos] = 'Поле заполненно некоректно'; } $this->error['cost_sys_err_tbl'] = 'Превышена максимальная сумма сделки — ' . sbr::MAX_COST_USD . ' USD (или ' . sbr_meta::view_cost($this->maxNoRezCost(), exrates::BANK) . ')'; } } } // var_dump($this->error); // die(); return !$this->error; }
/** * Залогинивает юзера. Возвращает UID юзера. Выставляет куки "автологина". * ВНИМАНИЕ! возвращает UID юзера, если находит его. Либо возвращает * 0 - не найден * -1 - аккаунт забанен * -2 - аккаунт неактивирован * -3 - IP не входит в список IP разрешенных пользователем * -4 - требуется 2ой этап авторизации * * @param string $login логин юзера * @param string $pwd пароль * @param integer $autologin флаг "автологина" * @return integer UID юзера */ function login($login, $pwd, $autologin = 0, $annoy_check = true) { require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/annoy.php"; $annoy = new annoy(); $user = new users(); if ($annoy_check) { if (intval($_SESSION['login_wait_time']) > time()) { $redirect_checkpass = true; } else { // Проверить сколько раз воодился пароль if (isset($_SESSION['login_wait_time'])) { $annoy->Clear(getRemoteIP()); } $login_count = $annoy->Check(getRemoteIP()); if ($login_count >= $GLOBALS['max_login_tries']) { $_SESSION['login_wait_time'] = time() + $GLOBALS['login_wait_time'] * 60; $redirect_checkpass = true; } } if ($redirect_checkpass == true) { header("Location: /checkpass.php"); exit; } } //Получаем логин и проверяем счетчик $_uid = $user->getUidByLoginEmailPhone($login); if ($_uid > 0 && !$annoy->allowRepeatPass($_uid)) { header("Location: /banned.php"); exit; } //@todo: нет проверок наличия ключей $t_filter_prj = $_SESSION['f_project_filter']; $t_filter_frl = $_SESSION['f_freelancers_filter']; $t_ref_uri2 = $_SESSION['ref_uri2']; $adCatalog = $_SESSION['toppayed_catalog']; $adMain = $_SESSION['toppayed_main']; $adHead = $_SESSION['toppayed_head']; $adText = $_SESSION['toppayed_text']; $masssending = $_SESSION['masssending']; $newPrjName = $_SESSION['new_project_name']; $newPrjCost = $_SESSION['new_project_cost']; //Сохраняем значение типа 2хэпапной авторизации перед очисткой сессии $_2fa_provider = isset($_SESSION['2fa_provider']) ? $_SESSION['2fa_provider'] : null; $_2fa_redirect = isset($_SESSION['2fa_redirect']) ? $_SESSION['2fa_redirect'] : null; //Переносим хеши ссылок на уже зафиксированные местки для юзера при выходе/входе $_ga_stat_url_hash = isset($_SESSION['ga_stat_url_hash']) ? $_SESSION['ga_stat_url_hash'] : null; //Последняя посещенная страница $_ref_uri = isset($_SESSION['ref_uri']) ? $_SESSION['ref_uri'] : null; $_pda = isset($_SESSION['pda']) ? $_SESSION['pda'] : null; $_customer_wizard = isset($_SESSION['customer_wizard']) ? $_SESSION['customer_wizard'] : null; session_unset(); if ($_customer_wizard) { $_SESSION['customer_wizard'] = $_customer_wizard; } if ($_pda) { $_SESSION['pda'] = $_pda; } if ($_ref_uri) { $_SESSION['ref_uri'] = $_ref_uri; } //Воссанавливаем значение хешей ссылок if ($_ga_stat_url_hash) { $_SESSION['ga_stat_url_hash'] = $_ga_stat_url_hash; } //Востанавливаем значение 2хэпапной авторизации после очистки сессии if ($_2fa_provider !== null) { $_SESSION['2fa_provider'] = $_2fa_provider; } if ($_2fa_redirect !== null) { $_SESSION['2fa_redirect'] = $_2fa_redirect; } //Выключаем проверку 2ого этапа авторизации //если это вход из куки или еще откуда (но неявно от пользователя) //где мы уже уверены что 2этапа пройдены ранее юзером $is_2fa_off = $annoy_check === false; //Авторизация $id = $user->Auth($login, $pwd, $_SESSION, $is_2fa_off); //Считаем и блокируем по количеству неудачных авторизаций if (!$id && $_uid > 0) { $annoy->wrongRepeatPass($_uid); } //Успешная авторизация if ($id > 0) { $annoy->clearRepeatPass($id); require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/payed.php"; $pro_last = payed::ProLast($_SESSION['login']); //Покупал ли пользователь ПРО 1 мес и более или тестовый if (!is_emp()) { $_SESSION['is_was_pro'] = $pro_last ? true : payed::isWasPro($_SESSION['uid']); } $_SESSION['pro_last'] = $pro_last['is_freezed'] ? false : $pro_last['cnt']; if ($_SESSION['pro_last'] && $_SESSION['is_pro_new'] != 't') { payed::checkNewPro($id); } if ($pro_last['freeze_to']) { $_SESSION['freeze_from'] = $pro_last['freeze_from']; $_SESSION['freeze_to'] = $pro_last['freeze_to']; $_SESSION['is_freezed'] = $pro_last['is_freezed']; $_SESSION['payed_to'] = $pro_last['cnt']; } if ($_SESSION['anti_login']) { $pro_last = payed::ProLast($_SESSION['anti_login']); $_SESSION['anti_pro_last'] = $pro_last['freeze_to'] ? false : $pro_last['cnt']; } require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/memBuff.php"; $memBuff = new memBuff(); $memBuff->delete("msgsCnt{$id}"); //Получение спецализаций фрилансера if (!is_emp()) { require_once ABS_PATH . "/classes/freelancer.php"; $specData = freelancer::getAllSpecAndGroup($id, is_pro()); $_SESSION['specs'] = $specData['specs']; //Список специализаций $_SESSION['groups'] = $specData['groups']; //Список групп //@todo: пока не используется //$_SESSION['specs_tree'] = $specData['specs_tree']; //Ввиде древа группа > специализации } require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/drafts.php"; $iDraftsCount = drafts::getCount($id); $_SESSION['drafts_count'] = $iDraftsCount; if ($autologin == 1) { setcookie('id', $id, time() + 60 * 60 * 24 * 30, '/', $GLOBALS['domain4cookie'], COOKIE_SECURE, true); setcookie('name', $login, time() + 60 * 60 * 24 * 30, '/', $GLOBALS['domain4cookie'], COOKIE_SECURE); setcookie('pwd', users::cookieHashPasswd($id), time() + 60 * 60 * 24 * 30, '/', $GLOBALS['domain4cookie'], COOKIE_SECURE, true); } $_SESSION['f_project_filter'] = $t_filter_prj; $_SESSION['f_freelancers_filter'] = $t_filter_frl; $_SESSION['ref_uri2'] = $t_ref_uri2; $_SESSION['toppayed_catalog'] = $adCatalog; $_SESSION['toppayed_main'] = $adMain; $_SESSION['toppayed_head'] = $adHead; $_SESSION['toppayed_text'] = $adText; if ($masssending) { $_SESSION['masssending'] = $masssending; } $_SESSION['new_project_name'] = $newPrjName; $_SESSION['new_project_cost'] = $newPrjCost; if ($t_filter_prj) { require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/projects_filter.php"; $prj_filter = new projects_filters(); $prj_filter->SaveFromAnon(); } if ($t_filter_frl) { require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/freelancers_filter.php"; $frl_filter = new freelancers_filters(); $frl_filter->SaveFromAnon(); } //var_dump($_SESSION['customer_wizard']); //var_dump($_SESSION['customer_wizard_filled']); //exit; //Если заказчик пытается опубликовать проект через мастер то публикуем после авторизации if (is_emp() && isset($_SESSION['customer_wizard']['filled'])) { require_once ABS_PATH . '/guest/models/GuestActivationModel.php'; $_SESSION['ref_uri'] = GuestActivationModel::model()->published($id, $_SESSION['email']); } } // случайное число, используемое в get/post запросах для защиты. if (!$_SESSION['rand']) { $_SESSION['rand'] = csrf_token(); } return $id; }
<?php /** * Список PROFI для лендинга. */ require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/freelancer.php'; $freelancer = new freelancer(); $profiList = $freelancer->getProfiAllRandom(90); if ($profiList) { ?> <h2 class="b-page__title b-page__title_center"> <a href="/profi/" class="b-page__title_decor_none b-page__title_color_32">Лучшие исполнители</a> </h2> <div class="b-layout b-layout_box b-layout_margbot_30 b-layout_padleft_30_iphone b-layout_padright_15_iphone b-layout_pad_null_r560"> <?php foreach ($profiList as $profiUser) { $user_profile_url = sprintf('/users/%s/', $profiUser['login']); ?> <div class="b-layout b-layuot_width_33ps b-layuot_width_50ps b-layout__one_width_full_iphone b-layout_float_left b-layout_height_180 profi-fix"> <div class="b-layout b-layout_padbot_20 b-layout_padright_15"> <table class="b-layout__table b-fon_bg_f0ffdf_hover b-layout_hover_link_decorate b-layout__table_width_full"> <tr class="b-layout__tr"> <td class="b-layout__td b-layout__td_width_100 b-layout__td_pad_10 b-layout__td_ipad"> <a href="<?php echo $user_profile_url; ?> " class="b-layout__link"> <span class="i-pic b-pic_border_radius_50 b-pic_bord_ffa800 b-layout_overflow_hidden"><?php echo view_avatar($profiUser['login'], $profiUser['photo'], 0, 0, 'b-pic b-pic_border_radius_50_safari-win'); ?> </span>
$portf = new portfolio(); $prof_id = (int) trim($_POST['w_move_prof_to']); $count_add = count($_SESSION['w_select'][$_POST['w_move_prof_from']]); if ($prof_id > 0 || $prof_id == professions::CLIENTS_PROF_ID || $prof_id == professions::BEST_PROF_ID && portfolio::CountAll($uid, $prof_id, true) + $count_add <= portfolio::MAX_BEST_WORKS) { foreach ($_SESSION['w_select'][$_POST['w_move_prof_from']] as $wkey => $wvalue) { $prj_id = (int) trim($wkey); if ($prj_id) { $error .= $portf->ChangeProjectProf($uid, $prof_id, $prj_id); } } } } break; case "diz_ch": $stddiz = $_POST['stddiz']; $frl = new freelancer(); $frl->design = isset($stddiz) ? 0 : 1; $error .= $frl->Update($uid, $res); break; case "delete": // удаление аккаунта require_once ABS_PATH . "/classes/users.php"; require_once ABS_PATH . '/classes/admin_log.php'; $user_obj = new users(); $sUid = get_uid(); $user_obj->GetUserByUID($sUid); $sObjName = $user_obj->uname . ' ' . $user_obj->usurname . '[' . $user_obj->login . ']'; $sObjLink = '/users/' . $user_obj->login; $sReason = "Аккаунт удален самостоятельно"; if ($user_obj->setUserBan(get_uid(), 0, $sReason, 4, '', 1, true)) { // если удалось заблокировать аккаунт
<?php $pdrd_disabled = $sbr->scheme_type != sbr::SCHEME_PDRD && time() < strtotime('2011-01-01'); $categories = professions::GetAllGroupsLite(true, true); $sub_categories = professions::GetProfList(); $frl_ftype = sbr::FT_PHYS; if ($sbr->frl_id) { $frl = new freelancer(); $frl->GetUserByUID($sbr->frl_id); if (!$sbr->frl_login) { $sbr->data['frl_login'] = $frl->login; } if ($frl_reqvs = sbr_meta::getUserReqvs($frl->uid)) { $frl_ftype = (int) $frl_reqvs['form_type']; $frl_rtype = $frl_reqvs['rez_type']; } } ?> <script type="text/javascript"> Sbr.prototype.DEBUG=0; var SBR = new Sbr('createFrm'); window.addEvent('domready', function() { SBR = new Sbr('createFrm'); } ); Sbr.prototype.CATEGORIES={<?php // категории/подкатегории: {ид_кат:{имя_кат:{ид_подкат:имя_подкат,ид_подкат:...}},ид_кат:...} foreach ($sub_categories as $sc) { $cc = $sc['prof_group']; $ccname = str_replace("'", "\\'", $categories[$cc]['name']); $scname = str_replace("'", "\\'", $sc['name']); if ($lcc != $cc) { echo ($lcc ? '}},' : '') . "{$cc}:{'{$ccname}':{"; $lcc = $cc;
/** * Формирует отчет по арбитражу за определенный период. * * @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(); }
<?php require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/freelancer.php'; $user = new freelancer(); $user->GetUser($_SESSION['login']); if (strtotime($_SESSION['pro_last']) > time() && $_SESSION['pro_test'] == 't') { $is_pro_test = true; } else { $is_pro_test = false; } ?> <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>
function FrlRefuse($pid) { global $session; session_start(); $objResponse = new xajaxResponse(); $res = freelancer::Refuse(get_uid(), $pid); if ($res == 't') { $objResponse->assign('frl_edit_bar', 'innerHTML', ''); $objResponse->assign("add_dialog_{$uid}", 'innerHTML', ' '); $objResponse->assign("add_dialog_{$pid}", 'innerHTML', ' '); $objResponse->script("\$\$('.add_dialog_user').set('html', ' ');"); $objResponse->script("\$\$('.opinions1_{$uid}').set('html', 'Вы отказались от проекта').addClass('refusal-prj'); \$\$('.opinions2_{$uid}').destroy();"); } return $objResponse; }
public function getInformationUser($uid = false) { require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/employer.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/freelancer.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/country.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/city.php"; if (!$uid) { $uid = $_SESSION['uid']; } if (is_emp()) { $user = new employer(); } else { $user = new freelancer(); } $user->GetUserByUID($uid); $this->setFieldInfo('uname', $user->uname); $this->setFieldInfo('usurname', $user->usurname); $this->setFieldInfo('birthday', $user->birthday); $this->setFieldInfo('country', $user->country); $this->setFieldInfo('country_name', country::GetCountryName($user->country)); $this->setFieldInfo('city', $user->city); $this->setFieldInfo('city_name', city::GetCityName($user->city)); $this->setFieldInfo('sex', $user->sex == 't' ? 1 : ($user->sex == 'f' ? 0 : -1)); $this->setFieldInfo('info_for_reg', unserialize($user->info_for_reg)); }
/** Удаление закрепления по id в account_operations * @see account::DelByOpid() * * @param intr $uid uid пользователя * @param int $opid id операции в биллинге * @return int 0 */ public function DelByOpid($uid, $opid) { //Получаем информацию об удаляемом платеже $sql = "SELECT bq.id, bq.op_count, bq.src_id, ao.op_code\n FROM account_operations ao\n INNER JOIN bill_reserve br ON br.uid = ?i\n AND br.ammount = -(ao.ammount) \n AND br.complete_time::timestamp = ao.op_date::timestamp\n INNER JOIN bill_queue bq ON bq.reserve_id = br.id AND bq.op_code = ao.op_code\n WHERE ao.id = ?i\n AND ao.billing_id = (SELECT id FROM account WHERE uid = ?i);"; $operation = $this->db->row($sql, $uid, $opid, $uid); if (!$operation) { return 0; } $operation['op_code'] = billing::getOpCodeByDiscount($operation['op_code']); $is_spec = false; $ok = false; switch ($operation['op_code']) { case self::OP_CODE_PROF: $is_spec = true; case self::OP_CODE_CATALOG: case self::OP_CODE_PROFGROUP: //Убираем запись о закреплении из базы $ok = $this->db->query("DELETE FROM {$this->TABLE} WHERE user_id = ?i AND prof_id = ?i AND is_spec = ?b", $uid, $operation['src_id'], $is_spec); break; case self::OP_CODE_PROLONG_PROF: case self::OP_CODE_UP_PROF: $is_spec = true; case self::OP_CODE_PROLONG_CATALOG: case self::OP_CODE_PROLONG_PROFGROUP: case self::OP_CODE_UP_CATALOG: case self::OP_CODE_UP_PROFGROUP: //пересчитать сроки начала срока действия закрепления с учетом //удаления покупки - чтобы закрепление вернулось //на то место в каталоге, с которого был подъем $bind_id = $this->isUserBinded($uid, $operation['src_id'], $is_spec); if ($bind_id) { $dates = $this->recalcBindDates($operation, $uid); $this->db->update($this->TABLE, array('date_start' => $dates['start'], 'date_stop' => $dates['stop']), 'id = ?i', $bind_id); } break; } if ($ok) { freelancer::clearCacheFromProfIdNow($operation['src_id'], $is_spec); } return 0; }
public function actionNewOrder() { $code = __paramInit('string', 'code', 'code', ''); $activation_data = $this->order_model->getOrderActivation($code); if (!$activation_data) { $this->missingAction(null); } $this->order_model->deleteOrderActivation($code); $is_new = !($activation_data['user_id'] > 0); $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']) { $this->redirect('/registration/'); } $status = $user_data['ret']; $user = $user_data['user']; $this->uid = $user->uid; $service_id = intval($activation_data['tu_id']); $debt_info = $this->order_model->isDebt($this->uid); //блокируем возможность заказать если у исполнителя долг //и вышли все сроки погашения if ($debt_info && $debt_info['is_blocked'] == 't') { $this->missingAction(null); } $activation_data['options']['emp_id'] = $this->uid; $this->order_model->attributes($activation_data['options']); $order = $this->order_model->create($service_id); //Не удалось создать заказ показываем 404 if (!$order) { $this->missingAction(null); } //Уведомляем все стороны $tservices_smail = new tservices_smail(); $tservices_smail->newOrder($order); //Если юзер уже бывалый пользователь то редиректим на карточку заказа $order_url = sprintf(tservices_helper::url('order_card_url'), $order['id']); if (!$is_new) { if ($status == users::AUTH_STATUS_2FA) { $_SESSION['ref_uri'] = $order_url; $order_url = '/auth/second/'; } $this->redirect($order_url); } //Берем доп.инфу о фрилансере $freelancer = new freelancer(); $freelancer->GetUserByUID($order['frl_id']); //Если юзер новичек то показываем ему логин/пароль и статус заказа $this->layout = '//layouts/content-full-width'; $this->render('new-order', array('order_url' => $order_url, 'login' => $user->login, 'passwd' => $user->passwd, 'freelancer' => (array) $freelancer)); }
<?php ini_set('display_errors', 0); //error_reporting(E_ALL ^ E_NOTICE); ini_set('max_execution_time', 0); ini_set('memory_limit', '512M'); if (!isset($_SERVER['DOCUMENT_ROOT']) || !strlen($_SERVER['DOCUMENT_ROOT'])) { $_SERVER['DOCUMENT_ROOT'] = rtrim(realpath(pathinfo(__FILE__, PATHINFO_DIRNAME) . '/../../'), '/'); } require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/stdf.php"; //require_once($_SERVER['DOCUMENT_ROOT'] . "/classes/config.php"); //require_once($_SERVER['DOCUMENT_ROOT'] . "/classes/profiler.php"); require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/freelancer.php'; //------------------------------------------------------------------------------ $results = array(); //if(count($argv) > 1) parse_str(implode('&', array_slice($argv, 1)), $_GET); //------------------------------------------------------------------------------ $results['clearCacheProfiCatalog'] = (int) freelancer::clearCacheProfiCatalog(); //------------------------------------------------------------------------------ array_walk($results, function (&$value, $key) { $value = sprintf('%s = %s' . PHP_EOL, $key, $value); }); print_r(implode('', $results)); exit;
<?php require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/stdf.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/freelancer.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/rating.php"; $stretch_page = true; $showMainDiv = true; $footer_payed = true; $no_banner = true; $freelancer = new freelancer(); $is_allow = isAllowProfi(); if ($is_allow) { require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/account.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/payed.php"; $uid = get_uid(); $account = new account(); $account->GetInfo($uid, true); if (__paramInit('bool', 'quickprofi_ok', NULL, false)) { //Обновляем сессию $freelancer->GetUserByUID($uid); $_SESSION['is_profi'] = $freelancer->isProfi(); $pro_last = payed::ProLast($_SESSION['login']); $_SESSION['pro_last'] = $pro_last['is_freezed'] ? false : $pro_last['cnt']; } } $catalogList = $freelancer->getProfiCatalog(80); $maxFirstCLBlock = 90; $cntCatalogList = count($catalogList); $isMoreCatalogList = $cntCatalogList > $maxFirstCLBlock; $cntFirstCLBlock = $isMoreCatalogList ? $maxFirstCLBlock : $cntCatalogList; $page_title = "PROFI аккаунт - фриланс, удаленная работа на FL.ru";
if ($u_ctlg_pos) { $i = 0; foreach ($u_ctlg_pos as $p) { $pt = $i ? 1 : 4; if ($p['link'] != '') { $p['link'] .= '/'; } ?> <tr style="vertical-align:top"> <td style="padding-top:<?php echo $pt; ?> px; white-space:nowrap; padding-bottom:4px;"> <div style="width:100%;text-overflow:ellipsis;overflow:hidden"> <a href="/freelancers/<?php echo $p['link'] . freelancer::getPositionToPage($p['pos']); ?> " title="<?php echo $p['prof_name']; ?> " class="blue"><?php echo LenghtFormatEx($p['prof_name'], 24, '...', 1); ?> </a> </div> </td> <?php if (!$u_is_pro) { ?> <td style="padding-top:<?php echo $pt;
public function completeData($type_role = 1) { if ($this->isDisable()) { header("Location: /wizard/registration/?step=1"); exit; } require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/employer.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/freelancer.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/city.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/country.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/blogs.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/commune.php"; $themes_blogs = blogs::getRandomThemes(5); $themes_commune = commune::getRandomCommunes(3); $month = array('1' => 'января', '2' => 'февраля', '3' => 'марта', '4' => 'апреля', '5' => 'мая', '6' => 'июня', '7' => 'июля', '8' => 'августа', '9' => 'сентября', '10' => 'октября', '11' => 'ноября', '12' => 'декабря'); if ($type_role == step_wizard_registration::TYPE_WIZARD_EMP) { $user = new employer(); $checkPRO = $this->checkWizardPRO(array(step_employer::OP_CODE_PRO)); $pro_emp = $checkPRO['id'] > 0 ? 1 : 0; if ($pro_emp) { $week_pro = round($checkPRO['ammount'] / 10); } } else { $user = new freelancer(); $checkPRO = $this->checkWizardPRO(step_freelancer::getOperationCodePRO()); $pro_frl = $checkPRO['id'] > 0 ? 1 : 0; if ($pro_frl) { $op_code = $checkPRO['op_code']; } } $user->GetUserByUID(wizard::getUserIDReg()); $info_for_reg = unserialize($user->info_for_reg); $uname = $user->uname; $usurname = $user->usurname; $sex = $user->sex == 't' ? 1 : ($user->sex == 'f' ? 0 : -1); $birthday = strtotime($user->birthday); if ($birthday) { $bday = date('d', $birthday); $bmonth = (int) date('m', $birthday); $bmonth_value = $month[$bmonth]; $byear = date('Y', $birthday); } else { $bday = ''; $bmonth = (int) date('m', $birthday); $bmonth_value = $month[$bmonth]; $byear = ''; } $city = $user->city; if ($city) { $city_value = city::GetCityName($city); } $country = $user->country; if ($country) { $country_value = country::GetCountryName($country); } if ($type_role == step_wizard_registration::TYPE_WIZARD_EMP) { $company = $user->compname; $about_company = $user->company; $logo_name = $user->logo; $dir = "users/" . substr($user->login, 0, 2) . "/" . $user->login . "/logo/"; $logo_path = WDCPREFIX . "/" . $dir . $user->logo; } $info['site'] = $this->loadMultiVal('site', 'site', $user); $info['email'] = $this->loadMultiVal('second_email', 'email', $user); $info['phone'] = $this->loadMultiVal('phone', 'phone', $user); $info['icq'] = $this->loadMultiVal('icq', 'icq', $user); $info['skype'] = $this->loadMultiVal('skype', 'skype', $user); $info['jabber'] = $this->loadMultiVal('jabber', 'jabber', $user); $info['lj'] = $this->loadMultiVal('ljuser', 'lj', $user); $action = __paramInit('string', null, 'action'); if ($action == 'upd_info') { $info_for_reg = $_POST['info_for_reg']; if ($info_for_reg['email_0'] !== null) { $info_for_reg['second_email'] = $info_for_reg['email_0']; unset($info_for_reg['email_0']); } if ($info_for_reg['phone_0'] !== null) { $info_for_reg['phone'] = $info_for_reg['phone_0']; unset($info_for_reg['phone_0']); } if ($info_for_reg['site_0'] !== null) { $info_for_reg['site'] = $info_for_reg['site_0']; unset($info_for_reg['site_0']); } if ($info_for_reg['lj_0'] !== null) { $info_for_reg['ljuser'] = $info_for_reg['lj_0']; unset($info_for_reg['lj_0']); } if ($info_for_reg['jabber_0'] !== null) { $info_for_reg['jabber'] = $info_for_reg['jabber_0']; unset($info_for_reg['jabber_0']); } if ($info_for_reg['skype_0'] !== null) { $info_for_reg['skype'] = $info_for_reg['skype_0']; unset($info_for_reg['skype_0']); } if ($info_for_reg['icq_0'] !== null) { $info_for_reg['icq'] = $info_for_reg['icq_0']; unset($info_for_reg['icq_0']); } if ($info_for_reg['compname'] !== null) { $info_for_reg['company'] = $info_for_reg['compname']; unset($info_for_reg['compname']); } $info_for_reg = array_map('intval', $info_for_reg); $user->info_for_reg = serialize($info_for_reg); $uname = __paramInit('string', null, 'uname', null, 21); $usurname = __paramInit('string', null, 'usurname', null, 21); if ($uname == '') { $error['uname'] = "Поле заполнено некорректно"; } if ($usurname == '') { $error['usurname'] = "Поле заполнено некорректно"; } if (!preg_match("/^[-a-zA-Zа-яёА-ЯЁ]+\$/", $uname)) { $error['uname'] = "Поле заполнено некорректно"; } else { $user->uname = $uname; } if (!preg_match("/^[-a-zA-Zа-яёА-ЯЁ]+\$/", $usurname)) { $error['usurname'] = "Поле заполнено некорректно"; } else { $user->usurname = $usurname; } $sex = __paramInit('int', null, 'sex', 1); // по умолчанию мужской пол $user->sex = $sex == 1 ? 't' : 'f'; $bday = __paramInit('int', null, 'bday', null); $bmonth = __paramInit('int', null, 'bmonth_db_id', 1); $bmonth_value = __paramInit('string', null, 'bmonth'); $byear = __paramInit('int', null, 'byear', null); if ($bday != null && $byear != null) { if (!is_numeric($bday) || !is_numeric($byear) || !checkdate($bmonth, $bday, $byear) || $byear < 1945 || $byear > date('Y')) { $error['birthday'] = "Поле заполнено некорректно"; } else { $user->birthday = dateFormat("Y-m-d", $byear . "-" . $bmonth . "-" . $bday); } } else { $user->birthday = "1910-01-01"; } if (!$error['birthday'] && $user->birthday && date("Y", strtotime($user->birthday)) >= date("Y")) { $error['birthday'] = "Поле заполнено некорректно"; } $city = __paramInit('int', null, 'city_db_id', 0); $city_value = __paramInit('string', null, 'city', false); $country = __paramInit('int', null, 'country_db_id', 0); $country_value = __paramInit('string', null, 'country', false); if ($city == 0 && strlen($city_value) != 0) { $error['city'] = 'Поле заполнено некорректно'; } if ($country == 0 && strlen($country_value) != 0) { $error['country'] = 'Поле заполнено некорректно'; } $user->country = $country; $user->city = $city; $company = __paramInit('string', null, 'company') ? substr(__paramInit('string', null, 'company'), 0, 64) : ''; $about_company = __paramInit('string', null, 'about_company'); $user->compname = $company; if (strlen($about_company) > 500) { $error['company'] = "Количество знаков в тексте о компании превышает допустимое значение"; } else { $user->company = $about_company; } $logo_id = __paramInit('int', null, 'logo_company'); $logo_name = __paramInit('string', null, 'logo_name'); if ($logo_name) { $user->logo = $logo_name; $user->Update(wizard::getUserIDReg(), $res); } $info['site'] = $this->initMultiVal('site'); $info['email'] = $this->initMultiVal('email'); $info['phone'] = $this->initMultiVal('phone'); $info['icq'] = $this->initMultiVal('icq'); $info['skype'] = $this->initMultiVal('skype'); $info['jabber'] = $this->initMultiVal('jabber'); $info['lj'] = $this->initMultiVal('lj'); if (!empty($info['site'])) { foreach ($info['site'] as $i => $value) { $name = 'site' . ($i != 0 ? "_{$i}" : ""); if (!url_validate(addhttp($value), true) && trimhttp($value) != '') { $error[$name] = "Поле заполнено некорректно"; } else { $user->{$name} = addhttp($value); } } } if (!empty($info['email'])) { foreach ($info['email'] as $i => $value) { if ($i == 0) { $name_save = "second_email"; } else { $name_save = "email_{$i}"; } $name = 'email' . ($i != 0 ? "_{$i}" : ""); if (!is_email($value) && $value != '') { $error[$name] = "Поле заполнено некорректно"; } else { $user->{$name_save} = $value; } } } if (!empty($info['phone'])) { foreach ($info['phone'] as $i => $value) { $name = 'phone' . ($i != 0 ? "_{$i}" : ""); if (!preg_match("/^[-+0-9)( #]*\$/", $value)) { $error[$name] = "Поле заполнено некорректно"; } else { $user->{$name} = $value; } } } if (!empty($info['icq'])) { foreach ($info['icq'] as $i => $value) { $name = 'icq' . ($i != 0 ? "_{$i}" : ""); if (!preg_match("/^[-0-9\\s]*\$/", $value) && !is_email($value)) { $error[$name] = "Поле заполнено некорректно"; } else { $user->{$name} = $value; } } } if (!empty($info['skype'])) { foreach ($info['skype'] as $i => $value) { $name = 'skype' . ($i != 0 ? "_{$i}" : ""); $user->{$name} = $value; } } if (!empty($info['jabber'])) { foreach ($info['jabber'] as $i => $value) { $name = 'jabber' . ($i != 0 ? "_{$i}" : ""); if (strlen($value) > 255) { $error[$name] = "Количество знаков превышает допустимое значение"; } else { $user->{$name} = $value; } } } if (!empty($info['lj'])) { foreach ($info['lj'] as $i => $value) { if ($i == 0) { $name_save = "ljuser"; } else { $name_save = "lj_{$i}"; } $name = 'lj' . ($i != 0 ? "_{$i}" : ""); if (!preg_match("/^[a-zA-Z0-9_-]*\$/", $value)) { $error[$name] = "Поле заполнено некорректно"; } else { $user->{$name_save} = $value; } } } if ($type_role == step_wizard_registration::TYPE_WIZARD_EMP) { $pro_emp = __paramInit('int', null, 'pro-emp', false); if ($pro_emp) { $week_pro = round(__paramInit('int', null, 'week_pro', 0)); } } else { $ammount = 0; $pro_frl = __paramInit('int', null, 'pro-frl', false); if ($pro_frl) { $pro = __paramInit('string', null, 'pro', -1); switch ($pro) { case "1week": $op_code = 76; $ammount = 7; break; case "1": $op_code = 48; $ammount = 19; break; case "3": $op_code = 49; $ammount = 54; break; case "6": $op_code = 50; $ammount = 102; break; case "12": $op_code = 51; $ammount = 180; break; case "-1": default: $ammount = 0; break; } } } if (!$error && wizard::getUserIDReg()) { $error['save'] = $user->Update(wizard::getUserIDReg(), $res); if (!$error['save']) { if ($type_role == step_wizard_registration::TYPE_WIZARD_EMP) { $ammount = $week_pro * 10; if ($ammount > 0) { $checkPRO = $this->checkWizardPRO(step_employer::OP_CODE_PRO); if ($checkPRO['id'] > 0) { $update = array("ammount" => $ammount); wizard_billing::editPaidOption($update, $checkPRO['id']); } else { $insert = array("wiz_uid" => step_wizard::getWizardUserID(), "op_code" => step_employer::OP_CODE_PRO, "type" => 3, "ammount" => $ammount, "parent" => wizard::getUserIDReg()); wizard_billing::addPaidOption($insert); } } else { $sql = "DELETE FROM wizard_billing WHERE wiz_uid = ? AND op_code = ?"; $this->_db->query($sql, step_wizard::getWizardUserID(), step_employer::OP_CODE_PRO); } } else { // Чистим $sql = "DELETE FROM wizard_billing WHERE wiz_uid = ? AND op_code IN (?l)"; $this->_db->query($sql, step_wizard::getWizardUserID(), step_freelancer::getOperationCodePRO()); if ($ammount > 0) { $insert = array("wiz_uid" => step_wizard::getWizardUserID(), "op_code" => $op_code, "type" => 4, "ammount" => $ammount, "parent" => wizard::getUserIDReg()); wizard_billing::addPaidOption($insert); } } $this->parent->setCompliteStep(true); $this->parent->setNextStep($this->parent->getPosition() + 1); header("Location: /wizard/registration/"); exit; } } if ($logo_id > 0) { $file = new CFile($logo_id); $logo_path = WDCPREFIX . "/" . $file->path . $file->name; } } include $_SERVER['DOCUMENT_ROOT'] . "/wizard/registration/steps/tpl.step.info.php"; }
public static function SetFuTable($table) { self::$fu_table = $table; }
//------------------------------------------------------------------------------ if (date('H') == 6) { $log->TRACE(professions::ReCalcProfessionsCount()); $hh = new hh(); $log->TRACE($hh->delOldFilters()); $log->TRACE($mail->employerHelpInfo()); } $log->TRACE(professions::PaidSpecsEndingReminder()); // ban $usr = new users(); $log->TRACE($usr->GetBanTimeout()); //выкидываем неактивных юзеров $log->TRACE($usr->UpdateInactive()); if (date('H') == 0 || date('H') == 6 || date('H') == 12 || date('H') == 18) { // генерация xml для webprof $log->TRACE(freelancer::webprofGenerateRss('upload/webprof.xml')); } // генерация xml для Яндекс.Работа $log->TRACE(new_projects::yandexGenerateRss('upload/yandex-office.xml', array(4))); $log->TRACE(new_projects::yandexGenerateRss('upload/yandex-project.xml', array(1, 2, 7))); // генерация xml для Jooble.ru, indeed и trovit $projects_for_xml = new_projects::getProjectsForXml('1 month'); $log->TRACE(new_projects::joobleGenerateRss('upload/jooble.xml', $projects_for_xml)); $log->TRACE(new_projects::indeedGenerateRss('upload/indeed.xml', $projects_for_xml)); $log->TRACE(new_projects::trovitGenerateRss('upload/trovit.xml', $projects_for_xml)); // генерация xml для joobradio if (date('H') == 4) { $log->TRACE(new_projects::jobradioGenerateRss('upload/jobradio.xml')); if (users_suspicious_contacts::getResetContacts()) { users_suspicious_contacts::resetContacts(); users_suspicious_contacts::setResetContacts();
/** * Обновляем данные пользователя введенные в шаге портфолио * * @param array $data Данные пользователя */ public function transferUserInformation($data) { require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/freelancer.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/professions.php"; $frl = new freelancer(); if ($data['resume'] > 0) { $dir = "users/" . substr($this->user->login, 0, 2) . "/" . $this->user->login . "/resume/"; $table = 'file'; $files = array(array('id' => $data['resume'])); $resume = $this->transferFiles($files, $table, $dir); } $frl->exp = $data['exp']; $frl->cost_hour = $data['cost_hour']; $frl->cost_month = $data['cost_month']; $frl->cost_type_hour = $data['cost_type_hour']; $frl->cost_type_month = $data['cost_type_month']; $frl->spec_text = $data['info']; $frl->in_office = $data['in_office']; $frl->spec = $data['spec']; $frl->spec_orig = $data['spec_orig']; $frl->resume_file = $resume[0]['fname']; $error_db = $frl->Update(wizard::getUserIDReg(), $res); $prof = new professions(); if ($data['spec_orig'] > 0) { $error_db = $prof->UpdatePortfChoise(wizard::getUserIDReg(), array($data['spec_orig'])); } // Если нет ошибок очищаем таблицу if ($error_db) { $this->log->writeln("Error transfer data user content - user (" . wizard::getUserIDReg() . "|" . $this->getWizardUserID() . ") - Error: {$error_db}"); } else { $this->_db->query("DELETE FROM wizard_fields WHERE id = ? AND wiz_uid = ?", $field['id'], $this->getWizardUserID()); } return $error_db; }