Beispiel #1
0
 public function process_event(&$event)
 {
     global $DB;
     $this->force_connect();
     $r = false;
     switch ($event->type) {
         case 'ProjectPosted':
             $project_id = $event->data['id'];
             $this->log->notice('New project posted #id = ' . $project_id);
             $obj_project = new projects();
             $project = $obj_project->GetPrjCust($project_id);
             // Не выбран испольнитель (если испольнитель выбран, то не пишем ответ на этот проект)
             if ($project && $project['exec_id'] == 0 && $project['kind'] == 1) {
                 $autoresponses = autoresponse::getListForProject($project);
                 foreach ($autoresponses as $autoresponse) {
                     $freelancer = $autoresponse->data['freelancer'];
                     $contacts_freelancer = $autoresponse->data['contacts_freelancer'];
                     // Проверяем если проект только для про, то и пользователь который на него отвечает должен быть ПРО
                     if ($project['pro_only'] == 't' && !payed::CheckPro($freelancer->login)) {
                         continue;
                     }
                     // Проверяем если проект только для верифицированных, то и пользователь который на него отвечает должен быть верифицирован
                     if ($project['verify_only'] == 't' && !$freelancer->IsVerified()) {
                         continue;
                     }
                     // Проверка, что текущий пользователь не является владельцем проекта
                     if ($project['user_id'] == $freelancer->uid) {
                         continue;
                     }
                     // Добавление нового отзыва к проекту
                     $obj_offer = new projects_offers();
                     $save_contacts = serialize($contacts_freelancer);
                     $DB->start();
                     $error_offer = $obj_offer->AddOffer($freelancer->uid, $project['id'], '', '', '', '', '', '', antispam(stripslashes($autoresponse->data['descr'])), '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', $autoresponse->toBoolean($autoresponse->data['only_4_cust']), 0, 0, false, false, $save_contacts, 0, $autoresponse->data['id']);
                     // В случае добавление автоответа, уменьшаем счетчик автоответов для пользователя (в транзакции)
                     if ($error_offer || !$autoresponse->reduce($freelancer, $obj_offer, $project_id)) {
                         $this->log->notice('Rollback autoresponse posted for project #id = ' . $project_id);
                         $DB->rollback();
                     } else {
                         $obj_project->incrementViews($project_id);
                         $this->log->notice(sprintf('New autoresponse #%d posted for project #%d', $obj_offer->offer_id, $project_id));
                         $DB->commit();
                     }
                 }
             }
             break;
     }
     return PGQ_EVENT_OK;
 }
Beispiel #2
0
 /**
  * Аутентификация пользователя и заполнение его сессии необходимыми данными.
  *
  * @param string $login логин пользователя
  * @param string $pwd   пароль пользователя
  * @param array &params             данные пользователя
  * @param boolean $is_2fa_off принудительное откулючение 2х этапной проверки
  *
  * @return integer id сессии
  *
  * @global DB $DB
  */
 public function Auth($login, $pwd, &$params, $is_2fa_off = false)
 {
     //////////////////////////////////////////////////////////
     // Ахтунг! Изменение логики нужно отражать также в новом движке.
     // Например, при добавлении новый полей в сессию, добавьте их в Web_Front::login()
     //////////////////////////////////////////////////////////
     global $DB;
     $plogin = preg_replace('/[+ ()-]/', '', $login);
     $phoneType = preg_replace("/\\D/", '', $plogin);
     if ($phoneType == $plogin) {
         $plogin = '******' . $plogin;
         $sql = "SELECT user_id FROM sbr_reqv WHERE (_1_mob_phone = ? OR _2_mob_phone = ?) AND is_activate_mob = 't'";
         $uids = $DB->rows($sql, $plogin, $plogin);
         if ($uids) {
             foreach ($uids as $u) {
                 $sql_uids .= $u['user_id'] . ',';
             }
             $sql_uids = preg_replace('/,$/', '', $sql_uids);
         }
     }
     $sql = '
       SELECT 
         u.email, u.role, u.uname, u.usurname, u.uid, u.is_banned, u.ban_where, u.active, 
         a.sum, a.bonus_sum,
         u.login, u.anti_uid, u.is_pro_test, u.is_pro_new, u.is_chuck, 
         u.sex, u.settings, u.splash_show, u.is_verify,
         u.reg_date, ac.code, u.photo, u.is_profi,
         u.birthday
       FROM users AS u
       LEFT JOIN activate_code ac ON ac.user_id = u.uid  
       LEFT JOIN account AS a ON a.uid = u.uid
       WHERE ((lower(u.login) = ? OR lower(u.email) = ?) AND u.passwd = ?) ' . ($sql_uids ? "OR ( u.uid IN ({$sql_uids}) AND u.passwd = ?)" : '');
     $res = $DB->rows($sql, strtolower($login), mb_strtolower($login), $pwd, $pwd);
     if ($res) {
         $qres = $res;
         $uvisits = array();
         $n = 0;
         foreach ($qres as $k => $v) {
             $uvisits[$this->getLastVisit($v['uid']) . '-' . $n] = $k;
             ++$n;
         }
         asort($uvisits);
         $res = $qres[array_pop($uvisits)];
     }
     $error .= $DB->error;
     $first_login = $this->getLastVisit($res['uid']);
     $ip = getRemoteIP();
     /**
      * Дополнительная проверка логина. 
      * Нужна для исправления паролей, содержащих 
      * теги (или похожие на теги последовательности).
      * 
      * !!Убрать после следующей глобальной смены паролей.
      */
     if (!$res) {
         // попробуем убрать (0018079)
         //$res = $this->FixPassword($sql, $login);
     }
     /**
      * Определяем нужна ли 2хэтапная авторизация.
      */
     if (!$is_2fa_off && count($res) && $first_login) {
         //не первый вход
         //если на 2ом этапе ввели другой аккаунт то направить
         //обратно на 2ой этап и сообщить обэтом
         if (isset($params['2fa_provider']['uid']) && $params['2fa_provider']['uid'] != $res['uid']) {
             $is_login = $params['2fa_provider']['type'] == 0;
             session::setFlashMessage($is_login ? self::TXT_AUTH_2FA_LOG_FAIL : self::TXT_AUTH_2FA_SOC_FAIL, '/auth/second/');
             return self::AUTH_STATUS_2FA;
         }
         $is_opauth = defined('IS_OPAUTH');
         if (!isset($params['2fa_provider']) || $params['2fa_provider']['type'] > 0 != $is_opauth) {
             //несовпадают типы авторизаций на 2ом этапе
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/opauth/OpauthModel.php';
             $opauthModel = new OpauthModel();
             $is_2fa = $opauthModel->getMultilevel($res['uid']);
             if (isset($is_2fa['type'])) {
                 //$is_2fa - авторизация через выбранную соцсеть
                 //0 - нужна обычная авторизация так как вход был выполнен через соцсеть
                 $params['2fa_provider'] = array('type' => !$is_opauth ? $is_2fa['type'] : 0, 'uid' => $res['uid'], 'login' => $res['login']);
                 //Сбрасываем авторизацию
                 $res = array();
                 //переходим ко 2ой стадии
                 return self::AUTH_STATUS_2FA;
             }
         }
     }
     //Более нам параметр этапов авторизации не нужен
     unset($params['2fa_provider']);
     /**
      * Успешная авторизация.
      */
     if (count($res)) {
         list($email, $trole, $tname, $tsurname, $tid, $is_banned, $ban_where, $active, $sum, $bonus_sum, $log, $anti_uid, $is_pro_test, $is_pro_new, $is_chuck, $sex, $settings, $splash_show, $is_verify, $reg_date, $activate_code, $photo, $is_profi, $birthday) = array_values($res);
         if ($activate_code != '' && $active == 't') {
             $this->checkRegDate($tid, $reg_date);
         }
         if ($is_banned) {
             return -1;
         }
         //if ($active=='f') return -2; //##0027983
         if (!$this->CheckUserAllowIP($ip, $tid)) {
             return -3;
         }
         $params['birthday'] = $birthday ? strtotime($birthday) : null;
         $params['age'] = $params['birthday'] ? intval(ElapsedYears($params['birthday'])) : null;
         require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/permissions.php';
         $params['permissions'] = permissions::getUserPermissions($tid);
         $params['email'] = $email;
         $params['role'] = $trole;
         $params['name'] = $tname;
         $params['surname'] = $tsurname;
         $params['uid'] = $tid;
         $params['user_ip'] = $ip;
         $params['ac_sum'] = zin($sum);
         $params['bn_sum'] = zin($bonus_sum);
         $params['login'] = $log;
         $params['is_pro_new'] = $is_pro_new;
         $params['pro_test'] = $is_pro_test;
         $params['is_chuck'] = $is_chuck;
         $params['is_verify'] = $is_verify;
         $params['sex'] = $sex;
         $params['reg_date'] = $reg_date;
         $params['photo'] = $photo;
         if (!is_emp($trole)) {
             $params['is_profi'] = $is_profi === 't';
         }
         if ($anti_uid) {
             $anti_class = is_emp($trole) ? 'freelancer' : 'employer';
             require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/{$anti_class}.php";
             $anti = new $anti_class();
             $anti->GetUserByUID($anti_uid);
             $params['anti_uid'] = $anti->uid;
             $params['anti_login'] = $anti->login;
             $params['anti_surname'] = $anti->usurname;
             $params['anti_name'] = $anti->uname;
         }
         if (!is_emp($params['role'])) {
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/projects_offers.php';
             if ($po_summary = projects_offers::GetFrlOffersSummary($params['uid'])) {
                 $params['po_count'] = $po_summary['total'];
             }
         }
         $sql = 'UPDATE users SET last_time = now(), last_ip = ?, is_active = true WHERE uid = ?i';
         $res = $DB->query($sql, $ip, $tid);
         $this->SaveLoginIPLog($tid, $ip);
         $this->increaseLoginsCnt($tid);
         // количество операций
         $sQuery = 'SELECT COUNT(ao.id) FROM account_operations ao 
             INNER JOIN account a ON a.id = ao.billing_id WHERE a.uid = ?i AND (ao.ammount <> 0 OR ao.trs_sum <> 0)';
         $params['account_operations'] = $DB->val($sQuery, $tid);
         $params['question_button_hide'] = $settings[1];
         // Показывать/скрывать кнопку "У вас есть вопрос?"
         $params['promo_block_hide'] = $settings[2];
         // показывать Блок "Быстрый доступ к основным функциям сайта"
         $params['direct_external_links'] = $settings[3];
         // Не показывать страницу "Переход по внешней ссылке" a.php
         $params['sbr_slash_show'] = $settings[4] && $first_login < strtotime('2012-08-08');
         // Показывать/скрыть СБР промо-слеш
         $params['splash_show'] = $splash_show;
         $params['chat'] = $settings[5];
         $params['chat_sound'] = $settings[6];
         // #0017182 > Вопрос можем ли мы вытащить эту настройку из кук пользователей и сохранить ее в базу?
         if (empty($settings[3]) && $_COOKIE['direct_external_links'] == 1) {
             $this->setDirectExternalLinks($tid, 1);
             if ($anti_uid) {
                 $this->setDirectExternalLinks($anti_uid, 1);
             }
             setcookie('direct_external_links', '', time() - 60 * 60 * 24 * 365, '/');
             setcookie('no_a_php', '1', time() + 60 * 60 * 24 * 365 * 2, '/');
         }
         //генерация куки для userecho
         require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/userecho.php';
         setcookie('ue_sso_token', UserEcho::get_sso_token(USERECHO_API_KEY, USERECHO_PROJECT_KEY, array()), 0, '/', preg_replace('/^https?\\:\\/\\/(?:www\\.)?/', '.', 'fl.ru'));
         // Первый заход, регистрация через мастер, мастер не закончен
         if ($first_login == 0) {
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/wizard/wizard.php';
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/wizard/wizard_registration.php';
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/wizard/step_employer.php';
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/wizard/step_freelancer.php';
             if (is_emp($params['role'])) {
                 $wiz_user = wizard::isUserWizard($tid, step_employer::STEP_REGISTRATION_CONFIRM, wizard_registration::REG_EMP_ID);
             } else {
                 $wiz_user = wizard::isUserWizard($tid, step_freelancer::STEP_REGISTRATION_CONFIRM, wizard_registration::REG_FRL_ID);
             }
             if ($wiz_user['id'] > 0) {
                 $role = is_emp($params['role']) ? wizard_registration::REG_EMP_ID : wizard_registration::REG_FRL_ID;
                 header('Location: /registration/activated.php?role=' . $role);
                 //header("Location: /wizard/registration/?role={$role}");
                 exit;
             } elseif (!is_emp($params['role'])) {
                 require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/payed.php';
                 $pro_last = payed::ProLast($_SESSION['login']);
                 $_SESSION['pro_last'] = $pro_last['is_freezed'] ? false : $pro_last['cnt'];
                 if ($_SESSION['pro_last'] && $_SESSION['is_pro_new'] != 't') {
                     payed::checkNewPro($id);
                 }
                 if ($pro_last['freeze_to']) {
                     $_SESSION['freeze_from'] = $pro_last['freeze_from'];
                     $_SESSION['freeze_to'] = $pro_last['freeze_to'];
                     $_SESSION['is_freezed'] = $pro_last['is_freezed'];
                     $_SESSION['payed_to'] = $pro_last['cnt'];
                 }
                 if ($_SESSION['anti_login']) {
                     $pro_last = payed::ProLast($_SESSION['anti_login']);
                     $_SESSION['anti_pro_last'] = $pro_last['freeze_to'] ? false : $pro_last['cnt'];
                 }
                 //отправляем письмо с инфой, как работать на сайте
                 /*
                 require_once($_SERVER['DOCUMENT_ROOT'] . "/classes/smail.php");
                 $mail = new smail();
                 
                 if (is_emp()) {                
                     $mail->employerQuickStartGuide(get_uid(false));
                 } else {
                    $mail->freelancerQuickStartGuide(get_uid(false));
                 }
                 */
                 return $tid;
                 if (!defined('IN_API')) {
                     // для API мобильного приложения не нужно
                     header("Location: /users/{$login}/");
                     exit;
                 }
             }
         }
         //-----------------------------------
     } else {
         $tid = 0;
         require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/annoy.php';
         $annoy = new annoy();
         $annoy->Add($ip);
     }
     return $tid;
 }
/**
 * Скрывает или отображает платные проекты.
 *
 * @see projects_filter::ShowClosedProjects()
 * @see projects_filter::initClosedProjects()
 *
 * @param string $id     id определенного или all для всех
 * @param string $type   скрыть (hide) или показать (unhide)
 * @param int $kind  тип текущей закладки главной страницы (см. new_projects::getProjects())
 * @param int $page  номер текущей страницы.
 * @param bool $filter  включен ли фильтр у юзера.
 *
 * @return object xajaxResponse
 */
function _HideProject($id, $type, $kind, $page, $filter)
{
    session_start();
    $objResponse = new xajaxResponse();
    $all = $id == 'all';
    $id = (int) $id;
    $uid = $_SESSION['uid'];
    if ($type == 'hide') {
        $prj = new new_projects();
        $content = $prj->SearchDB((int) $kind, 2, 0, $uf, true, true);
        $prjs = $prj->getProjects($num_prjs, (int) $kind, 2, true, $uf, true, true);
        $num = 0;
        $nDH = $nH;
        $_SESSION['ph'][$id] = base64_encode(projects::GetField($id, 'name'));
        $_SESSION['top_payed']--;
        $objResponse->assign("project-item{$id}", 'outerHTML', '');
        if ($filter) {
            $prj_filter = new projects_filters();
            $uf = $prj_filter->GetFilter($uid, $error);
        }
        if ($prjs[$num]) {
            $this_kind = $prjs[$num]['kind'];
            $this_uid = get_uid(false);
            $this_pro_last = $_SESSION['pro_last'];
            $this_is_pro = payed::CheckPro($_SESSION['login']);
            $this_edit_mode = hasPermissions('projects');
            if ($this_uid) {
                $this_user_role = $_SESSION['role'];
            }
            $this_project = $prjs[$num];
            $row = $this_project;
            if ($this_edit_mode || $this_project['kind'] == 2 || $this_project['user_id'] == $this_uid || $this_project['offer_id'] || $this_pro_last) {
                $this_show_data = 1;
                $row['show_data'] = 1;
            } else {
                $this_show_data = 0;
                $row['show_data'] = 0;
            }
            $descr = $row['descr'];
            $descr = preg_replace("/^ /", "", $descr);
            $descr = preg_replace("/(\n) /", "\$1", $descr);
            $descr = reformat(strip_tags(LenghtFormatEx($descr, 180), "<br />"), 50, 1, 0, 1);
            $descr = preg_replace("//", "&nbsp;", $descr);
            $row['descr'] = $descr;
            $row['t_is_payed'] = $this_project['payed'] && $this_project['kind'] != 2 && $this_project['kind'] != 7;
            $row['t_is_contest'] = $this_project['kind'] == 2 || $this_project['kind'] == 7;
            $row['t_pro_only'] = $this_project['pro_only'] == "t";
            $row['t_prefer_sbr'] = $this_project['prefer_sbr'] == "t";
            $row['priceby'] = $this_project['priceby'];
            $row['t_is_adm'] = hasPermissions('projects');
            $row['t_is_ontop'] = strtotime($this_project['top_to']) >= time();
            $row['unread'] = (int) $this_project['unread_p_msgs'] + (int) $this_project['unread_c_msgs'] + (int) $this_project['unread_c_prjs'];
            $row['t_is_proonly'] = $this_project['pro_only'] == 't' && !$_SESSION['pro_last'] && !$this_edit_mode && $this_uid != $this_project['user_id'];
            $row['friendly_url'] = getFriendlyURL('project', array('id' => $row['id'], 'name' => $row['name']));
            $attaches = projects::GetAllAttach($this_project['id']);
            $attaches = !$attaches ? array() : $attaches;
            foreach ($attaches as $k => $a) {
                $a['virus'] = is_null($a['virus']) ? $a['virus'] : bindec($a['virus']);
                $attaches[$k] = $a;
            }
            $row['attaches'] = $this_project['attaches'] = $attaches;
            $is_ajax = true;
            $can_change_prj = hasPermissions("projects");
            ob_start();
            require $_SERVER['DOCUMENT_ROOT'] . '/projects/tpl.lenta-item.php';
            $prj_html = ob_get_contents();
            ob_end_clean();
            $objResponse->script('ndiv = new Element("div", {id: "project-item' . $prjs[$num]['id'] . '", class: "b-post b-post_pad_10_15_15_20 b-post_margleft_-20 b-post_margright_-15 b-post_margbot_15 b-layout b-post_relative b-post_overflow_hidden' . ($row['is_color'] == 't' ? ' b-post_bg_fffded' : '') . '"});');
            $objResponse->script('ndiv.inject($("projects-list").getLast("div[id^=project-item]"), "after");');
            $objResponse->assign("project-item" . $prjs[$num]['id'], "innerHTML", $prj_html);
        }
    } else {
        if ($all && $_SESSION['ph']) {
            $nDH = -1 * $nH * count($_SESSION['ph']);
            unset($_SESSION['ph']);
        } else {
            $nDH = -1 * $nH;
            unset($_SESSION['ph'][$id]);
            if (!$_SESSION['ph']) {
                unset($_SESSION['ph']);
            }
        }
        if ($filter) {
            $prj_filter = new projects_filters();
            $uf = $prj_filter->GetFilter($uid, $error);
        }
        $prj = new new_projects();
        $content = $prj->SearchDB((int) $kind, (int) $page, 0, $uf, true, true);
        $objResponse->assign("projects-list", "innerHTML", $content);
    }
    if ($_SESSION['ph']) {
        $ccph = array_keys($_SESSION['ph']);
    }
    setcookie("ph[{$uid}]", $ccph ? implode(',', $ccph) : '', time() + 60 * 60 * 24 * 30, '/');
    if ($kind == 2 || $kind == 7) {
        $prjWord_1 = 'скрытый конкурс';
        $prjWord_2 = 'скрытых конкурса';
        $prjWord_5 = 'скрытых конкурсов';
    } elseif ($kind == 4) {
        $prjWord_1 = 'скрытая вакансия';
        $prjWord_2 = 'скрытых вакансии';
        $prjWord_5 = 'скрытых вакансий';
    } else {
        $prjWord_1 = 'скрытый проект';
        $prjWord_2 = 'скрытых проекта';
        $prjWord_5 = 'скрытых проектов';
    }
    $cnt = "";
    if (sizeof($_SESSION['ph']) && $_SESSION['uid']) {
        $cnt = sizeof($_SESSION['ph']) . " " . ending(sizeof($_SESSION['ph']), $prjWord_1, $prjWord_2, $prjWord_5);
    }
    $objResponse->assign("hide_project_count", "innerHTML", $cnt);
    // если до этого проекты отображались в режиме "Только название", то сворачиваем их
    $objResponse->call("rollProjects");
    return $objResponse;
}
Beispiel #4
0
        $teasers = $teasersEmp;
    } else {
        $teasers = $teasersFrl;
    }
} else {
    $teasers = $teasersEmp;
}
// для про пользователей не показвыаем рекламу ПРО аккаунта
if (is_pro()) {
    if ($_SESSION['pro_test'] === 'f') {
        // тизер ПРО показываем если куплен тестовый ПРО
        $teasersExclude[] = 'pro';
    }
    $teasersExclude[] = 'test-pro';
    $teasersExclude[] = 'offers';
} elseif (!payed::IsUserWasPro($uid)) {
    $teasersExclude[] = 'test-pro';
}
// формируем массив из прошедших фильтрацию тизеров
foreach ($teasers as $key => $teaser) {
    $ok = true;
    foreach ($teaser['exclude'] as $filter) {
        if (isset($teasersExclude) && in_array($filter, $teasersExclude)) {
            $ok = false;
            break;
        }
    }
    if ($ok) {
        $filteredTeasers[] = $teaser;
    }
}
Beispiel #5
0
<?php

require_once '../classes/stdf.php';
require_once '../classes/account.php';
require_once '../classes/session.php';
require_once '../classes/firstpage.php';
require_once '../classes/payed.php';
$payed = new payed();
$sess = new session();
/*
$users = $DB->rows("
    SELECT
        DISTINCT from_id, login
    FROM
        orders o
    INNER JOIN
        users ON o.from_id = users.uid
    WHERE
        (from_date <= '2013-10-25 00:00:00') AND (from_date + to_date >= '2013-10-24 00:00:00')
        AND NOT EXISTS ( SELECT 1 FROM orders  WHERE from_id = o.from_id AND ( (from_date <= '2013-10-18 00:00:00') AND (from_date + to_date >= '2013-10-17 00:00:00') ) )
");

echo "Execute recovery PRO accounts for " . count($users) . " users.\n";

foreach ($users as $user) {
    $transaction_id = account::start_transaction($user['from_id']);
    $payed->AdminAddPRO($user['from_id'], $transaction_id, '2 days');
    $session->UpdateProEndingDate($user['login']);
}
*/
$users = $DB->rows("\n    SELECT\n        DISTINCT from_id, login\n    FROM\n        orders o\n    INNER JOIN\n        users ON o.from_id = users.uid\n    WHERE\n        (from_date <= '2013-10-25 00:00:00') AND (from_date + to_date >= '2013-10-24 00:00:00')\n        AND EXISTS ( SELECT 1 FROM orders  WHERE from_id = o.from_id AND ( (from_date <= '2013-10-18 00:00:00') AND (from_date + to_date >= '2013-10-17 00:00:00') ) )\n");
Beispiel #6
0
    ?>
</span>
        <?php 
}
//if
?>
    </h3>
    <div class="b-layout__txt b-layout__txt_fontsize_11 b-layout__txt_padbot_20 b-layout__txt_padleft_70 b-layout__txt_padleft_null_iphone">Аккаунт PRO предоставляет своим обладателям бонусы на сайте: скидки на все платные услуги, бесплатную публикацию вакансий, возможность просматривать контакты всех пользователей и многое другое.</div>


    <div class="b-buttons b-buttons_padleft_70 b-buttons_padbot_10 b-layout__txt_padleft_null_iphone">
        <a href="javascript:void(0)" class="b-button b-button_flat b-button_flat_green btn-pay"><?php 
echo billing::$btn_name_for_type[$service['type']];
?>
</a>
    </div>
    <?php 
if (!empty($service['last_operation']['op_code'])) {
    $popup_mini_data = payed::getPayedPROList('emp');
    foreach ($popup_mini_data as $data) {
        if ($service['last_operation']['op_code'] == $data['opcode']) {
            $last_operation = array('month' => $data['month'], 'op_code' => $data['opcode'], 'sum' => $data['cost']);
            break;
        }
    }
    $popup_content = $_SERVER['DOCUMENT_ROOT'] . '/bill/widget/popups/popup.emp_pro.php';
    include $_SERVER['DOCUMENT_ROOT'] . '/bill/widget/tpl.popup.php';
}
?>
    <span class="b-layout__txt b-layout__txt_padtop_10 b-layout__txt_fontsize_11 b-page__iphone"><a href="/payed-emp/" class="b-layout__link promo-link">Подробнее об услуге</a></span>
</div>
Beispiel #7
0
if (date('i') % 15 == 0) {
    // проверка статусов платежей paymaster при возврате
    require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/pmpay.php";
    $pm = new pmpay();
    if (DEBUG) {
        $pm->setDebugUrl($GLOBALS['host'] . '/norisk2/admin/pm-server-test.php');
    }
    $pm->checkRefund();
}
if (SERVER === 'release') {
    /*
     * @todo: https://beta.free-lance.ru/mantis/view.php?id=29134#c87337
     * 
    require_once($_SERVER['DOCUMENT_ROOT'] . "/classes/qiwipay.php");
    $qiwipay = new qiwipay();
    $qiwipay->checkBillsStatus($error);
    */
    if (date('i') % 10 == 0) {
        // проверка статусов платежей paymaster
        require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/pmpay.php";
        $pm = new pmpay();
        $pm->checkInvoiced();
    }
}
// запускаетс¤ в 0 и 1 минуту каждого часа с начала суток до 5 утра
if (date('i') == 0 && date('H') >= 0 && date('H') <= 5) {
    $log = new log('minutly/' . SERVER . '-%d%m%Y[%H].log', 'w');
    // разморозка ѕ–ќ
    $log->TRACE(payed::freezeUpdateProUsers());
}
professions::autoProlongSpecs();
Beispiel #8
0
        //$page_keyw = '';
        break;
    case "projects":
    default:
        //if ($_SESSION['login'] == $name) { $inner = "setup/projects_inner.php"; $_in_setup = 1;}
        //else {$inner = "projects_inner.php";}
        $inner = "projects_inner.php";
        $activ_tab = 1;
        $page = __paramInit('page', 'page', 'page', 1);
        break;
}
if ($_SESSION['p_ref']) {
    unset($_SESSION['p_ref']);
}
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/payed.php";
$is_pro = payed::CheckPro($user->login);
$no_banner = !!$is_pro;
$action = trim(__paramInit('string', 'action', 'action'));
switch ($action) {
    case 'activated':
        $alert_message = "Аккаунт активирован";
        break;
    case "prj_close":
        $kind = __paramInit('int', null, 'kind', 0);
        $prj_id = __paramInit('int', null, 'project_id');
        $do_close = __paramInit('bool', null, 'do_close');
        $projects = new projects();
        if ($prj_id) {
            $error .= $projects->SwitchStatusPrj(get_uid(), $prj_id);
        }
        $location = "/users/{$name}/projects/?kind={$kind}" . ($do_close ? '&closed=1' : '');
Beispiel #9
0
<?php

require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/payed.php";
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/platipotom.php";
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/PromoCodes.php";
if (isset($quickPRO_type) && $quickPRO_type == 'profi') {
    $quickPRO_proList = payed::getPayedPROFIList();
} else {
    $quickPRO_proList = payed::getPayedPROList(is_emp() ? 'emp' : 'frl');
}
$promoCodes = new PromoCodes();
$quickPRO_redirect = '';
$quickpro_ok_default = 'quickpro_ok';
switch ($quickPRO_type) {
    case 'profi':
        $quickPRO_title = 'Покупка аккаунта PROFI';
        $quickPRO_ok_close_btn = 'Закрыть';
        $quickpro_ok_default = 'quickprofi_ok';
        $quickpro_ok_title = 'Вы успешно купили аккаунт PROFI';
        $quickpro_ok_subtitle = '';
        break;
    case 'project':
        $quickPRO_title = 'Покупка аккаунта Pro для ответа на проект';
        $quickPRO_ok_close_btn = 'Закрыть и ответить на проект';
        $quickPRO_redirect = getFriendlyUrl('project', $project['id']);
        break;
    case 'promotion':
        $quickPRO_redirect = '/promotion/';
    default:
        $quickPRO_title = 'Покупка аккаунта Pro';
        $quickPRO_ok_close_btn = 'Закрыть';
Beispiel #10
0
<?php

$rpath = "../";
$g_page_id = "0|5";
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/stdf.php";
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/payed.php";
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/projects.php";
session_start();
$uid = get_uid(false);
$is_pro = payed::CheckPro($_SESSION['login']);
$is_adm = false;
// чтобы админ мог редактировать предложения по проектам
if (hasPermissions('projects') && InGetPost('uid')) {
    $uid = InGetPost('uid');
    $is_pro = payed::checkProByUid($uid);
    $is_adm = true;
}
$error = false;
$err = '';
$pict_added = false;
//die ("DUMP: " . var_export($_FILES, true));
if (isset($_POST['action']) && $_POST['action'] == 'add_pic' && is_array($_FILES['ps_attach'])) {
    $prj_id = isset($_POST['pid']) ? intval($_POST['pid']) : 0;
    $img = new CFile($_FILES['ps_attach']);
    if ($img->size > 0) {
        $dir = get_login($uid);
        // чтобы админ мог редактировать предложения по проектам
        if ($is_adm) {
            require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
            $user = new users();
            $user->GetUserByUID($uid);
Beispiel #11
0
    if (!($page = __paramInit('int', 'page', NULL, NULL))) {
        $page = 1;
        $bPageDefault = true;
    }
    if ($page <= 0) {
        $page = 1;
    }
    if (!$pm_folder) {
        // пользовательские папки
        if ($cur_folder == -5) {
            $contacts = $msgs->GetContactsWithNote(get_uid(), $find);
        } else {
            $contacts = $msgs->GetContacts(get_uid(), $cur_folder, $find, $blogspp, ($page - 1) * $blogspp, $predefined_count);
        }
    } else {
        // автоматические папки для массовых рассылок личных менеджеров
        $contacts = $msgs->pmAutoFolderGetContacts(get_uid(), $pm_folder, $find);
    }
    $count = $predefined_count ? $predefined_count : sizeof($contacts);
    $pages = ceil($count / $blogspp);
    if (($count == 0 || $count < ($page - 1) * $blogspp) && !$bPageDefault || $pages == 1 && !$bPageDefault) {
        include ABS_PATH . '/404.php';
        exit;
    }
}
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/payed.php";
$is_pro = payed::CheckPro($_SESSION['login']);
$header = "../header.php";
$footer = "../footer.html";
$content = "content.php";
include "../template3.php";
Beispiel #12
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;
     }
 }
                    <li class="b-menu__item"><a href="/service/" class="b-menu__link">Услуги сайта</a>&nbsp;&rarr;&nbsp;</li>
                    <li class="b-menu__item"><a href="/payed/" class="b-menu__link">Аккаунт PRO</a>&nbsp;&rarr;&nbsp;</li>
                </ul>
                </div>                        

                <h1 class="b-page__title">Тестовый аккаунт PRO куплен</h1>

                <div class="b-fon b-fon_padbot_30">
                <div class="b-fon__body b-fon__body_pad_10 b-fon__body_padleft_30 b-fon__body_fontsize_13 b-fon__body_bg_f0ffdf">
                    <div class="b-fon__txt b-fon__txt_padbot_5"><span class="b-icon b-icon_sbr_gok b-icon_margleft_-25"></span>Вы успешно приобрели тестовый профессиональный аккаунт.</div>
                    <div class="b-fon__txt">Если у вас возникнут вопросы, обращайтесь в <a class="b-fon__link" href="https://feedback.fl.ru/">службу поддержки</a>.</div>
                </div>
                </div>                          

                <div class="b-layout__txt b-layout__txt_padbot_5">Тестовый аккаунт PRO на <span class="b-layout__txt b-layout__txt_bold">1 неделю</span> стоил <span class="b-layout__txt b-layout__txt_bold b-layout__txt_color_fd6c30"><?php 
echo $price = payed::GetProPrice(false, payed::get_opcode_action_test_pro());
?>
 <?php 
echo ending($price, 'рубль', 'рубля', 'рублей');
?>
</span></div>


                <?php 
include $abs_path . '/teasers/include-teaser.php';
?>

            </td>							
        </tr>
    </table>
</div>
Beispiel #14
0
/**
 *  Проверяем не кончился ли уже про и не надо ли убрать значек с главной страницы. 
 */
function checkProLast()
{
    if ($_SESSION['pro_last'] && strtotime($_SESSION['pro_last']) < time()) {
        require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/payed.php";
        $pro_last = payed::ProLast($_SESSION['login']);
        $_SESSION['pro_last'] = $pro_last['is_freezed'] ? false : $pro_last['cnt'];
    }
}
Beispiel #15
0
        <div class="b-layout__txt b-layout__txt_padbot_40">и отвечайте на проекты, конкурсы и вакансии без ограничений</div>
        <div class="b-layout__txt b-layout__txt_fontsize_22">Заполните <a href="/users/<?php 
    echo $_SESSION['login'];
    ?>
/setup/info/" class="b-layout__link">профиль</a>,</div>
        <div class="b-layout__txt b-layout__txt_padbot_40">чтобы работодатели смогли найти вас в каталоге фрилансеров</div>
        <div class="b-layout__txt b-layout__txt_fontsize_22">Подтвердите свою   <a href="/promo/verification/" class="b-layout__link">личность</a>,</div>
        <div class="b-layout__txt b-layout__txt_padbot_40">чтобы вам доверяли Заказчики</div>
        <?php 
} else {
    ?>
        <div class="b-layout__txt b-layout__txt_fontsize_22">Приобретите  <a href="/payed/" class="b-layout__link">аккаунт</a> <a href="/payed/" class="b-layout__link"><span title="PRO" class="b-icon b-icon__spro b-icon__spro_f"></span></a> за <span class="b-layout__txt_through b-layout__txt_color_d7d7d7"><?php 
    echo payed::getPriceByOpCode(48);
    ?>
</span> <?php 
    echo payed::getPriceByOpCode(163);
    ?>
 рублей</div>
        <div class="b-layout__txt b-layout__txt_padbot_40">и отвечайте на проекты, конкурсы и вакансии без ограничений</div>
        <div class="b-layout__txt b-layout__txt_fontsize_22">Заполните <a href="/users/<?php 
    echo $_SESSION['login'];
    ?>
/setup/info/" class="b-layout__link">профиль</a>,</div>
        <div class="b-layout__txt b-layout__txt_padbot_40">чтобы работодатели смогли найти вас в каталоге фрилансеров</div>
        <div class="b-layout__txt b-layout__txt_fontsize_22 b-layout__txt_padbot_40">Найдите интересные <a href="/projects/?kind=1" class="b-layout__link">проекты</a>, <a href="/konkurs/" class="b-layout__link">конкурсы</a> и <a href="/projects/?kind=4" class="b-layout__link">вакансии</a></div>
        <div class="b-layout__txt b-layout__txt_fontsize_22">Подтвердите свою   <a href="/promo/verification/" class="b-layout__link">личность</a>,</div>
        <div class="b-layout__txt b-layout__txt_padbot_40">чтобы вам доверяли Заказчики</div>
        <?php 
}
?>
    </div>
Beispiel #16
0
@($action = strip_tags(trim($_GET['action'])));
if (!$action) {
    @($action = strip_tags(trim($_POST['action'])));
}
// определяем, был ли сброс массива POST
if (!$action && ($switch || $change_au)) {
    $action = "switch_error";
}
switch ($action) {
    case "change_au":
        // добавляем/изменяем антиюзера.
        $response = array();
        $location = $_SESSION['ref_uri'] ? HTTP_PFX . $_SERVER["HTTP_HOST"] . urldecode($_SESSION['ref_uri']) : HTTP_PFX . $_SERVER["HTTP_HOST"] . "/";
        $_SESSION['pro_last'] = payed::ProLast($_SESSION['login']);
        $_SESSION['pro_last'] = $_SESSION['pro_last']['is_freezed'] ? false : $_SESSION['pro_last']['cnt'];
        $_SESSION['anti_pro_last'] = payed::ProLast($_SESSION['anti_login']);
        $_SESSION['anti_pro_last'] = $_SESSION['anti_pro_last']['is_freezed'] ? false : $_SESSION['anti_pro_last']['cnt'];
        if (!($uid = get_uid())) {
            header("Location: " . $location);
            exit;
        }
        $post_pwd = stripslashes($_POST['passwd']);
        $anti_login = __paramInit('string', NULL, 'a_login');
        // получаем класс антиюзера. Он всегда противоположен классу юзера.
        $anti_class = is_emp() ? 'freelancer' : 'employer';
        $anti = new $anti_class();
        // запоминаем данные антиюзера.
        $anti->GetUser($anti_login, true, true);
        $anti_uid = $anti->uid;
        $anti_uname = $anti->uname;
        $anti_usurname = $anti->usurname;
Beispiel #17
0
 /**
  * ВРЕМЕННАЯ
  * 
  * Акция Альфа-банк: первые 50 юзеров пополнившие на 1000 и более рублей счет, получают ПРО в подарок
  * 
  * @param float $nSummR
  * @param integer $sUid
  */
 function alphaBankGift($nSummR = 0, $sDate = '', $sUid = 0, $sLogin = '')
 {
     global $DB;
     if ($nSummR >= 1000 && $sDate < date('c', strtotime('2011-06-06'))) {
         // если сумма больше 1000
         /*
                 	$nCount = $DB->val('SELECT COUNT(DISTINCT u.uid) FROM users u 
                         LEFT JOIN account a ON u.uid = a.uid 
                         LEFT JOIN account_operations o ON a.id = o.billing_id 
                         WHERE o.op_code = 89 AND o.trs_sum >= 1000');
                 	
                 	if ( $nCount < 50 ) { // если юзер из числа первых 50
         $nCount = $DB->val('SELECT COUNT(o.billing_id) FROM users u 
                             LEFT JOIN account a ON u.uid = a.uid 
                             LEFT JOIN account_operations o ON a.id = o.billing_id 
                             WHERE u.uid = ?i AND o.op_code = 89 AND o.trs_sum >= 1000', $sUid );
         
         if ( $nCount == 1 ) { // если юзер еще не получал этот бонус (первое пополнение на 1000+)
         */
         require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/payed.php';
         $payed = new payed();
         $bill_id = $gift_id = 0;
         $tr_id = $this->start_transaction(103);
         $payed->GiftOrderedTarif($bill_id, $gift_id, $sUid, 103, $tr_id, '1', '', 90);
         // уведомление о подарке
         require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/smail.php';
         $sm = new smail();
         $sm->NewGift('admin', $sLogin, '', $gift_id);
         /*
             }
         }
         */
     }
 }
Beispiel #18
0
 /**
  * Инициализация проекта 
  * для пользователя в параметрах
  * 
  * @param user $user
  * @return array
  */
 public function initForUser($user)
 {
     if (!isset($user->uid) || !$user->uid) {
         return $this->destroy();
     }
     $this->_uid = $user->uid;
     $this->_project['login'] = $user->login;
     $this->_project['uname'] = $user->uname;
     $this->_project['usurname'] = $user->usurname;
     $this->_project['user_id'] = $this->_uid;
     $this->_setPath();
     $this->_project['is_pro'] = payed::checkProByUid($this->_uid) ? 't' : 'f';
     return $this->getProject();
 }
Beispiel #19
0
 /**
  * Обработка и оплата операций
  * 
  * @global type $DB
  * @param type $option
  * @return boolean 
  */
 function billingOperation($option, $transaction_id)
 {
     global $DB;
     $ok = false;
     $account = new account();
     switch ($option['op_code']) {
         // Аккаунт ПРО у фрилансера
         case 48:
         case 49:
         case 50:
         case 51:
         case 76:
             // Удаляем операции по покупке ответов - публикуем ответы
             $prof = new payed();
             $ok = $prof->SetOrderedTarif($this->uid, $transaction_id, 1, "Аккаунт PRO", $option['op_code'], $error);
             if ($ok) {
                 $_SESSION['pro_last'] = payed::ProLast($_SESSION['login']);
                 $_SESSION['pro_last'] = $_SESSION['pro_last']['freeze_to'] ? false : $_SESSION['pro_last']['cnt'];
                 $userdata = new users();
                 $_SESSION['pro_test'] = $userdata->GetField($this->uid, $error2, 'is_pro_test', false);
                 $this->clearBlockedOperations(step_freelancer::OFFERS_OP_CODE);
                 $step_frl = new step_freelancer();
                 $offers = $step_frl->getWizardOffers($this->uid, 'all', false);
                 if ($offers) {
                     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/users.php";
                     $step_frl->log = $this->log;
                     $step_frl->user = new users();
                     $step_frl->user->GetUserByUID($this->uid);
                     $step_frl->transferOffers($offers);
                 }
                 $this->showProjectsFeedbacks();
             }
             break;
             // Аккаунт ПРО у работодателя
         // Аккаунт ПРО у работодателя
         case 15:
             $prof = new payed();
             $ok = $prof->SetOrderedTarif($this->uid, $transaction_id, 1, "Аккаунт PRO", $option['op_code'], $error);
             if ($ok) {
                 $_SESSION['pro_last'] = payed::ProLast($_SESSION['login']);
                 $_SESSION['pro_last'] = $_SESSION['pro_last']['freeze_to'] ? false : $_SESSION['pro_last']['cnt'];
                 $userdata = new users();
                 $_SESSION['pro_test'] = $userdata->GetField($this->uid, $error2, 'is_pro_test', false);
             }
             // Обновляем выбор цвета для проектов тк он для ПРО бесплатный
             $colorProjects = $this->updateColorProject();
             $prj = new new_projects();
             foreach ($colorProjects as $k => $project) {
                 $delete_color[] = $project['op_id'];
                 if ($project['country'] == null) {
                     $project['country'] = 'null';
                 }
                 if ($project['city'] == null) {
                     $project['city'] = 'null';
                 }
                 $project['name'] = addslashes($project['name']);
                 $project['descr'] = addslashes($project['descr']);
                 if ($project['logo_id'] <= 0) {
                     $project['logo_id'] = 'null';
                 }
                 $project['payed_items'] = $project['payed_items'] | '010';
                 $project['is_color'] = 't';
                 $prj->editPrj($project, false);
             }
             // Удаляем данные операции
             if ($delete_color) {
                 $this->deleteDraftAccountOperation($delete_color);
             }
             break;
             // Публикация конкурса
         // Публикация конкурса
         case new_projects::OPCODE_KON:
         case new_projects::OPCODE_KON_NOPRO:
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/wizard/step_wizard_registration.php';
             $drafts = new drafts();
             $draft = $drafts->getDraft($option['parent_id'], $this->uid, 1);
             // Если еще не опубликован
             if (!$draft['prj_id']) {
                 $project_id = $draft['id'];
                 $error = $account->Buy($bill_id, $transaction_id, $option['op_code'], $this->uid, $option['descr'], $option['comment'], 1, 0);
                 $ok = $bill_id > 0;
                 if ($bill_id) {
                     $color = $DB->val("SELECT id FROM draft_account_operations WHERE parent_id = ? AND op_type = 'contest' AND option = 'color' AND uid = ?", $project_id, wizard::getUserIDReg());
                     $draft['billing_id'] = $bill_id;
                     $draft['folder_id'] = 'null';
                     $draft['payed'] = '0';
                     $draft['payed_items'] = '000';
                     if (is_pro() && $color > 0) {
                         $draft['is_color'] = 't';
                     } else {
                         $draft['is_color'] = 'f';
                     }
                     $draft['win_date'] = date('d-m-Y', strtotime($draft['win_date']));
                     $draft['end_date'] = date('d-m-Y', strtotime($draft['end_date']));
                     $draft['is_bold'] = 'f';
                     $draft['user_id'] = $this->uid;
                     if ($draft['country'] == null) {
                         $draft['country'] = 'null';
                     }
                     if ($draft['city'] == null) {
                         $draft['city'] = 'null';
                     }
                     $draft['name'] = addslashes($draft['name']);
                     $draft['descr'] = addslashes($draft['descr']);
                     if ($draft['logo_id'] <= 0) {
                         $draft['logo_id'] = 'null';
                     }
                     $prj = new new_projects();
                     $attachedfiles_tmpdraft_files = drafts::getAttachedFiles($option['parent_id'], 4);
                     if ($attachedfiles_tmpdraft_files) {
                         $attachedfiles_tmpdraft_files = array_map(create_function('$a', 'return array("id" => $a);'), $attachedfiles_tmpdraft_files);
                     }
                     if ($attachedfiles_tmpdraft_files) {
                         $month = date('Ym');
                         $dir = 'projects/upload/' . $month . '/';
                         $files = step_wizard_registration::transferFiles($attachedfiles_tmpdraft_files, 'file_projects', $dir);
                     }
                     $spec = $draft["categories"];
                     $spec = explode("|", $spec);
                     $spec = array(array('category_id' => $spec[0], 'subcategory_id' => $spec[1]));
                     $prj->addPrj($draft, $files);
                     $prj->saveSpecs($draft["id"], $spec);
                     // смотрим были ли выбраны платные опции для опубликованного конкурса
                     if ($draft['id'] != $project_id && $draft['id'] > 0) {
                         if ($this->sleep[$project_id]) {
                             foreach ($this->sleep[$project_id] as $k => $opt) {
                                 $opt['parent_id'] = $draft['id'];
                                 $this->billingOperation($opt);
                             }
                         } else {
                             //Обновляем родителя на всякий случай
                             $update = array("parent_id" => $draft['id']);
                             $DB->update("draft_account_operations", $update, "parent_id = ? AND op_type = 'contest' AND uid = ?", $project_id, wizard::getUserIDReg());
                             $this->sleep_parent[$project_id] = $draft['id'];
                         }
                         $DB->update("draft_projects", array('prj_id' => $draft['id']), "id = ? AND uid = ?", $project_id, wizard::getUserIDReg());
                     }
                 }
             }
             break;
             // Платный проект/конкурс
         // Платный проект/конкурс
         case 53:
             $prj = new new_projects();
             if ($this->sleep_parent[$option['parent_id']]) {
                 $option['parent_id'] = $this->sleep_parent[$option['parent_id']];
             }
             $project = $prj->getProject($option['parent_id']);
             if (!$project['id']) {
                 $this->sleep[$option['parent_id']][$option['id']] = $option;
                 return true;
             } else {
                 unset($this->sleep[$option['parent_id']]);
             }
             if ($project['country'] == null) {
                 $project['country'] = 'null';
             }
             if ($project['city'] == null) {
                 $project['city'] = 'null';
             }
             $project['name'] = addslashes($project['name']);
             $project['descr'] = addslashes($project['descr']);
             if ($project['logo_id'] <= 0) {
                 $project['logo_id'] = 'null';
             }
             $project['folder_id'] = 'null';
             $items = array();
             switch ($option['option']) {
                 case 'top':
                     $project['top_days'] = $option['op_count'];
                     break;
                 case 'color':
                     $is_pay = $project['payed_items'] & '010';
                     if ($is_pay != '010') {
                         $project['payed_items'] = $project['payed_items'] | '010';
                         $project['is_color'] = 't';
                         $items['color'] = true;
                         if (is_pro()) {
                             $is_payed = true;
                             $prj->SavePayedInfo($items, $project['id'], null, $project['top_days']);
                             $prj->editPrj($project, false);
                         }
                     } else {
                         $is_payed = true;
                     }
                     break;
                 case 'bold':
                     $is_pay = $project['payed_items'] & '001';
                     if ($is_pay != '001') {
                         $project['payed_items'] = $project['payed_items'] | '001';
                         $project['is_bold'] = 't';
                         $items['bold'] = true;
                     } else {
                         $is_payed = true;
                     }
                     break;
                 case 'logo':
                     $is_pay = $project['payed_items'] & '100';
                     if ($is_pay != '100') {
                         $key = md5(microtime());
                         $prj = new tmp_project($key);
                         $prj->init(1);
                         $fu = new CFile($option['src_id']);
                         $ext = $fu->getext();
                         $tmp_dir = $prj->getDstAbsDir();
                         $tmp_name = $fu->secure_tmpname($tmp_dir, '.' . $ext);
                         $tmp_name = substr_replace($tmp_name, "", 0, strlen($tmp_dir));
                         $fu->table = 'file_projects';
                         $r = $fu->_remoteCopy($tmp_dir . $tmp_name);
                         $project['payed_items'] = $project['payed_items'] | '100';
                         $project['logo_id'] = $fu->id;
                         $items['logo'] = true;
                         if ($option['extra']) {
                             $project['link'] = $option['extra'];
                         }
                     } else {
                         $is_payed = true;
                     }
                     break;
             }
             if (!$is_payed) {
                 $error = $account->Buy($bill_id, $transaction_id, $option['op_code'], $this->uid, $option['descr'], $option['comment'], $option['ammount'], 0);
                 $ok = $bill_id > 0;
                 $project['billing_id'] = $bill_id;
                 $prj->SavePayedInfo($items, $project['id'], $bill_id, $project['top_days']);
                 $prj->editPrj($project, false);
             } else {
                 $ok = true;
             }
             break;
             // Платные ответы на проекты
         // Платные ответы на проекты
         case 61:
             $answers = new projects_offers_answers();
             $error = $answers->BuyByFM($this->uid, $option['op_count'], $transaction_id, 0);
             if (!$error) {
                 $ok = true;
                 $_SESSION['answers_ammount'] = $option['op_count'];
                 // Публикуем ответы
                 $step_frl = new step_freelancer();
                 $offers = $step_frl->getWizardOffers($this->uid, $option['op_count']);
                 if ($offers) {
                     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/users.php";
                     $step_frl->log = $this->log;
                     $step_frl->user = new users();
                     $step_frl->user->GetUserByUID($this->uid);
                     $step_frl->transferOffers($offers);
                 }
             }
             break;
     }
     return $ok;
 }
Beispiel #20
0
            $next_months[$i]['by_e'] = $next30_sum['by_e'] + ceil($to_eom_sum['by_e'] * ($K_ym - 1)) + ($MSIZES[$i - 1] - 30) * ceil($next30_sum['by_e'] / 30);
            $next_months[$i]['by_f'] = $next30_sum['by_f'] + ceil($to_eom_sum['by_f'] * ($K_ym - 1)) + ($MSIZES[$i - 1] - 30) * ceil($next30_sum['by_f'] / 30);
            $next_months[$i]['by_u'] = $next30_sum['by_u'] + ceil($to_eom_sum['by_u'] * ($K_ym - 1)) + ($MSIZES[$i - 1] - 30) * ceil($next30_sum['by_u'] / 30);
        } else {
            $next_months[$i]['by_e'] = ceil($next_months[$i - 1]['by_e'] ? $next_months[$i - 1]['by_e'] * $K_ym : $next30_sum['by_e']);
            $next_months[$i]['by_f'] = ceil($next_months[$i - 1]['by_f'] ? $next_months[$i - 1]['by_f'] * $K_ym : $next30_sum['by_f']);
            $next_months[$i]['by_u'] = ceil($next_months[$i - 1]['by_u'] ? $next_months[$i - 1]['by_u'] * $K_ym : $next30_sum['by_u']);
        }
        if (($mc = ($next_months[$i]['by_e'] + $next_months[$i]['by_f'] + $next_months[$i]['by_u']) / $MSIZES[$i - 1]) > $cur_year_max_h) {
            $cur_year_max_h = $mc;
        }
    }
}
// if(!$u_has_prm) ///////////////////////////////////////////////////////////////////////////////////
$PS_STEP_PRICE = 150;
$pro_price = payed::GetProPrice(true);
$bmCls = getBookmarksStyles(promotion::BM_COUNT, $bm);
// Классы закладок.
//////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////output///////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////
?>
      
Beispiel #21
0
    where from_id = ?i AND from_date + to_date > now()";

    $DB->query($sql, $uid, $uid);
} */
?>

<p>
Чтобы имитировать окончание ПРО используйте такую ссылку beta.free-lance.ru/test/test-payed.php?login=login&attempt=1<br/>
<pre>
login   - Логин пользователя которому необходимо автопродление
attempt - Попытка автопродления (1 или 2)
</pre>

</p><?php 
if ($_GET['login']) {
    payed::checkAutoProTest($_GET['login'], intval($_GET['attempt']));
}
?>
<hr>
<p>
Чтобы получить уведомление за <b>days</b> дней до окончания услуги beta.free-lance.ru/test/test-payed.php?user=login&service=pro&auto=1<br/>
<pre>
user    - Логин пользователя которому необходимо автопродление
service - По какому сервису уведомление (pro, firstpage) (если не задано по умолчанию pro)
auto    - если установлено в 1 значит автопродление включено, иначе 0 - выключено  (если не задано по умолчанию 0)
days    - Дополнительный праметр дней, может принимать значение 1 или 3 (если не задано, по умолчанию 3)
P.S: не может быть одновременно days = 1 и auto = 1
</pre>

<form method="GET">
    <select name="service">
Beispiel #22
0
}
$_in_setup = 1;
$fpath = '';
$inner = '';
if ($page != 'main') {
    $user_phone_block = user_phone::getInstance()->render(user_phone::PLACE_HEADER);
}
// Сообщение сверху страницы
$alert_message = '';
if (is_emp($role)) {
    $fpath = "../employer/setup/";
    include $fpath . "index.php";
    exit;
}
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/payed.php";
$is_pro = payed::CheckPro($login);
$no_banner = !!$is_pro;
$action = trim($_POST['action']);
if (strtolower($user) == strtolower($login) && is_pro(true)) {
    $no_adv = true;
} else {
    $no_adv = false;
}
switch ($page) {
    case "info":
        $inner = "inform_inner.php";
        $activ_tab = 3;
        break;
    case "mailer":
        $inner = "mailer_inner.php";
        $activ_tab = 0;
Beispiel #23
0
$showMainDiv = true;
$footer_payed = true;
$no_banner = true;
$freelancer = new freelancer();
$is_allow = isAllowProfi();
if ($is_allow) {
    require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/account.php";
    require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/payed.php";
    $uid = get_uid();
    $account = new account();
    $account->GetInfo($uid, true);
    if (__paramInit('bool', 'quickprofi_ok', NULL, false)) {
        //Обновляем сессию
        $freelancer->GetUserByUID($uid);
        $_SESSION['is_profi'] = $freelancer->isProfi();
        $pro_last = payed::ProLast($_SESSION['login']);
        $_SESSION['pro_last'] = $pro_last['is_freezed'] ? false : $pro_last['cnt'];
    }
}
$catalogList = $freelancer->getProfiCatalog(80);
$maxFirstCLBlock = 90;
$cntCatalogList = count($catalogList);
$isMoreCatalogList = $cntCatalogList > $maxFirstCLBlock;
$cntFirstCLBlock = $isMoreCatalogList ? $maxFirstCLBlock : $cntCatalogList;
$page_title = "PROFI аккаунт - фриланс, удаленная работа на FL.ru";
$css_file = array('/css/block/b-icon/__cont/b-icon__cont.css');
$js_file = array('payed.js', 'billing.js');
$content = 'content.php';
$header = "../header.php";
$footer = "../footer.html";
include "../template3.php";
Beispiel #24
0
            </div>
        <?php 
}
?>
    </h1>

    <?php 
include_once "tpl.setting.pro.php";
?>

    <table class="b-layout__table b-layout__table_center b-layout__table_margbot_60">
        <tr class="b-layout__tr">
            <td class="b-layout__td">
                <table class="b-layout__table b-layout__table_width_full">
                        <?php 
foreach (payed::getPayedPROList() as $pay) {
    if ($pay['is_test'] && $is_user_was_pro) {
        continue;
    }
    if (get_uid(false)) {
        $dcost = $pay['cost'] - round($account->sum, 2);
    }
    ?>
                        <td class="b-layout__td b-layout__td_width_200 b-layout__td_padright_70" id="pro_payed_<?php 
    echo $pay['opcode'];
    ?>
">
                            <form action="/payed/buy.php" method="post" id="post">
                            <input type="hidden" name="mnth" value="1" />
                            <?php 
    /* <input type="hidden" name="transaction_id" value="<?= get_uid(false) ? $account->start_transaction($uid, $tr_id) : 0;?>" /> */
Beispiel #25
0
require_once $_SERVER["DOCUMENT_ROOT"] . '/classes/stdf.php';
require_once $_SERVER["DOCUMENT_ROOT"] . '/classes/account.php';
require_once $_SERVER["DOCUMENT_ROOT"] . '/classes/payed.php';
require_once $_SERVER["DOCUMENT_ROOT"] . '/classes/users.php';
DB::setStandby('master', NULL);
$uid = __paramInit("int", "uid", null, 0);
$uid = intval($uid);
$admin = 103;
if ($uid > 0) {
    global $DB;
    //Есть ли такой незабаненый не про, заходивший в проследний раз более года назад?
    $targetUser = users::userWasInOldYear($uid);
    if (is_array($targetUser)) {
        //Даем про на неделю
        $account = new account();
        $payed = new payed();
        $op_code = 115;
        // 52
        $tr_id = $account->start_transaction($admin);
        $interval = "7 days";
        if ($targetUser["role"][0] == 1) {
            $interval = "1 month";
        }
        $success = $payed->GiftOrderedTarif($bill_id, $gift_id, $uid, $admin, $tr_id, $interval, "Аккаунт PRO в подарок", $op_code);
        if (!$success) {
            $rpath = "./";
            if (!$fpath) {
                $fpath = "";
            }
            $header = ABS_PATH . "/header.new.php";
            $footer = ABS_PATH . "/footer.new.html";
Beispiel #26
0
<?php

require_once '../classes/stdf.php';
require_once '../classes/account.php';
require_once '../classes/session.php';
require_once '../classes/payed.php';
$users = $DB->rows("\n                SELECT uid, login, EXTRACT(epoch FROM to_date)/86400 as days \n                FROM orders \n                INNER JOIN employer e ON e.uid = orders.from_id\n                WHERE tarif = 76;\n                ");
echo "Execute recovery PRO accounts for " . count($users) . " users.\n";
$payed = new payed();
$sess = new session();
foreach ($users as $user) {
    $transaction_id = account::start_transaction($user['uid']);
    $payed->AdminAddPRO($user['uid'], $transaction_id, $user['days'] / 7 * 17 . ' days');
    $session->UpdateProEndingDate($user['login']);
}
Beispiel #27
0
    $log->TRACE($e->getMessage());
}
// Чистим сессии загруженны, но не использованных файлов
$log->TRACE(attachedfiles::clearOldSessions());
//------------------------------------------------------------------------------
// Рассылка ПРО о том что ПРО закончится через день
// Вызываем для тех у кого включена опция и для тех у кого нет
// но сообщение в итоге шлем всем одинаковое см getPROEnding
// так как пока автопродление неиспользуется
$log->TRACE(payed::getPROEnding(true, 3));
// За 3 дня для тех у кого включено автопродление
$log->TRACE(payed::getPROEnding(true, 1));
// За 1 день для тех у кого включено автопродление
$log->TRACE(payed::getPROEnding(false, 3));
// За 3 дня для тех у кого не включено автопродление
$log->TRACE(payed::getPROEnding(false, 1));
// За 1 день для тех у кого не включено автопродление
//@todo: пока отключаем уведомления об автопродлении ПРО так как отключили автопродление
//@todo: тут еще и пытается продлить
//$log->TRACE( payed::checkAutoPRO());
// рассылаем email для тех у кого включено автопродление PRO и он закончится через 1 день
// @todo: пока автопродление не используется
// @todo: кстати непонятно зачем отдельный метод если getPROEnding справяется с этой задачей?
//$log->TRACE( payed::AlertPROEnding() );
//------------------------------------------------------------------------------
// Функция автоподьема проектов если в них в течении 2х дней не было ни одного ответа
$log->TRACE(projects::autoSetTopProject());
// Раз в час пересчитываем счетчики сообществ (пересчитываем только сообщество "Общение")
$log->TRACE(commune::recalcThemesCountCommunes(commune::COMMUNE_BLOGS_ID));
if (date('H') == 1) {
    $log->TRACE($mail->SendWarnings());
Beispiel #28
0
 public function __construct($is_emp = false, $options = null)
 {
     $this->is_emp = $is_emp;
     $this->list = payed::getPayedPROList($this->is_emp ? 'emp' : 'frl');
     parent::__construct($options);
 }
<?php

$login = '******';
error_reporting(E_ERROR);
require_once realpath(dirname(__FILE__) . '/../') . '/classes/stdf.php';
require_once realpath(dirname(__FILE__) . '/../') . '/classes/account.php';
require_once realpath(dirname(__FILE__) . '/../') . '/classes/session.php';
require_once realpath(dirname(__FILE__) . '/../') . '/classes/payed.php';
require_once realpath(dirname(__FILE__) . '/../') . '/classes/users.php';
$ses = new session();
$user = $DB->row("\n                SELECT uid, login\n                FROM users\n                WHERE login='******';\n                ");
$payed = new payed();
$sess = new session();
$transaction_id = account::start_transaction($user['uid']);
$payed->AdminAddPRO($user['uid'], $transaction_id, '2 days');
$sess->UpdateProEndingDate($user['login']);
echo date('H:m:s') . " - {$login}\n\n";
Beispiel #30
0
    </div>
    <h1 class="b-page__title">Оплата заказа на сумму <span class="b-layout__txt b-layout__txt_color_fd6c30 b-layout__txt_fontsize_34"><?php 
echo to_money($payed_sum > 10 ? $payed_sum : 10, 2);
?>
 руб.</span></h1>
    <div class="b-layout__one b-layout__one_width_25ps b-layout__one_padbot_30 b-layout__right_float_right b-layout__one_width_full_ipad b-layout_padbot_10_ipad">
       <?php 
include $_SERVER['DOCUMENT_ROOT'] . '/bill/widget/tpl.score.php';
?>
    </div>


    
    <div class="b-layout__one b-layout__one_float_left b-layout__one_width_72ps b-layout__one_width_full_ipad">
        <?php 
$pro_payed = payed::getPayedPROList(is_emp($bill->user['role']) ? 'emp' : 'frl');
foreach ($pro_payed as $p) {
    $pro_type[$p['opcode']] = $p;
}
foreach ($bill->list_service as $service) {
    include $_SERVER['DOCUMENT_ROOT'] . '/bill/payment/services/' . billing::getTemplateByService($service['service']);
}
$payment_sum = $bill->payed_sum['pay'];
//@todo везде поменять надо будет
?>

        <h2 class="b-layout__title b-layout__title_padtop_30">Способ платежа</h2>
        <div class="b-layout__txt b-layout__txt_fontsize_15 b-layout__txt_bold b-layout__txt_padbot_20">
            <?php 
if ($bill->type_menu_block == 'psys') {
    ?>