Example #1
0
 /**
  * Возвращает стоимость покупки или поднятия.
  *
  * @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'];
 }
Example #2
0
<?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']);
Example #3
0
            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'] .= '&nbsp;/&nbsp;'.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);
Example #5
0
         }
     } 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'];
Example #6
0
        $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']) {
Example #7
0
 /**
  * Получить стоимость размещения
  * если передан 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'];
 }
Example #8
0
 /**
  * Возвращает цену за подняние
  * 
  * @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'];
 }
Example #9
0
 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;
 }
Example #10
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;
Example #11
0
         }
     } 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'];
Example #12
0
<?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']);
Example #13
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';
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;
Example #14
0
 /**
  * Вывод страницы /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;
     }
 }
Example #15
0
 static function getPriceByOpCode($opCode)
 {
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/op_codes.php';
     $price = op_codes::getPriceByOpCode($opCode);
     return ceil($price * 10);
 }
Example #16
0
 /**
  * Возвращает стоимость по коду операции.
  * @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);
 }
Example #17
0
 /**
  * Обработка входящей операции помещения услуги в "Список услуг" согласно входящей 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;
 }
Example #19
0
        $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']) {