/** * Возвращает стоимость покупки или поднятия. * * @return type */ public function getPrice($up = false, $uid = 0, $prof_id = null) { //кеш для нескольких вызовов в течении сесии static $_cache = array(); $key = md5(print_r(func_get_args(), true)); if (isset($_cache[$key])) { return $_cache[$key]; } $opCode = $this->getOpCode($up); //Пробуем получить скидку для конкретного пользователя if ($uid > 0) { $bill = self::getBilling($uid); $opCode = $bill->getDiscountOpCode($opCode); } $data = op_codes::getDataByOpCode($opCode, $prof_id); if (@$data['sum']) { $_cache[$key] = @$data['sum']; } return @$data['sum']; }
<?php /** * Устарелый шаблон с тарифами ПРО */ require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/freelancer.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/professions.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/projects_offers_answers.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/op_codes.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/rating.php"; if ($uid) { $op_codes = new op_codes(); $opcodes = $op_codes->getCodes('80,16,65'); if ($paid_specs = professions::getPaidSpecs($uid)) { $paid_spec_cnt = count($paid_specs); } $free_spec_cnt = is_pro() ? 5 : 1; $spec_cnt = $paid_spec_cnt + $free_spec_cnt; $paid_spec_price = $opcodes[professions::OP_PAID_SPEC]['sum'] * $paid_spec_cnt; $poa = new projects_offers_answers(); $poa->GetInfo($uid); $poa_codes = $poa->GetOpCodes(); $user = new freelancer(); // Изменяем авто продление PRO, если нужно if (strtolower($_GET['pro_auto_prolong']) == 'on') { $user->setPROAutoProlong('on', $uid); } if (strtolower($_GET['pro_auto_prolong']) == 'off') { $user->setPROAutoProlong('off', $uid); } $user->GetUser($_SESSION['login']);
echo "window.location = '/registration/?user_action=buypro';"; ?> "<?php } ?> <?php if ($is_emp) { ?> data-ga-event="{ec: 'customer', ea: 'customer_propage_buybutton_clicked',el: '<?php echo op_codes::getLabel($pay['opcode']); ?> '}"<?php } else { ?> data-ga-event="{ec: 'freelancer', ea: 'freelancer_propage_buybutton_clicked',el: '<?php echo op_codes::getLabel($pay['opcode']); ?> '}"<?php } ?> > Купить </a> <?php } ?> </div> <?php if (isset($pay['old_cost'])) { ?>
if (isset($offers) && is_array($offers)) { //количество загруженных в данный момент проектов на странице $_SESSION['offers_on_page'] = sizeof($offers); //не позволяем перегрузиться странице, после перемещения всех предложений, если нахоимся на единственной странице, для этого просто добавим 1 к количеству предложений if (ceil($num_offers / MAX_OFFERS_AT_PAGE) == 1) { $_SESSION['offers_on_page'] = sizeof($offers) + 1; } foreach ($offers as $key => $value) { if ($value['user_id'] == $project['exec_id']) { $project['exec_po_id'] = $value['id']; } } } require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/HTML/projects_lenta.php"; require_once ABS_PATH . "/classes/op_codes.php"; $op_codes = new op_codes(); $pProjCost = $project['kind'] == 2 ? $op_codes->GetField(9, $error, "sum") : $op_codes->GetField(8, $error, "sum"); $user_obj = new users(); /* $category = professions::GetGroup($project['category'], $eeee); if($category['name'] && $project['subcategory']) $category['name'] .= ' / '.professions::GetProfName($project['subcategory']); $category['name'] = projects::getSpecsStr($project['id'],'<strong> / </strong>'); */ $answer_button_href = get_uid() ? is_emp($_SESSION['role']) ? "/public/?step=1&kind=" . $project['kind'] . "&red=" : "#new_offer" : "/login/"; $answer_button_text = get_uid() && is_emp($_SESSION['role']) ? $project['kind'] == 7 ? "Разместить аналогичный конкурс" : $project['kind'] == 4 ? "Опубликовать аналогичную вакансию" : "Опубликовать аналогичный проект" : "Ответить на проект"; ?> <script type="text/javascript"> <!-- var in_office = '<?php echo (int) ($project['kind'] == 4);
} } elseif ($gift['op_code'] == 97) { if (!is_emp()) { $n = $op_codes->GetField(17, $err, 'sum') * 30; } else { $n = 2550; } } $text1 = "Спасибо, что воспользовались банковским переводом при пополнении счета. Ваш подарок - {$n} рублей."; $count = 1; $text2 = ''; break; case 91: case 93: include_once $_SERVER['DOCUMENT_ROOT'] . '/classes/op_codes.php'; $op_codes = new op_codes(); if ($gift['op_code'] == 91) { $n = $op_codes->GetField(48, $err, 'sum') * 300; } elseif ($gift['op_code'] == 93) { if (!is_emp()) { $n = $op_codes->GetField(17, $err, 'sum') * 30; } else { $n = 2550; } } $text1 = "Спасибо, что воспользовались WebMoney при пополнении счета. Ваш подарок - {$n} рублей."; $count = 1; $text2 = ''; break; default: $text1 = $gift['op_name'];
$u = new users(); $o_only_phone = $u->GetField($uid, $ee, 'safety_only_phone'); $reqv = sbr_meta::getUserReqvs($uid); $ureqv = $reqv[$reqv['form_type']]; $social_bind_error = isset($_SESSION['opauth_error']) ? $_SESSION['opauth_error'] : ''; unset($_SESSION['opauth_error']); require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/opauth/OpauthModel.php"; $opauthModel = new OpauthModel(); $social_links = $opauthModel->getUserLinks($uid); $js_file[] = '/scripts/b-combo/b-combo-phonecodes.js'; $inner = "../../setup/main_inner.php"; $activ_tab = 0; break; } require_once ABS_PATH . "/classes/op_codes.php"; $op_codes = new op_codes(); $pProjCost = $op_codes->GetField(8, $error, "sum"); $content = "content.php"; switch ($action) { case "save_phone": require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/sbr.php"; $reqv = sbr_meta::getUserReqvs(get_uid(false)); $ureqv = $reqv[$reqv['form_type']]; $uid = get_uid(false); $code = __paramInit('int', null, 'smscode'); $phone = __paramInit('string', null, 'mob_phone'); $type = __paramInit('string', null, 'type'); if ($type == 'unbind') { $phone = $ureqv['mob_phone']; } if ($code == $_SESSION['send_sms_code'] && $phone == $_SESSION['send_sms_phone']) {
/** * Получить стоимость размещения * если передан ID пользователя то пробуем получить скидку * * @param type $prof_group_id * @param type $prof_id * @param type $uid * @return type */ static function getPlacementPrice($prof_group_id, $prof_id, $uid = 0) { $opCode = $prof_group_id ? self::OP_CODE_CATEGORY : ($prof_id == -1 ? self::OP_CODE_MAIN : self::OP_CODE_SUBCATEGORY); //Пробуем получить скидку для конкретного пользователя if ($uid > 0) { $bill = self::getBilling($uid); $opCode = $bill->getDiscountOpCode($opCode); } $data = op_codes::getDataByOpCode($opCode); return @$data['sum']; }
/** * Возвращает цену за подняние * * @param type $prof_id * @param type $is_spec * @return type */ public function getPriceUp($prof_id, $is_spec, $uid = 0) { $opCode = $this->getOpCodeUp($prof_id, $is_spec); //Пробуем получить скидку для конкретного пользователя if ($uid > 0) { $bill = self::getBilling($uid); $opCode = $bill->getDiscountOpCode($opCode); } $data = op_codes::getDataByOpCode($opCode, $prof_id); return @$data['sum']; }
function PaidSpecsEndingReminder() { global $DB; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/smail.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/op_codes.php"; $mail = new smail(); $ops = new op_codes(); $price = $ops->getCodes(self::OP_PAID_SPEC); if (!$price) { return 0; } $price = $price[self::OP_PAID_SPEC]; $sql = "SELECT user_id, COUNT(*) AS cnt FROM spec_paid_choise\n INNER JOIN users u ON u.uid = user_id AND u.is_banned = '0'\n WHERE paid_to > NOW()+'1 day' AND paid_to <= NOW()+'1 day 1 hour' AND is_autopaid = TRUE\n GROUP BY user_id"; $res = $DB->query($sql); while ($row = pg_fetch_array($res)) { $mail->PaidSpecsEnding($row['user_id'], $row['cnt'] * $price['sum']); } return 0; }
<?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/op_codes.php'; //------------------------------------------------------------------------------ $results = array(); //if(count($argv) > 1) parse_str(implode('&', array_slice($argv, 1)), $_GET); //------------------------------------------------------------------------------ $results['clearCache'] = (int) op_codes::clearCache(); //------------------------------------------------------------------------------ array_walk($results, function (&$value, $key) { $value = sprintf('%s = %s' . PHP_EOL, $key, $value); }); print_r(implode('', $results)); exit;
} } elseif ($gift['op_code'] == 97) { if (!is_emp()) { $n = $op_codes->GetField(17, $err, "sum") * 30; } else { $n = 2550; } } $text1 = "—пасибо, что воспользовались банковским переводом при пополнении счета. ¬аш подарок - {$n} рублей."; $count = 1; $text2 = ''; break; case 91: case 93: include_once $_SERVER["DOCUMENT_ROOT"] . "/classes/op_codes.php"; $op_codes = new op_codes(); if ($gift['op_code'] == 91) { $n = $op_codes->GetField(48, $err, "sum") * 300; } elseif ($gift['op_code'] == 93) { if (!is_emp()) { $n = $op_codes->GetField(17, $err, "sum") * 30; } else { $n = 2550; } } $text1 = "—пасибо, что воспользовались WebMoney при пополнении счета. ¬аш подарок - {$n} рублей."; $count = 1; $text2 = ''; break; default: $text1 = $gift['op_name'];
<?php if (!defined('IS_SITE_ADMIN')) { header('Location: /404.php'); exit; } require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/account.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/users.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/sbr.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/op_codes.php"; if (!hasPermissions('payments')) { header("Location: /404.php"); exit; } $account = new account(); $op_codes = new op_codes(); $user = new users(); $login = trim($_GET['login']); if (!$login) { $login = trim($_POST['login']); } $user->GetUser($login); $uid = $user->GetUid($error, $user->login); $action = trim($_GET['action']); if (!$action) { $action = trim($_POST['action']); } $ok = $account->GetInfo($uid, true); switch ($action) { case "blocked": $opid = intval($_GET['opid']);
<?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/op_codes.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/op_codes_price.php'; //------------------------------------------------------------------------------ $results = array(); //if(count($argv) > 1) parse_str(implode('&', array_slice($argv, 1)), $_GET); //------------------------------------------------------------------------------ $results['op_codes_price::updateCache'] = (int) op_codes_price::updateCache(); op_codes::clearCache(); $results['op_codes::getAllOpCodes'] = (int) op_codes::getAllOpCodes(); //------------------------------------------------------------------------------ array_walk($results, function (&$value, $key) { $value = sprintf('%s = %s' . PHP_EOL, $key, $value); }); print_r(implode('', $results)); exit;
/** * Вывод страницы /gift/ "Подарок". */ public function giftAction() { include $_SERVER['DOCUMENT_ROOT'] . '/404.php'; exit; /* * @deprecated Все что ниже пока не используется */ front::og('tpl')->page = 'gift'; self::isBlockMoney(); /** * Подключаем AJAX для страницы. */ require_once $_SERVER['DOCUMENT_ROOT'] . '/xajax/bill.common.php'; front::og('tpl')->script = '/scripts/bill2.js'; front::og('tpl')->xajax = $xajax; front::og('tpl')->mnth = 1; // Месяцев оплаты по умолчанию $val = $this->uri[0]; switch ($val) { case 'pro': // Вывод подстраницы "Аккаунт «PRO»" /* * Обработка события "Подарить" */ if ($_POST['act']) { $mnth = intval(trim($_POST['mnth'])); // месяцев $login = trim(strip_tags($_POST['login'])); // логин пользователя $msg = change_q_x(__paramInit('string', null, 'msg', null, 300)); $usertype = trim(strip_tags($_POST['usertype'])); /** * Подключаем класс для оплаты подарка. */ require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/payed.php'; $prof = new payed(); $tr_id = $_REQUEST['transaction_id']; if (!$tr_id) { $this->account->view_error('Невозможно завершить транзакцию. Попробуйте повторить операцию с самого начала.'); } front::og('tpl')->tr_id = $tr_id; front::og('tpl')->login = $login; front::og('tpl')->msg = $msg; front::og('tpl')->mnth = $mnth; /* * Если нет ошибок выводим */ if ($mnth > 0 && $login) { // Класс для работы с пользователем require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php'; $user = new users(); $gid = $user->GetUid($error, $login); $user->GetUser($login); if (!$gid) { $alert['login'] = '******'; } if ($gid == get_uid()) { $alert['login'] = '******'; } if (defined('SPEC_USER') && get_uid() == SPEC_USER) { $alert['login'] = '******'; } if (!$alert) { $role = $user->GetRole($login, $error); /* * Высчитываем тариф для обработки. Тариф зависит от количества месяцев (Действуют специальные скидки) */ if (substr($role, 0, 1) != '0') { $tarif = 16; } else { $tarif = 52; if ($mnth == 3) { $tarif = 66; } if ($mnth == 6) { $tarif = 67; } if ($mnth == 12) { $tarif = 68; } } $ok = $prof->GiftOrderedTarif($bill_id, $gift_id, $gid, get_uid(), $tr_id, $mnth, $msg, $tarif); // Оплата подарка if ($ok) { // Посылаем уведомление о подарке и переносим на страницу успешной оплаты $sm = new smail(); $sm->NewGift($_SESSION['login'], $login, $msg, $gift_id); $_SESSION['success_aid'] = $bill_id; header("Location: /{$this->name_page}/success/"); exit; } unset($msg); } } else { $alert['login'] = '******'; } front::og('tpl')->error = $alert; } front::og('tpl')->display('bill/bill_gift_pro.tpl'); break; case 'main': // Вывод подстраницы "Платное размещение в разделе" front::og('tpl')->type = 1; // Типа размещения = неделя /* * Обработка события "Подарить" - при нажатии кнопки подарить */ if ($_POST['act']) { $type = intval(trim($_POST['type'])); // Сколько недель $login = trim(strip_tags($_POST['login'])); $msg = change_q_x(__paramInit('string', null, 'msg', null, 300)); /** * Класс для обработки оплаты и взаимодействия механизма вывода. */ require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/firstpage.php'; $prof = new firstpage(); $tr_id = $_REQUEST['transaction_id']; if (!$tr_id) { $this->account->view_error('Невозможно завершить транзакцию. Попробуйте повторить операцию с самого начала.'); } front::og('tpl')->tr_id = $tr_id; front::og('tpl')->login = $login; front::og('tpl')->msg = $msg; front::og('tpl')->type = $type; if (!$type) { $alert['type'] = 'Не выбрано количество недель.'; } else { $d_time = "{$type} неделя"; $intv = "{$type} weeks"; if ($login) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php'; $user = new users(); $gid = $user->GetUid($error, $login); $user->GetUser($login); if (!$gid) { $alert['login'] = '******'; } if (is_emp($user->role)) { $alert['login'] = '******'; } if ($gid == get_uid()) { $alert['login'] = '******'; } if (defined('SPEC_USER') && get_uid() == SPEC_USER) { $alert['login'] = '******'; } if (!$alert) { $order_id = $prof->Gift($bill_id, $gift_id, $gid, get_uid(), $tr_id, $intv, 17, $msg, $type); if (!$order_id) { header('Location: /bill/fail/'); // Если оплата не прошла exit; } else { // Уведомление на почту $sm = new smail(); $sm->NewGift($_SESSION['login'], $login, $msg, $gift_id); $_SESSION['success_aid'] = $bill_id; header("Location: /{$this->name_page}/success/"); // Если все прошло успешно переносим на страницу - Успешно exit; } } } else { $alert['login'] = '******'; } } front::og('tpl')->error = $alert; } front::og('tpl')->display('bill/bill_gift_main.tpl'); break; case 'fronttop': // Обработка подстраницы "Платные места наверху главной страницы" // Событие нажатия кнопки "Подарить" if ($_POST['act']) { $login = trim(strip_tags($_POST['login'])); // Логин $msg = change_q_x(__paramInit('string', null, 'msg', null, 300)); $tr_id = $_REQUEST['transaction_id']; if (!$tr_id) { $this->account->view_error('Невозможно завершить транзакцию. Попробуйте повторить операцию с самого начала.'); } front::og('tpl')->tr_id = $tr_id; front::og('tpl')->login = $login; front::og('tpl')->msg = $msg; if ($login) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php'; $user = new users(); $gid = $user->GetUid($error, $login); $user->GetUser($login); if (is_emp($user->role)) { $alert['login'] = '******'; } if ($gid == get_uid()) { $alert['login'] = '******'; } if (defined('SPEC_USER') && get_uid() == SPEC_USER) { $alert['login'] = '******'; } if (!$gid) { $alert['login'] = '******'; } if (!$alert) { /** * Класс для работы с оплатой подарка. */ require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/pay_place.php'; $place = new pay_place(); $tarif = 69; $profs = $place->gift($bill_id, $gift_id, $tr_id, $gid, get_uid(), $msg, $tarif); // Оплачиваем подарок if ($profs) { $_SESSION['success_aid'] = $bill_id; header("Location: /{$this->name_page}/success/"); // Все прошло успешно exit; } } } else { $alert['login'] = '******'; } front::og('tpl')->error = @$alert; // Переменная ошибок } front::og('tpl')->display('bill/bill_gift_fronttop.tpl'); break; case 'cattop': // Обработка подстраницы "Платные места наверху каталога" // Событие нажатия кнопки "Подарить" if ($_POST['act']) { $login = trim(strip_tags($_POST['login'])); // Логин $msg = change_q_x(__paramInit('string', null, 'msg', null, 300)); $tr_id = $_REQUEST['transaction_id']; if (!$tr_id) { $this->account->view_error('Невозможно завершить транзакцию. Попробуйте повторить операцию с самого начала.'); } front::og('tpl')->tr_id = $tr_id; front::og('tpl')->login = $login; front::og('tpl')->msg = $msg; if ($login) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php'; $user = new users(); $gid = $user->GetUid($error, $login); $user->GetUser($login); if (!$gid) { $alert['login'] = '******'; } if (is_emp($user->role)) { $alert['login'] = '******'; } if ($gid == get_uid()) { $alert['login'] = '******'; } if (defined('SPEC_USER') && get_uid() == SPEC_USER) { $alert['login'] = '******'; } if (!$alert) { /** * Класс для работы с оплатой подарка. */ require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/pay_place.php'; $place = new pay_place(1); $tarif = 83; $profs = $place->gift($bill_id, $gift_id, $tr_id, $gid, get_uid(), $msg, $tarif); // Оплачиваем подарок if ($profs) { $_SESSION['success_aid'] = $bill_id; header("Location: /{$this->name_page}/success/"); // Все прошло успешно exit; } } } else { $alert['login'] = '******'; } front::og('tpl')->error = @$alert; // Переменная ошибок } front::og('tpl')->display('bill/bill_gift_cattop.tpl'); break; case 'catalog': // Обработка подстраницы "Платные места в каталоге в подарок" // Событие нажатия кнопки "Подарить" front::og('tpl')->filter_categories = professions::GetAllGroupsLite(true); front::og('tpl')->filter_subcategories = professions::GetAllProfessions(1); $x = new op_codes(); $x->GetRow(84); $top_p = $x->sum; $x->GetRow(85); $inside_p = $x->sum; front::og('tpl')->price_top = $top_p; front::og('tpl')->price_inside = $inside_p; if ($_POST['act']) { $login = trim(strip_tags($_POST['login'])); // Логин $msg = change_q_x(__paramInit('string', null, 'msg', null, 300)); $pf_category = __paramInit('int', null, 'pf_category', 0); $pf_subcategory = __paramInit('int', null, 'pf_subcategory', 0); //echo '<pre>'; print_r($_POST); exit('</pre>'); $tr_id = $_REQUEST['transaction_id']; if (!$tr_id) { $this->account->view_error('Невозможно завершить транзакцию. Попробуйте повторить операцию с самого начала.'); } front::og('tpl')->tr_id = $tr_id; front::og('tpl')->login = $login; front::og('tpl')->msg = $msg; front::og('tpl')->pf_category = $pf_category; front::og('tpl')->pf_subcategory = $pf_subcategory; if ($login) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php'; $user = new users(); $gid = $user->GetUid($error, $login); $user->GetUser($login); if (!$gid) { $alert['login'] = '******'; } if (is_emp($user->role)) { $alert['login'] = '******'; } if ($gid == get_uid()) { $alert['login'] = '******'; } if (defined('SPEC_USER') && get_uid() == SPEC_USER) { $alert['login'] = '******'; } $weeks = (int) $_POST['weeks']; if (!$weeks) { $alert['week'] = 'Данное поле является обязательным'; } if (!$alert) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/firstpage.php'; $prof = new firstpage(); $pf_category = (int) $_POST['pf_category']; $pf_subcategory = (int) $_POST['pf_subcategory']; $page = !$pf_subcategory ? 0 : $pf_subcategory; $place_info = array($page => $weeks); $op_code = $page ? 85 : 84; // require_once($_SERVER['DOCUMENT_ROOT'] . "/classes/account.php"); // $account = new account(); // $account ->/ view_error("Невозможно завершить транзакцию. Попробуйте повторить операцию с самого начала."); $account = new account(); if ($prof->GiftOrderedCat($bill_id, $gift_id, $gid, get_uid(), $tr_id, $page, (int) $weeks, $op_code, $msg)) { $_SESSION['success_aid'] = $bill_id; header("Location: /{$this->name_page}/success/"); // Все прошло успешно exit; } } } else { $alert['login'] = '******'; } front::og('tpl')->error = @$alert; // Переменная ошибок } front::og('tpl')->display('bill/bill_gift_catalog.tpl'); break; default: /* * По умолчанию выводим главную страницу раздела "Подарки" */ front::og('tpl')->display('bill/bill_gift.tpl'); break; } }
static function getPriceByOpCode($opCode) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/op_codes.php'; $price = op_codes::getPriceByOpCode($opCode); return ceil($price * 10); }
/** * Возвращает стоимость по коду операции. * @param integer $op_code код операции * @return float стоимость. */ function getPriceByCode($op_code) { require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/op_codes.php"; $op_codes = new op_codes(); return round($op_codes->getPriceByOpCodeWithoutDiscount($op_code), 2); }
/** * Обработка входящей операции помещения услуги в "Список услуг" согласно входящей op_code. * * @param int $op_code ИД операции * @param array $code Данные операции (если есть на момент вызова функции) * * @return array */ public function prepareOperationCode($op_code, $code = null) { $code = $code == null ? current(op_codes::getCodes($op_code)) : $code; $_op_code = self::getOpCodeByDiscount($op_code); $data = array(); switch ($_op_code) { // Конкурс case 9: case 106: case 121: case 122: case 123: case 124: case 125: case 126: case 127: case 128: case 129: case 130: //Платный конкурс //Платный конкурс case 86: //Платный проект (вакансия, устаревший опкод) //Платный проект (вакансия, устаревший опкод) case 53: //Покупка вакансии //Покупка вакансии case 113: //пользователь не PRO //пользователь не PRO case 192: //пользователь PRO //Платные услуги проектов //пользователь PRO //Платные услуги проектов case 138: case 139: case 140: case 141: if (is_emp($this->user['role'])) { $data = array('ammount' => 0, 'pro_ammount' => 0, 'descr' => '', 'comment' => 'Платный проект / ', 'service' => 'projects'); if (!empty($this->_option)) { $i = 0; if ($this->_option['items']['bold'] > 0) { $data['option'] = 'bold'; $data['comment'] .= ($i++ ? ', ' : '') . 'жирный шрифт'; $data['ammount'] += $this->_option['items']['bold']; } if ($this->_option['items']['color'] > 0) { $data['option'] = 'color'; $data['comment'] .= ($i++ ? ', ' : '') . 'подсветка фоном'; $data['ammount'] += $this->_option['items']['color']; } if ($this->_option['items']['urgent'] > 0) { $data['option'] = 'urgent'; $data['comment'] .= ($i++ ? ', ' : '') . 'срочный'; $data['ammount'] += $this->_option['items']['urgent']['no_pro']; $data['pro_ammount'] += (int) $this->_option['items']['urgent']['pro']; } if ($this->_option['items']['hide'] > 0) { $data['option'] = 'hide'; $data['comment'] .= ($i++ ? ', ' : '') . 'скрытый'; $data['ammount'] += $this->_option['items']['hide']['no_pro']; $data['pro_ammount'] += (int) $this->_option['items']['hide']['pro']; } if ($this->_option['items']['logo'] > 0) { $data['option'] = 'logo'; $data['descr'] = $this->_option['logo_link']; $data['src_id'] = $this->_option['logo_id']; $data['comment'] .= ($i++ ? ', ' : '') . 'логотип'; $data['ammount'] += $this->_option['items']['logo']['no_pro']; $data['pro_ammount'] += (int) $this->_option['items']['logo']['pro']; } if ($this->_option['items']['office'] > 0) { $data['option'] = 'office'; $data['comment'] .= ($i++ ? ', ' : '') . 'в офис'; $data['ammount'] += $this->_option['items']['office']; } if ($this->_option['items']['top'] > 0) { $data['option'] = 'top'; $data['op_count'] = $this->_option['addTop']; $topDays = $this->_option['addTop']; $data['comment'] .= ($i++ ? ', ' : '') . 'закрепление наверху на ' . $topDays . ' ' . getTermination($topDays, array(0 => 'день', 1 => 'дня', 2 => 'дней')); $data['ammount'] += $this->_option['items']['top']['no_pro']; $data['pro_ammount'] += (int) $this->_option['items']['top']['pro']; } if ($this->_option['items']['contest'] > 0) { $data['option'] = 'contest'; $data['comment'] = 'Публикация конкурса'; $data['ammount'] += is_pro() ? $this->_option['items']['contest']['pro'] : $this->_option['items']['contest']['no_pro']; $data['pro_ammount'] += $this->_option['items']['contest']['pro']; } $data['parent_id'] = $this->_option['prj_id']; if ($this->_option['is_edit']) { $data['parent_table'] = 'projects'; } else { $data['parent_table'] = 'draft_projects'; } } } break; // Поднятие платных мест // Поднятие платных мест case 21: if (!is_emp($this->user['role'])) { $data = array('ammount' => round($code['sum'], 2), 'descr' => '', 'comment' => $code['op_name'], 'service' => 'first_page_up'); if (!empty($this->_option)) { $data['descr'] = $this->_option['prof_id']; $data['src_id'] = $this->_option['prof_id']; $data['ammount'] = $this->_option['sum']; if ($this->_option['prof_id'] == -1) { $data['comment'] = 'Поднятие платного места на главной'; } else { $data['comment'] = 'Поднятие платного места в каталоге'; } } } break; // Поднятие на первое место в платных местах // Поднятие на первое место в платных местах case 145: case 146: case 154: if (!is_emp($this->user['role'])) { $data = array('ammount' => $code['sum'], 'descr' => '', 'comment' => $code['op_name'], 'service' => 'first_page_top'); if (!empty($this->_option)) { $data['descr'] = $this->_option['prof_id']; $data['src_id'] = $this->_option['prof_id']; $data['comment'] = $this->_option['comment']; } } break; // Пополнение счета // Пополнение счета case 135: $data = array('ammount' => $this->_option['acc_sum'], 'descr' => '', 'comment' => 'Погашение задолженности - ' . $this->_option['acc_sum']); break; //Резервирование средств //Резервирование средств case 136: require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/reserves/ReservesModelFactory.php'; $reserve_data = @$this->_option['reserve_data']; if (!$reserve_data) { break; } $comment = ReservesModelFactory::getInstance($reserve_data['type'])->getBillComment($reserve_data['src_id']); $data = array('ammount' => $this->_option['acc_sum'], 'parent_id' => $reserve_data['id'], 'parent_table' => 'reserves', 'comment' => $comment); break; // Автоответы // Автоответы case 137: $data = array('ammount' => $this->_option['acc_sum'], 'comment' => 'Покупка автоответа', 'parent_id' => $this->_option['autoresponse_id'], 'parent_table' => 'autoresponse'); break; // Платное место в карусели // Платное место в карусели case 65: // На главной странице // На главной странице case 73: // В каталоге if (!is_emp($this->user['role'])) { $data = array('ammount' => round($code['sum'], 2), 'descr' => 'Оплачено', 'comment' => 'Оплата новых платных мест', 'service' => 'pay_place'); if (!empty($this->_option)) { $data['option'] = serialize($this->_option); //поддержка старого режима где небыло возможности //приобрести несколько размещений if (isset($this->_option['num'])) { $data['ammount'] = $data['ammount'] * $this->_option['num']; $data['op_count'] = $this->_option['num']; } } } break; // Аккаунт PROFI для фрилансера // Аккаунт PROFI для фрилансера case 164: // Аккаунт PROFI на 1 месяц $to = 'на 1 месяц'; if (!is_emp($this->user['role'])) { $data = array('ammount' => round($code['sum'] * 10, 2), 'descr' => 'Все разделы', 'comment' => "Аккаунт PROFI {$to}", 'service' => 'pro'); } break; // Аккаунт ПРО для фрилансера // Аккаунт ПРО для фрилансера case 47: // Тестовый аккаунт ПРО if ($this->IsUserWasPro()) { break; } $to = 'на 1 неделю'; case 132: // Аккаунт ПРО на 1 день $to = !$to ? 'на 1 день' : $to; case 131: // Аккаунт ПРО на 1 неделю $to = !$to ? 'на 1 неделю' : $to; case 163: //Тестовый ПРО на месяц //Тестовый ПРО на месяц case 48: // Аккаунт ПРО на 1 месяц $to = !$to ? 'на 1 месяц' : $to; case 49: // Аккаунт ПРО на 3 месяца $to = !$to ? 'на 3 месяца' : $to; case 50: // Аккаунт ПРО на 6 месяцев $to = !$to ? 'на 6 месяцев' : $to; case 51: // Аккаунт ПРО на 12 месяцев $to = !$to ? 'на 1 год' : $to; if (!is_emp($this->user['role'])) { $data = array('ammount' => round($code['sum'] * 10, 2), 'descr' => 'Все разделы', 'comment' => "Аккаунт PRO {$to}", 'service' => 'pro'); } break; // Аккаунт ПРО для работодателей // Аккаунт ПРО для работодателей case 15: // Аккаунт ПРО на 1 месяц $code['sum'] = $code['sum'] * payed::PRICE_EMP_PRO / 10; $to = 'на 1 месяц'; case 118: // Аккаунт ПРО на 3 месяца $to = !$to ? 'на 3 месяца' : $to; case 119: // Аккаунт ПРО на 6 месяцев $to = !$to ? 'на 6 месяцев' : $to; case 120: // Аккаунт ПРО на 12 месяцев $to = !$to ? 'на 1 год' : $to; if (is_emp($this->user['role'])) { $data = array('ammount' => round($code['sum'] * 10, 2), 'descr' => 'Все разделы', 'comment' => "Аккаунт PRO {$to}", 'service' => 'pro'); } break; case 45: $data = array('ammount' => round($this->_option['amount'], 2), 'parent_id' => $this->_option['masssending_id'], 'parent_table' => 'mass_sending', 'descr' => 'Рассылка по каталогу', 'comment' => 'Рассылка по каталогу', 'service' => 'massending'); break; case 117: // Оплата верификации $data = array('option' => serialize($this->_option['data']), 'src_id' => $this->_option['prev']['id'], 'ammount' => round($code['sum'], 2), 'descr' => 'Верификация через сервис FF.RU', 'comment' => 'Верификация через сервис FF.RU', 'service' => 'verify_ff'); break; case 133: $data = array('ammount' => round($code['sum'] * 10, 2), 'descr' => 'Верификация WebMoney', 'comment' => 'Верификация WebMoney', 'service' => 'verify_webmoney'); break; //Верификация банковской картой через ЯКассу //Верификация банковской картой через ЯКассу case 191: $data = array('ammount' => round($code['sum'], 2), 'descr' => 'Верификация банковской картой', 'comment' => 'Верификация банковской картой', 'option' => serialize($this->_option)); break; // Закрепление в каталоге фрилансеров // Закрепление в каталоге фрилансеров case 142: // Корневой каталог // Корневой каталог case 143: // Раздел // Раздел case 144: // Подраздел // Подраздел case 148: // Продление в корневом каталоге // Продление в корневом каталоге case 149: // Продление в разделе // Продление в разделе case 150: // Продление в подразделе if (!is_emp($this->user['role'])) { //Получаем диф.цену $sum = op_codes_price::getOpCodePrice($op_code, $this->_option['prof_id']); $code['sum'] = $sum ? $sum : $code['sum']; $data = array('ammount' => $code['sum'], 'descr' => '', 'comment' => 'Закрепление в каталоге фрилансеров', 'service' => 'frlbind'); if (!empty($this->_option)) { $data['src_id'] = $this->_option['prof_id']; $data['ammount'] = $data['ammount'] * $this->_option['weeks']; $data['op_count'] = $this->_option['weeks']; } } break; // Поднятие закрепления в каталоге фрилансеров // Поднятие закрепления в каталоге фрилансеров case 151: // Корневой каталог // Корневой каталог case 152: // Раздел // Раздел case 153: // Подраздел // Подраздел case 194: // Оплата из буфера if (!is_emp($this->user['role'])) { //Получаем диф.цену $sum = op_codes_price::getOpCodePrice($op_code, $this->_option['prof_id']); $code['sum'] = $sum ? $sum : $code['sum']; $data = array('ammount' => $code['sum'], 'descr' => '', 'comment' => 'Поднятие закрепления в каталоге фрилансеров', 'service' => 'frlbindup'); if (!empty($this->_option)) { $data['src_id'] = $this->_option['prof_id']; $data['op_count'] = 1; } } break; // Закрепление в каталоге услуг // Закрепление в каталоге услуг case 155: // Лендинг // Лендинг case 156: // Корневой каталог // Корневой каталог case 157: // Раздел // Раздел case 158: // Подраздел if (!is_emp($this->user['role'])) { //Получаем диф.цену $sum = op_codes_price::getOpCodePrice($op_code, $this->_option['prof_id']); $code['sum'] = $sum ? $sum : $code['sum']; $data = array('ammount' => $code['sum'], 'descr' => '', 'comment' => 'Закрепление в каталоге услуг', 'service' => 'tservicebind'); if (!empty($this->_option)) { $data['src_id'] = $this->_option['prof_id']; $data['ammount'] = $data['ammount'] * $this->_option['weeks']; $data['op_count'] = $this->_option['weeks']; $data['option'] = serialize(array('tservice_id' => $this->_option['tservice_id'], 'is_prolong' => $this->_option['is_prolong'])); } } break; // Поднятие закрепления в каталоге услуг // Поднятие закрепления в каталоге услуг case 159: // Лендинг // Лендинг case 160: // Корневой каталог // Корневой каталог case 161: // Раздел // Раздел case 162: // Подраздел // Подраздел case 193: // Оплата из буфера if (!is_emp($this->user['role'])) { //Получаем диф.цену $sum = op_codes_price::getOpCodePrice($op_code, $this->_option['prof_id']); $code['sum'] = $sum ? $sum : $code['sum']; $data = array('ammount' => $code['sum'], 'descr' => '', 'comment' => 'Поднятие закрепления в каталоге услуг', 'service' => 'tservicebindup'); if (!empty($this->_option)) { $data['src_id'] = $this->_option['bind_id']; $data['op_count'] = 1; } } break; } unset($this->_option); // Сбрасываем опции чтобы не путалось при покупке сразу нескольких услуг на странице //Перебиваем примечание к платежу по опкоду (любому и скидочному тоже) if ($_descr = $this->getDescrByOpCode($op_code)) { $data['descr'] = $_descr; } if ($this->promoCode) { $data['promo_code'] = $this->promoCode['id']; if (!isset($this->promoCode['is_original_price'])) { $promoCodes = new PromoCodes(); $data['ammount'] = $data['ammount'] - $promoCodes->getDiscount($this->promoCode, $data['ammount']); //@todo: для чего pro_ammount ? if (isset($data['pro_ammount']) && $data['pro_ammount'] > 0) { $data['pro_ammount'] = $data['pro_ammount'] - $promoCodes->getDiscount($this->promoCode, $data['pro_ammount']); } } } return $data; }
/** * Обрабатывает POST переменную action и возвращает null или данные. * * @return string */ public function processRequest() { $expire = 1; //3600; $action = __paramInit('string', '', 'action'); switch ($action) { case 'getdays': $days = array(1 => iconv('WINDOWS-1251', 'UTF-8//IGNORE', '1 день')); $max = __paramInit('integer', '', 'max', 1); $all = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 14, 21, 30, 45, 60, 90); if ($max > 1) { $days = array(); foreach ($all as $day) { if ($day >= $max) { break; } $days[$day] = iconv('WINDOWS-1251', 'UTF-8//IGNORE', $day . ending($day, ' день', ' дня', ' дней')); } } $days = array(array('parentId' => '0'), $days); return json_encode($days); break; case 'gettucategories': $expire = 300; //3600; $membuf = new memBuff(); $memkey = 'b-combo-gettucategories'; $result = $membuf->get($memkey); if (!$result) { /* * Получаем из базы иерархию категорий для * типовой услуги */ $DB = new DB('master'); $sql = 'SELECT g.id AS gid, g.title AS gname, g.ucnt AS gucnt, p.id AS pid, p.title AS name, p.ucnt AS pucnt FROM tservices_categories AS g INNER JOIN tservices_categories AS p ON p.parent_id = g.id ORDER BY g.ucnt DESC, p.ucnt DESC --gid, pid --g.n_order, p.n_order'; $rows = $DB->rows($sql); $result = array(); if (count($rows)) { foreach ($rows as $k => $i) { if ($result[$i['gid']] === null) { $result[$i['gid']] = array('0' => array(iconv('WINDOWS-1251', 'UTF-8//IGNORE', $i['gname']), $i['gucnt'])); if ($i['pid'] !== null) { $result[$i['gid']][$i['pid']] = array(iconv('WINDOWS-1251', 'UTF-8//IGNORE', $i['name']), $i['pucnt']); } else { $result[$i['gid']] = array(iconv('WINDOWS-1251', 'UTF-8//IGNORE', $i['gname']), $i['gucnt']); } } elseif (is_array($result[$i['gid']])) { $result[$i['gid']][$i['pid']] = array(iconv('WINDOWS-1251', 'UTF-8//IGNORE', $i['name']), $i['pucnt']); } } } //print_r($result); //exit; $result = json_encode($result); $membuf->add($memkey, $result, $expire); } return $result; break; case 'getlettergrouplist': require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/letters.php'; $lettergroups = letters::getGroups($_POST['word'], (int) $_POST['limit']); $result = array(); $n = 0; foreach ($lettergroups as $k => $i) { $result[$n]['uid'] = $i['id']; $result[$n]['uname'] = iconv('WINDOWS-1251', 'UTF-8//IGNORE', $i['title']); $result[$n]['usurname'] = ''; $result[$n]['login'] = ''; $result[$n]['photo'] = ''; $result[$n]['path'] = ''; $result[$n]['isContacts'] = ''; ++$n; } $list = array(); $list['list'] = $result; $list['counters']['moreContacts'] = 0; $list['counters']['moreUsers'] = 0; $list['dav'] = WDCPREFIX; return json_encode($list); break; case 'getlettergroupinfo': require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/letters.php'; $group = letters::getGroup($_POST['uid']); if ($group) { $data = array('record' => array('uid' => $group['id'], 'uname' => iconv('WINDOWS-1251', 'UTF-8//IGNORE', $group['title']), 'usurname' => '', 'login' => '', 'photo' => '', 'path' => '', 'isContacts' => ''), 'found' => 1, 'dav' => WDCPREFIX); } return json_encode($data); break; case 'getletterdocinfo': require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/letters.php'; $doc = letters::getDocument($_POST['uid']); if ($doc) { $data = array('record' => array('uid' => $doc['id'], 'uname' => iconv('WINDOWS-1251', 'UTF-8//IGNORE', $doc['id'] . ' ' . htmlspecialchars($doc['group_title']) . ' - ' . htmlspecialchars($doc['title'])), 'usurname' => '', 'login' => '', 'photo' => '', 'path' => '', 'isContacts' => ''), 'found' => 1, 'dav' => WDCPREFIX); } return json_encode($data); break; case 'getletterdoclist': require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/letters.php'; $letterdocs = letters::getDocuments($_POST['word'], (int) $_POST['limit']); $result = array(); $n = 0; foreach ($letterdocs as $k => $i) { $result[$n]['uid'] = $i['id']; $result[$n]['uname'] = iconv('WINDOWS-1251', 'UTF-8//IGNORE', $i['id'] . ' ' . htmlspecialchars($i['group_title']) . ' - ' . htmlspecialchars($i['title'])); $result[$n]['usurname'] = ''; $result[$n]['login'] = ''; $result[$n]['photo'] = ''; $result[$n]['path'] = ''; $result[$n]['isContacts'] = ''; ++$n; } $list = array(); $list['list'] = $result; $list['counters']['moreContacts'] = 0; $list['counters']['moreUsers'] = 0; $list['dav'] = WDCPREFIX; return json_encode($list); break; case 'getletterdocsearch': require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/letters.php'; $letterdocs = letters::getSearchDocuments($_POST['word'], (int) $_POST['limit']); $result = array(); $n = 0; foreach ($letterdocs as $k => $i) { $result[$n]['uid'] = $i['id']; $result[$n]['uname'] = iconv('WINDOWS-1251', 'UTF-8//IGNORE', $i['id'] . ' ' . htmlspecialchars($i['group_title']) . ' - ' . htmlspecialchars($i['title'])); $result[$n]['usurname'] = ''; $result[$n]['login'] = ''; $result[$n]['photo'] = ''; $result[$n]['path'] = ''; $result[$n]['isContacts'] = ''; ++$n; } $list = array(); $list['list'] = $result; $list['counters']['moreContacts'] = 0; $list['counters']['moreUsers'] = 0; $list['dav'] = WDCPREFIX; return json_encode($list); break; case 'getdate': return date('Y-m-d'); case 'getprofgroups': $membuf = new memBuff(); $memkey = 'b-combo-getprofgroups'; $result = $membuf->get($memkey); if (!$result) { $rows = professions::GetAllGroupsLite(); $result = array(); foreach ($rows as $k => $i) { $result[$i['id']] = iconv('WINDOWS-1251', 'UTF-8//IGNORE', $i['name']); } $membuf->add($memkey, $result, $expire); } return json_encode($result); case 'getprofessionsandgroups': $membuf = new memBuff(); $memkey = 'b-combo-getprofandgroups'; $result = $membuf->get($memkey); if (!$result) { $rows = professions::GetProfessionsAndGroup(); $result = array(); foreach ($rows as $k => $i) { if ($result[$i['gid']] === null) { $result[$i['gid']] = array($i['gid'] => iconv('WINDOWS-1251', 'UTF-8//IGNORE', $i['gname'])); if ($i['id'] !== null) { $result[$i['gid']][$i['id']] = iconv('WINDOWS-1251', 'UTF-8//IGNORE', $i['name']); } else { $result[$i['gid']] = iconv('WINDOWS-1251', 'UTF-8//IGNORE', $i['gname']); } } elseif (is_array($result[$i['gid']])) { $result[$i['gid']][$i['id']] = iconv('WINDOWS-1251', 'UTF-8//IGNORE', $i['name']); } } $membuf->add($memkey, $result, $expire); } return json_encode($result); case 'getprofessions': $n = __paramInit('integer', '', 'id'); if ($n !== false) { $membuf = new memBuff(); $memkey = "b-combo-getprofbygroup{$n}"; $result = $membuf->get($memkey); if (!$result) { $rows = professions::GetProfs($n); $result = array(0 => iconv('WINDOWS-1251', 'UTF-8//IGNORE', 'Все специальности')); foreach ($rows as $k => $i) { $result[$i['id']] = iconv('WINDOWS-1251', 'UTF-8//IGNORE', $i['name']); } $membuf->add($memkey, $result, $expire); } $data = array(array('parentId' => "{$n}"), $result); return json_encode($data); } case 'get_pro_types': $membuf = new memBuff(); $memkey = 'b-combo-get_pro_type'; $result = $membuf->get($memkey); if (!$result) { $rows = op_codes::getCodes(array(47, 48, 49, 50, 51)); $result = array(); foreach ($rows as $k => $i) { $result[$i['id']] = iconv('WINDOWS-1251', 'UTF-8//IGNORE', $i['op_name']); } $result[76] = iconv('WINDOWS-1251', 'UTF-8//IGNORE', 'На несколько недель'); $membuf->add($memkey, $result, $expire); } return json_encode($result); case 'getcountries': case 'getrelevantcountries': $membuf = new memBuff(); $memkey = 'b-combo-getcountriesr'; $result = $membuf->get($memkey); if (!$result) { $rows = country::GetCountriesByCountUser(); $result = array(); foreach ($rows as $k => $i) { $result[$i['id']] = iconv('WINDOWS-1251', 'UTF-8//IGNORE', $i['name']); } $membuf->add($memkey, $result, $expire); } return json_encode($result); case 'getcities': $n = __paramInit('integer', '', 'id'); if ($n !== false) { $membuf = new memBuff(); $memkey = "b-combo-getcitybycountry{$n}"; $result = $membuf->get($memkey); if (!$result) { $rows = city::GetCities($n); $result = array('0' => iconv('WINDOWS-1251', 'UTF-8//IGNORE', 'Все города')); if (is_array($rows)) { foreach ($rows as $k => $i) { $result[$k] = iconv('WINDOWS-1251', 'UTF-8//IGNORE', $i); } } $membuf->add($memkey, $result, $expire); } $data = array(array('parentId' => "{$n}"), $result); return json_encode($data); } case 'getcitiesbyid': $n = __paramInit('integer', '', 'id'); if ($n !== false) { $membuf = new memBuff(); $memkey = "b-combo-getcitybycountry{$n}"; $result = $membuf->get($memkey); if (!$result) { $rows = city::GetCities($n); $result = array('0' => iconv('WINDOWS-1251', 'UTF-8//IGNORE', 'Все города')); foreach ($rows as $k => $i) { $result[$k] = iconv('WINDOWS-1251', 'UTF-8//IGNORE', $i); } $membuf->add($memkey, $result, $expire); } return json_encode($result); } case 'getuserlistbysbr': case 'getuserlistold': case 'getuserlist': return $this->getUsersList($_POST['word'], (int) $_POST['limit'], (int) $_POST['userType'], (int) $_POST['scope']); case 'get_user_info': return json_encode(users::GetUserShortInfo((int) $_POST['uid'])); case 'getusersandcompanies': return $this->getUsersAndCompany($_POST['word'], (int) $_POST['limit'], (int) $_POST['userType'], (int) $_POST['scope'], false); case 'get_user_or_company_info': return $this->getUserOrCompanyRecord(); case 'getsms': require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/registration.php'; $registration = new registration(); $registration->listenerAction(__paramInit('string', null, 'action')); } return false; }
$u = new users(); $o_only_phone = $u->GetField($uid, $ee, 'safety_only_phone'); $reqv = sbr_meta::getUserReqvs($uid); $ureqv = $reqv[$reqv['form_type']]; $social_bind_error = isset($_SESSION['opauth_error']) ? $_SESSION['opauth_error'] : ''; unset($_SESSION['opauth_error']); require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/opauth/OpauthModel.php'; $opauthModel = new OpauthModel(); $social_links = $opauthModel->getUserLinks($uid); $js_file[] = '/scripts/b-combo/b-combo-phonecodes.js'; $inner = '../../setup/main_inner.php'; $activ_tab = 0; break; } require_once ABS_PATH . '/classes/op_codes.php'; $op_codes = new op_codes(); $pProjCost = $op_codes->GetField(8, $error, 'sum'); $content = 'content.php'; switch ($action) { case 'save_phone': require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/sbr.php'; $reqv = sbr_meta::getUserReqvs(get_uid(false)); $ureqv = $reqv[$reqv['form_type']]; $uid = get_uid(false); $code = __paramInit('int', null, 'smscode'); $phone = __paramInit('string', null, 'mob_phone'); $type = __paramInit('string', null, 'type'); if ($type == 'unbind') { $phone = $ureqv['mob_phone']; } if ($code == $_SESSION['send_sms_code'] && $phone == $_SESSION['send_sms_phone']) {