示例#1
0
 /**
  * показывает сплэшскрин, предварительно сделав проверку: нужно ли его показывать
  * @param type $type код сплэша
  * @param type $debug - принудительно показать сплэш, даже если не прошел проверку
  * @param type $setViewed если true - отметить как просмотренный
  * @return boolean
  */
 function show($type, $debug = false, $setViewed = true)
 {
     $need_show = false;
     if (self::SPLASH_EMPLOYER & $type || self::SPLASH_FREELANCER & $type) {
         $need_show = self::checkEmpFrlSplashShow($type);
     }
     if (self::SPLASH_MESSAGES & $type) {
         $need_show = self::checkContactsSplashShow();
     }
     if (self::SPLASH_MONEY & $type) {
         $need_show = !self::isViewed($type);
     }
     if (self::SPLASH_PROEMP_NOTPROFRL & $type || self::SPLASH_NOTPROEMP_NOTPROFRL & $type) {
         $need_show = true;
     }
     if (self::SPLASH_REAL_NAMES & $type && !self::isViewed($type) || $debug) {
         require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/attachedfiles.php";
         require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/users.php";
         require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/rating.php";
         $attachedFiles = new attachedfiles();
         $user = new users();
         $user->GetUserByUID(get_uid(0));
         $userpicSrc = $user->photo ? WDCPREFIX . '/users/' . $user->login . '/foto/' . $user->photo : WDCPREFIX . '/images/no_foto.png';
         $rating = new rating($user->uid, $user->is_pro, $user->is_verify, $user->is_profi);
         $r_data = $rating->data;
         $need_show = true;
     }
     if (self::SPLASH_NO_SPEC & $type && !self::isViewed($type) || $debug) {
         require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/freelancer.php";
         $frl = new freelancer();
         $frl->GetUserByUID(get_uid(0));
         if (!$frl->spec) {
             $need_show = true;
         }
     }
     // Проверяем не показывали уже этот тип
     if ($need_show || $debug || self::SPLASH_KONKURS == $type) {
         $tpl_splash = $_SERVER['DOCUMENT_ROOT'] . self::SPLASH_DIR . self::getTemplateSplash($type);
         if ($tpl_splash != '') {
             include $tpl_splash;
             if ($debug) {
                 return true;
             }
             // Отмечаем как просмотренный
             if ($type != self::SPLASH_MESSAGES && $setViewed) {
                 self::setViewed($type);
             }
             return true;
         }
     }
 }
示例#2
0
 public function process_event(&$event)
 {
     $this->force_connect();
     switch ($event->type) {
         case 'newsletter_freelancer':
             $uid = (int) $event->data['uid'];
             //$op  = $event->data['op'];
             $ms = new MemStorage('newsletter_freelancer');
             if ($ms->isExistData()) {
                 $item = freelancer::GetPrjRecp($uid);
                 $page_id = $ms->isExistItem($uid);
                 $this->log->notice('getDebugInfo: ' . $ms->getDebugInfo());
                 $this->log->notice('BEFORE: ' . print_r($ms->getItem($uid), true));
                 if ($item) {
                     if ($page_id === false) {
                         //insert
                         $ms->insertItem($uid, $item);
                         $this->log->notice("insertItem {$uid}");
                     } else {
                         //update
                         $ms->updateItem($uid, $item, $page_id);
                         $this->log->notice("updateItem {$uid}");
                     }
                 } elseif ($page_id) {
                     //delete
                     $ms->deleteItem($uid, $page_id);
                     $this->log->notice("deleteItem {$uid}");
                 }
                 $this->log->notice('AFTER: ' . print_r($ms->getItem($uid), true));
             }
             break;
     }
     return PGQ_EVENT_OK;
 }
示例#3
0
function SaveStatus($text, $statusType, $login = NULL)
{
    session_start();
    $freelancer = new freelancer();
    $text = addslashes(substr(stripslashes(trim($text)), 0, 200));
    close_tags($text, 's');
    $freelancer->status_text = antispam(htmlspecialchars(htmlspecialchars_decode(change_q_x(trim($text), true, false), ENT_QUOTES), ENT_QUOTES));
    $freelancer->status_type = intval($statusType);
    if ($freelancer->statusToStr($statusType)) {
        $stdStatus = "";
        $objResponse = new xajaxResponse();
        $uid = hasPermissions('users') && $login != $_SESSION['login'] ? $freelancer->GetUid($err, $login) : get_uid(false);
        $pro = hasPermissions('users') && $login != $_SESSION['login'] ? is_pro(true, $uid) : is_pro();
        $error = $freelancer->Update($uid, $res);
        if (!$freelancer->status_text) {
            $freelancer->status_text = $stdStatus;
        }
        $freelancer->status_text = stripslashes($freelancer->status_text);
        switch ($freelancer->status_type) {
            case 1:
                $status_cls = 'b-status b-status_busy';
                break;
            case 2:
                $status_cls = 'b-status b-status_abs';
                break;
            case -1:
                $status_cls = 'b-status b-status_no';
                break;
            default:
                $status_cls = 'b-status b-status_free';
        }
        if (!$noassign) {
            require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/stop_words.php';
            $stop_words = new stop_words(hasPermissions('users'));
            $sStatusText = $pro ? $freelancer->status_text : $stop_words->replace($freelancer->status_text);
            //$GLOBALS['xajax']->setCharEncoding("windows-1251");
            $jsobj = json_encode(array('data' => iconv('CP1251', 'UTF8', $freelancer->status_text)));
            $objResponse->assign("statusText", "innerHTML", $freelancer->status_text == $stdStatus ? "" : reformat($sStatusText, 40, 0, 1, 25));
            $objResponse->assign("statusTitle", "innerHTML", $freelancer->statusToStr($statusType));
            //            $objResponse->assign("statusTitle", "style.display", $statusType > -1 ? '' : 'none');
            $objResponse->script("statusType = {$statusType};\n\t\t\t                      statusTxt = document.getElementById('statusText').innerHTML;\n\t\t\t                      statusTxtSrc = {$jsobj};");
        }
        $objResponse->script("\$('bstatus').erase('class');\n             \$('bstatus').addClass('{$status_cls}');");
    }
    return $objResponse;
}
 /**
  * Функция автозаполнения полей.
  * 
  * @return bool
  */
 public function setFieldAutoComplete()
 {
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/freelancer.php';
     $freelancer = freelancer::getTopFreelancer($this->getListSize());
     if ($freelancer) {
         foreach ($freelancer as $frl) {
             $link[] = "{$GLOBALS['host']}/users/{$frl['login']}";
         }
         $this->initBlock($link);
         return true;
     }
     return false;
 }
示例#5
0
}
$page = intval(trim($_GET['page']));
$from = intval(trim($_GET['from']));
$from = 0;
//а нафига вообще тут это нужно?
if (!$page) {
    $page = 1;
}
if ($login) {
    // Ћичный блог пользовател¤
    $login = pg_escape_string($login);
    $user = new users();
    $user->GetUser($login);
    if ($user->uid && !$user->is_banned) {
        if (!is_emp($user->role)) {
            $user = new freelancer();
            $user->GetUser($login);
            $is_visible = substr($user->tabs, 3, 1);
        } else {
            $user = new employer();
            $user->GetUser($login);
            $is_visible = substr($user->tabs, 2, 1);
        }
        $user->GetUser($login);
        if ($is_visible) {
            $themes = $blog->GetMsgs($user->uid, $page, $num_msgs, $error, 1);
        }
    }
    $rss_title = "Ћичные блоги на FL.ru ({$user->login})";
    $rss_link = $host . "/rss/blogs.php?user={$user->login}";
    $rss_description = "Ћичные блоги на сайте www.fl.ru ({$user->login})";
示例#6
0
function checkFrlRezType($frl_id, $emp_rez_type)
{
    $frl_id = intval($frl_id);
    $objResponse = new xajaxResponse();
    $objResponse->script("\$('taxes_alert').hide();");
    $objResponse->script("\$('unknown_frl_rez').addClass('b-fon_hide');");
    $objResponse->script("if(!\$('nerez_frl_rez').hasClass('b-fon_nohide')) \$('nerez_frl_rez').addClass('b-fon_hide');");
    $objResponse->script("\$('frl_ban').addClass('b-fon_hide');");
    $objResponse->script("\$('frl').getParent().removeClass('b-combo__input_error');");
    if (!$frl_id) {
        return $objResponse;
    }
    $frl = new freelancer();
    $frl->GetUserByUID($frl_id);
    if (!$frl->uid) {
        return $objResponse;
    } else {
        if ($frl->is_banned == 1) {
            $objResponse->script("\$('frl_ban').removeClass('b-fon_hide');");
            $objResponse->script("\$('frl').getParent().addClass('b-combo__input_error');");
        }
        if ($frl_reqvs = sbr_meta::getUserReqvs($frl->uid)) {
            if ((int) $frl_reqvs['rez_type'] <= 0) {
                $objResponse->script("\$('unknown_frl_rez').removeClass('b-fon_hide');");
                $objResponse->script("if(\$('scheme_type" . sbr::SCHEME_PDRD2 . "').checked) \$('taxes_alert').show();");
            }
            if ((int) $frl_reqvs['rez_type'] == sbr::RT_UABYKZ) {
                $objResponse->script("\$('nerez_frl_rez').removeClass('b-fon_hide');");
            }
            if ($frl_reqvs['rez_type'] == sbr::RT_UABYKZ) {
                if ($frl_reqvs['form_type'] == sbr::FT_PHYS) {
                    $objResponse->script("\$('alert_frl_is_fiz').removeClass('b-layout__txt_hide');");
                    $objResponse->script("\$('alert_frl_is_jur').addClass('b-layout__txt_hide');");
                    $objResponse->script("sbr.options.reztype = 'UABYKZ_FIZ';");
                } else {
                    $objResponse->script("\$('alert_frl_is_jur').removeClass('b-layout__txt_hide');");
                    $objResponse->script("\$('alert_frl_is_fiz').addClass('b-layout__txt_hide');");
                    $objResponse->script("sbr.options.reztype = 'UABYKZ';");
                }
            } elseif ($emp_rez_type == 0) {
                $objResponse->script("\$('alert_frl_is_fiz').addClass('b-layout__txt_hide');");
                $objResponse->script("\$('alert_frl_is_jur').addClass('b-layout__txt_hide');");
                $objResponse->script("sbr.options.reztype = 'RU'; ");
            }
            $objResponse->script("\$\$('input[tmpname=\"cost\"]')[0].fireEvent('change')");
            $sbr = sbr_meta::getInstance();
            $sbr->frl_id = $frl->uid;
            $sbr_schemes = $sbr->getSchemes();
            $taxes = sbr_meta::jsSchemeTaxes($sbr_schemes, $frl_reqvs, $sbr->getUserReqvs(), sbr::EMP, exrates::BANK);
            $objResponse->script("sbr.options.schemes = {$taxes};");
            $objResponse->script('sbr.form.recalcTotal()');
        } else {
            $objResponse->script("\$('unknown_frl_rez').removeClass('b-fon_hide');");
            $objResponse->script("if(\$('scheme_type" . sbr::SCHEME_PDRD2 . "').checked) \$('taxes_alert').show();");
        }
    }
    return $objResponse;
}
示例#7
0
$showMainDiv = true;
session_start();
$uid = get_uid();
$rpath = '../../';
$page_title = 'Получи MacBook PRO 13" оплачивая услуги fl.ru в июне чаще других';
$header = '../../header.php';
$footer = '../../footer.html';
$content = 'content.php';
$macbook_top_10_all = $DB->rows("select count(*) as nums, billing_id from account_operations\n    where \n        op_date >= '2015-06-01 00:00:00' \n        and op_date <= '2015-06-30 23:59:59' \n        and ammount < 0 and \n        op_code in(48, 49, 50, 51, 163, 164, 142, 148, 181, 184, 143, 149, 182, 185, 144, 150, 183, 186, 155, 173, 156, 174, 157, 175, 158, 176)\n        and is_our = false\n    group by billing_id\n    order by nums desc\n    ");
// Количество человек
$macbook_top_10_total = sizeof($macbook_top_10_all);
$uid = get_uid();
$billing_id = $DB->val('SELECT id from account where uid=?', $uid);
$user_position = 0;
$macbook_top_10 = array();
foreach ($macbook_top_10_all as $key => $value) {
    if ($key < 10) {
        $user_id = $DB->val('SELECT freelancer.uid from freelancer INNER JOIN account ON account.uid=freelancer.uid WHERE account.id = ?', $value['billing_id']);
        $freelancer = new freelancer();
        $freelancer->GetUserByUID($user_id);
        $macbook_top_10[$key]['user'] = $freelancer;
    }
    if (intval($billing_id) === intval($value['billing_id'])) {
        $user_position = $key + 1;
    }
    if ($key > 10 && $user_position > 0) {
        break;
    }
}
$js_file = array('/css/block/b-shadow/b-shadow.js', 'timer.js', 'verification.js');
include '../../template3.php';
示例#8
0
                if (!($frl_info_for_reg['city'] && !get_uid(false))) {
                    $str_location .= $str_location ? " / " . $frl['str_city'] : $frl['str_city'];
                }
            }
        }
        if ($str_location) {
            echo "<br>Регион: {$str_location}";
        }
        ?>
                                            </span>
                                                                                        
                                            
                                            
                                            <?php 
        if ($frl['status_type'] != -1) {
            echo freelancer::viewStatus($frl['status_type'], true);
            ?>
 <?php 
        }
        ?>
 
                                        </div>
                                    </td>
                                    <td><?php 
        echo rating::round($frl['t_rating']);
        ?>
</td>
                                    <td style="width:65px;">
                                        <?php 
        seo_start();
        ?>
示例#9
0
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
$role = $user->role;
$rpath = '../';
// Статус присутсвия.
$online_status = $user->getOnlineStatus4Profile();
if (is_emp($role)) {
    $fpath = 'employer/';
    include $fpath . 'index.php';
    exit;
}
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/payed.php';
$is_pro = payed::CheckPro($user->login);
$no_banner = !!$is_pro;
$user = new freelancer();
$user->GetUser($name);
if (!$page && !$user->tabs[0] && $user->tabs[7]) {
    $page = $_GET['p'] = 'tu';
} elseif (!$page && !$user->tabs[0] && (!$user->tabs[3] && !hasPermissions('users')) && !$user->tabs[5] && !$user->tabs[6]) {
    $page = $_GET['p'] = 'opinions';
}
//------------------------------------------------------------------------------
// Проверяем блокировку ТУ в профиле за не погашенный долг в ЛС
require_once $_SERVER['DOCUMENT_ROOT'] . '/tu/models/TServiceOrderModel.php';
$hide_tu_for_others = FALSE;
$_debt_info = TServiceOrderModel::model()->isDebt($user->uid);
if ($_debt_info && $user->uid != $uid && $_debt_info['is_blocked'] == 't') {
    $hide_tu_for_others = TRUE;
}
//------------------------------------------------------------------------------
示例#10
0
<?php

require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/stdf.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/freelancer.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/employer.php';
$rpath = '../';
session_start();
$uid = get_uid();
$name = $_GET['user'];
$mode = intval($_GET['mode']);
$user = new users();
$user->GetUser($name);
$role = $user->role;
$is_emp = 0;
if (substr($role, 0, 1) == '1') {
    $user = new employer();
    $is_emp = 1;
} else {
    $user = new freelancer();
}
if (!($mode > 0 && $mode <= 4) || ($mode == 4) != !!$is_emp) {
    header('Location: /404.php');
    exit;
}
$user->GetUser($name);
$header = '../header.php';
$footer = '../footer.html';
$content = 'all_inner.php';
$js_file = array('note.js');
include '../template.php';
示例#11
0
    $bPageDefault = true;
} elseif ($page == 1) {
    $sLocation = e_url('page');
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: {$sLocation}");
    exit(0);
} elseif ($page < 1) {
    include ABS_PATH . '/404.php';
    exit;
}
//------------------------------------------------------------------------------
GaJsHelper::getInstance()->setFrlCategories(array($prof_group_id, $prof_group_parent_id), $prof_id);
adriver::getInstance()->setFrlCategories(array($prof_group_id, $prof_group_parent_id), $prof_id);
//------------------------------------------------------------------------------
$section = intval($_GET['section']);
$freelancer = new freelancer();
$freelancer_seo = new freelancer_seo($section);
if (!$prof_id && !$prof_group_id) {
    // Подсчитываем количество избранных. Переписать в отдельный метод.
    //  $fav_count = 0;
    $prof_name = "Все фри-лансеры";
    $prof_type = false;
    $prof_group_name = '';
    $prof_descr = '';
    $prof_descr_text = '';
    $page_title = "Удаленная работа%prepositional_cityname%. Фрилансеры%cityname%. Проекты от работодателей%cityname%.";
    $page_keyw = "фрилансер, free-lance, freelance, нужны сотрудники удаленно, онлайн фрилансер ру, найти специалиста, сайт фрилансеров, ищу сотрудника, фриланс дизайнер, бухгалтер на дому, юрист удаленно, программист, разработчик, seo оптимизатор, копирайт, рерайт";
    $page_descr = "Лучшие специалисты для тех, кому нужны сотрудники удаленно. Удаленная работа на дому. Онлайн фрилансеры: дизайнеры, копирайтеры, рерайтеры, разработчики, программисты, seo, бухгалтеры, юристы, художники";
    //list($avg_price_hour, $avg_price_project, $avg_price_month) = professions::GetAvgPrices($prof_id);
    //$avg_price_hour = $avg_price_project = $avg_price_month = null;
    $anchor = 0;
示例#12
0
<?php

//ini_set('display_errors',1);
//error_reporting(E_ALL ^ E_NOTICE);
ini_set('max_execution_time', 0);
ini_set('memory_limit', '512M');
if (!isset($_SERVER['DOCUMENT_ROOT']) || !strlen($_SERVER['DOCUMENT_ROOT'])) {
    $_SERVER['DOCUMENT_ROOT'] = rtrim(realpath(pathinfo(__FILE__, PATHINFO_DIRNAME) . '/../../'), '/');
}
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/stdf.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/freelancer.php';
if (count($argv) > 1) {
    parse_str(implode('&', array_slice($argv, 1)), $_GET);
}
$login = $_GET['login'];
$freelancer = new freelancer();
$freelancer->GetUser($login);
if ($freelancer->uid > 0) {
    $DB->query("\n        UPDATE projects_offers_answers SET\n            last_offer = last_offer - interval '1 day'\n        WHERE uid = ?i\n    ", $freelancer->uid);
    $data = $DB->row('SELECT * FROM projects_offers_answers WHERE uid = ?i', $freelancer->uid);
    print_r($data);
} else {
    print_r('Фрилансер не найден!');
}
exit;
示例#13
0
 /**
  * Новая СБР
  * Проверяет пользовательский запрос на создание/редактирование СБР. Инициализирует данные в соответствии с переданными значениями.
  * 
  * @param array $request данные запроса (гет, пост).
  * @param array $files   массив $_FILES с вложениями к каждому этапу.
  * @param sbr   $old     старый экземпляр сделки. Передается при редактировании.
  *
  * @return bool нет ошибок?
  */
 public function _new_initFromRequest($request, $files = null, $old = null)
 {
     $is_now_draft = $this->data['is_draft'];
     $this->data['is_draft'] = $request['draft'] ? 't' : 'f';
     if (!isset($request['frl_db_id'])) {
         $request['frl_db_id'] = '';
     }
     $request['frl_db_id'] = intval($request['frl_db_id']);
     if (isset($request['tuid'], $request['tuhash'])) {
         if ($request['tuhash'] === $this->tserviceHash($request['tuid'])) {
             $service = $this->checkTService($request['tuid'], $request['frl_db_id']);
             if ($service) {
                 $this->data['tservice_id'] = $service['id'];
                 $this->data['tservice_hash'] = $this->tserviceHash($service['id']);
             }
         }
     } elseif ($request['project_id']) {
         $this->checkProject($request['project_id']);
     }
     // если сделка создается из конкурса, то исполнителем может быть только победитель конкурса
     if ($request['project_id'] && isset($request['frl_db_id']) && $this->project['kind'] == 7 && $this->project['exec_id'] != $request['frl_db_id']) {
         $request['frl_db_id'] = $this->project['exec_id'];
         $this->error['frl'] = 'Исполнителем этой сделки может быть только победитель конкурса';
     }
     if (!isset($request['scheme_type'])) {
         $request['scheme_type'] = '';
     }
     if ($old) {
         if (!$request['cost_sys']) {
             $request['cost_sys'] = $old->cost_sys;
         }
         if (!$request['scheme_type']) {
             $request['scheme_type'] = $old->scheme_type;
         }
     }
     foreach ($request as $field => $value) {
         if (is_scalar($value)) {
             $value = trim(stripslashes($value));
         }
         switch ($field) {
             case 'stages':
                 foreach ($value as $pos => $stage) {
                     $nowStage = $this->getStageByIdForData($stage['id']);
                     $value[$pos]['descr'] = htmlspecialchars($stage['descr']);
                     if (($request['scheme_type'] == sbr::SCHEME_PDRD || $request['scheme_type'] == sbr::SCHEME_PDRD2) && $stage['cost'] < sbr_stages::MIN_COST_RUR_PDRD) {
                         $this->error['cost'][$nowStage->data['num']] = 'Поле заполненно некоректно';
                     }
                     if ($request['scheme_type'] == sbr::SCHEME_LC && $is_now_draft != 't' && $stage['cost'] < sbr_stages::MIN_COST_RUR && $stage['cost'] != $nowStage->data['cost']) {
                         $this->error['cost'][$nowStage->data['num']] = 'Поле заполненно некоректно';
                     }
                     if ($request['scheme_type'] == sbr::SCHEME_LC && $is_now_draft == 't' && $stage['cost'] < sbr_stages::MIN_COST_RUR) {
                         $this->error['cost'][$nowStage->data['num']] = 'Поле заполненно некоректно';
                     }
                     if ($this->data['reserved_id'] && (int) $stage['work_time_add'] == 0) {
                         $value[$pos]['work_time'] = $nowStage->data['work_time'];
                         $request[$field][$pos]['work_time'] = $nowStage->data['work_time'];
                     } elseif ($this->data['reserved_id'] && (int) $stage['work_time_add'] > 0) {
                         $start_time = $nowStage->data['start_time'] ? $nowStage->data['start_time'] : $nowStage->data['first_time'];
                         $endDate = strtotime($start_time . ' + ' . $nowStage->data['int_work_time'] . 'days');
                         $nextDate = $endDate < time() ? strtotime("+{$stage['work_time_add']} days") : strtotime(date('d.m.Y H:i', $endDate) . "+{$stage['work_time_add']} days");
                         $workTime = ceil(($nextDate - strtotime($start_time)) / 86400);
                         $value[$pos]['work_time'] = $workTime;
                         $request[$field][$pos]['work_time'] = $workTime;
                     }
                 }
                 break;
             case 'name':
                 if (is_empty_html($value)) {
                     $this->error[$field] = 'Пожалуйста, заполните это поле';
                 }
                 $value = substr($value, 0, self::NAME_LENGTH);
                 break;
             case 'frl_db_id':
                 if (!$this->isDraft()) {
                     if (!$value || $value == 'логин') {
                         $this->error['frl_db_id'] = 'Необходимо добавить исполнителя';
                     }
                 }
                 if (!$this->error['frl_db_id'] && $value != '') {
                     $frl = new freelancer();
                     $frl->GetUserByUID($value);
                     if ($frl->is_banned == 1) {
                         $this->error['frl_db_id'] = 'Данный пользователь заблокирован';
                         $this->error['frl_ban'] = 'Данный пользователь заблокирован';
                     }
                     $this->data['frl_id'] = $frl->uid;
                 }
                 break;
                 // специальность
             // специальность
             case 'profession0_db_id':
                 if (!$value) {
                     $this->error['profession0_db_id'] = 'Необходимо выбрать специальность';
                 }
                 break;
             case 'cost_sys':
                 $reqvs = $this->getUserReqvs();
                 if (!in_array($value, array(exrates::YM, exrates::WMR, exrates::BANK))) {
                     $this->error['cost_sys_err'] = 'Недопустимая валюта резервирования';
                     $value = exrates::BANK;
                 }
                 if (($value == exrates::YM || $value == exrates::WMR) && $reqvs['form_type'] == sbr::FT_JURI) {
                     $this->error['cost_sys_err'] = 'Резервирование через Яндекс.Деньги или WebMoney доступно только физическим лицам';
                 }
                 break;
             case 'project_id':
                 $value = $this->project['id'];
                 break;
             case 'id':
                 $value = intvalPgSql($value);
                 break;
             case 'scheme_type':
                 $value = intvalPgSql($value);
                 if ($value && (!self::$scheme_types[$value] || $value == self::SCHEME_OLD && (!$old || $old->scheme_type != self::SCHEME_OLD))) {
                     $this->error['scheme_type_err'] = 'Неверный тип договора';
                 }
                 break;
             case 'version':
                 $value = (int) $value > 32767 ? 32767 : (int) $value;
                 break;
             case 'frl_refuse_reason':
                 $value = substr($value, 0, self::SBR_REASONS_LENGTH);
                 break;
             default:
                 break;
         }
         $this->data[$field] = $value;
     }
     $this->data['professions'] = array();
     if ($_POST['profession0']) {
         $this->data['professions'][] = array('category_id' => __paramInit('int', null, 'profession0_column_id', 0), 'subcategory_id' => __paramInit('int', null, 'profession0_db_id', 0), 'prof_name' => __paramInit('string', null, 'profession0', 0));
     }
     if ($_POST['profession1']) {
         $this->data['professions'][] = array('category_id' => __paramInit('int', null, 'profession1_column_id', 0), 'subcategory_id' => __paramInit('int', null, 'profession1_db_id', 0), 'prof_name' => __paramInit('string', null, 'profession1', 0));
     }
     if ($_POST['profession2']) {
         $this->data['professions'][] = array('category_id' => __paramInit('int', null, 'profession2_column_id', 0), 'subcategory_id' => __paramInit('int', null, 'profession2_db_id', 0), 'prof_name' => __paramInit('string', null, 'profession2', 0));
     }
     if ($request['stages']) {
         foreach ($request['stages'] as $num => $stage) {
             if (isset($stage['attaches']) && is_array($stage['attaches'])) {
                 foreach ($stage['attaches'] as $anum => $att_id) {
                     if (!isset($files[$att_id])) {
                         continue;
                     }
                     //                    $attached[$att_id]['id'] = md5($attached[$att_id]['id']);
                     if ($files[$att_id]['status'] == 1) {
                         $request['stages'][$num]['attached'][$anum] = $files[$att_id];
                     }
                 }
             }
         }
         if ($GLOBALS['action'] === 'editstage') {
             foreach ($files as $key => $file) {
                 if ($file['status'] == 4) {
                     $this->stages[0]->data['_new_del_attach'][] = $file;
                 }
             }
         }
         $this->_new_initStagesFromRequest($request['stages'], $files, $request['action'] == 'create' ? 0 : ($request['action'] == 'edit' ? 1 : 2));
         $this->getUserReqvs();
         $this->getFrlReqvs();
         if ($this->user_reqvs['rez_type'] == sbr::RT_UABYKZ || $this->frl_reqvs['rez_type'] == sbr::RT_UABYKZ) {
             $cost = 0;
             foreach ($this->stages as $s) {
                 $cost += $s->cost;
             }
             $cost_rur = $cost * $this->cost2rur();
             if ($cost_rur > $this->maxNorezCost()) {
                 foreach ($this->stages as $p => $s) {
                     $this->error['cost'][$pos] = 'Поле заполненно некоректно';
                 }
                 $this->error['cost_sys_err_tbl'] = 'Превышена максимальная сумма сделки &mdash; ' . sbr::MAX_COST_USD . ' USD (или ' . sbr_meta::view_cost($this->maxNoRezCost(), exrates::BANK) . ')';
             }
         }
     }
     //        var_dump($this->error);
     //        die();
     return !$this->error;
 }
示例#14
0
/**
 * Залогинивает юзера. Возвращает UID юзера. Выставляет куки "автологина".
 * ВНИМАНИЕ! возвращает UID юзера, если находит его. Либо возвращает
 * 	0 - не найден
 *  -1 - аккаунт забанен
 *  -2 - аккаунт неактивирован
 *  -3 - IP не входит в список IP разрешенных пользователем
 *  -4 - требуется 2ой этап авторизации
 * 
 * @param string $login				логин юзера
 * @param string $pwd				пароль
 * @param integer $autologin		флаг "автологина"
 * @return integer					UID юзера
 */
function login($login, $pwd, $autologin = 0, $annoy_check = true)
{
    require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/annoy.php";
    $annoy = new annoy();
    $user = new users();
    if ($annoy_check) {
        if (intval($_SESSION['login_wait_time']) > time()) {
            $redirect_checkpass = true;
        } else {
            // Проверить сколько раз воодился пароль
            if (isset($_SESSION['login_wait_time'])) {
                $annoy->Clear(getRemoteIP());
            }
            $login_count = $annoy->Check(getRemoteIP());
            if ($login_count >= $GLOBALS['max_login_tries']) {
                $_SESSION['login_wait_time'] = time() + $GLOBALS['login_wait_time'] * 60;
                $redirect_checkpass = true;
            }
        }
        if ($redirect_checkpass == true) {
            header("Location: /checkpass.php");
            exit;
        }
    }
    //Получаем логин и проверяем счетчик
    $_uid = $user->getUidByLoginEmailPhone($login);
    if ($_uid > 0 && !$annoy->allowRepeatPass($_uid)) {
        header("Location: /banned.php");
        exit;
    }
    //@todo: нет проверок наличия ключей
    $t_filter_prj = $_SESSION['f_project_filter'];
    $t_filter_frl = $_SESSION['f_freelancers_filter'];
    $t_ref_uri2 = $_SESSION['ref_uri2'];
    $adCatalog = $_SESSION['toppayed_catalog'];
    $adMain = $_SESSION['toppayed_main'];
    $adHead = $_SESSION['toppayed_head'];
    $adText = $_SESSION['toppayed_text'];
    $masssending = $_SESSION['masssending'];
    $newPrjName = $_SESSION['new_project_name'];
    $newPrjCost = $_SESSION['new_project_cost'];
    //Сохраняем значение типа 2хэпапной авторизации перед очисткой сессии
    $_2fa_provider = isset($_SESSION['2fa_provider']) ? $_SESSION['2fa_provider'] : null;
    $_2fa_redirect = isset($_SESSION['2fa_redirect']) ? $_SESSION['2fa_redirect'] : null;
    //Переносим хеши ссылок на уже зафиксированные местки для юзера при выходе/входе
    $_ga_stat_url_hash = isset($_SESSION['ga_stat_url_hash']) ? $_SESSION['ga_stat_url_hash'] : null;
    //Последняя посещенная страница
    $_ref_uri = isset($_SESSION['ref_uri']) ? $_SESSION['ref_uri'] : null;
    $_pda = isset($_SESSION['pda']) ? $_SESSION['pda'] : null;
    $_customer_wizard = isset($_SESSION['customer_wizard']) ? $_SESSION['customer_wizard'] : null;
    session_unset();
    if ($_customer_wizard) {
        $_SESSION['customer_wizard'] = $_customer_wizard;
    }
    if ($_pda) {
        $_SESSION['pda'] = $_pda;
    }
    if ($_ref_uri) {
        $_SESSION['ref_uri'] = $_ref_uri;
    }
    //Воссанавливаем значение хешей ссылок
    if ($_ga_stat_url_hash) {
        $_SESSION['ga_stat_url_hash'] = $_ga_stat_url_hash;
    }
    //Востанавливаем значение 2хэпапной авторизации после очистки сессии
    if ($_2fa_provider !== null) {
        $_SESSION['2fa_provider'] = $_2fa_provider;
    }
    if ($_2fa_redirect !== null) {
        $_SESSION['2fa_redirect'] = $_2fa_redirect;
    }
    //Выключаем проверку 2ого этапа авторизации
    //если это вход из куки или еще откуда (но неявно от пользователя)
    //где мы уже уверены что 2этапа пройдены ранее юзером
    $is_2fa_off = $annoy_check === false;
    //Авторизация
    $id = $user->Auth($login, $pwd, $_SESSION, $is_2fa_off);
    //Считаем и блокируем по количеству неудачных авторизаций
    if (!$id && $_uid > 0) {
        $annoy->wrongRepeatPass($_uid);
    }
    //Успешная авторизация
    if ($id > 0) {
        $annoy->clearRepeatPass($id);
        require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/payed.php";
        $pro_last = payed::ProLast($_SESSION['login']);
        //Покупал ли пользователь ПРО 1 мес и более или тестовый
        if (!is_emp()) {
            $_SESSION['is_was_pro'] = $pro_last ? true : payed::isWasPro($_SESSION['uid']);
        }
        $_SESSION['pro_last'] = $pro_last['is_freezed'] ? false : $pro_last['cnt'];
        if ($_SESSION['pro_last'] && $_SESSION['is_pro_new'] != 't') {
            payed::checkNewPro($id);
        }
        if ($pro_last['freeze_to']) {
            $_SESSION['freeze_from'] = $pro_last['freeze_from'];
            $_SESSION['freeze_to'] = $pro_last['freeze_to'];
            $_SESSION['is_freezed'] = $pro_last['is_freezed'];
            $_SESSION['payed_to'] = $pro_last['cnt'];
        }
        if ($_SESSION['anti_login']) {
            $pro_last = payed::ProLast($_SESSION['anti_login']);
            $_SESSION['anti_pro_last'] = $pro_last['freeze_to'] ? false : $pro_last['cnt'];
        }
        require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/memBuff.php";
        $memBuff = new memBuff();
        $memBuff->delete("msgsCnt{$id}");
        //Получение спецализаций фрилансера
        if (!is_emp()) {
            require_once ABS_PATH . "/classes/freelancer.php";
            $specData = freelancer::getAllSpecAndGroup($id, is_pro());
            $_SESSION['specs'] = $specData['specs'];
            //Список специализаций
            $_SESSION['groups'] = $specData['groups'];
            //Список групп
            //@todo: пока не используется
            //$_SESSION['specs_tree'] = $specData['specs_tree']; //Ввиде древа группа > специализации
        }
        require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/drafts.php";
        $iDraftsCount = drafts::getCount($id);
        $_SESSION['drafts_count'] = $iDraftsCount;
        if ($autologin == 1) {
            setcookie('id', $id, time() + 60 * 60 * 24 * 30, '/', $GLOBALS['domain4cookie'], COOKIE_SECURE, true);
            setcookie('name', $login, time() + 60 * 60 * 24 * 30, '/', $GLOBALS['domain4cookie'], COOKIE_SECURE);
            setcookie('pwd', users::cookieHashPasswd($id), time() + 60 * 60 * 24 * 30, '/', $GLOBALS['domain4cookie'], COOKIE_SECURE, true);
        }
        $_SESSION['f_project_filter'] = $t_filter_prj;
        $_SESSION['f_freelancers_filter'] = $t_filter_frl;
        $_SESSION['ref_uri2'] = $t_ref_uri2;
        $_SESSION['toppayed_catalog'] = $adCatalog;
        $_SESSION['toppayed_main'] = $adMain;
        $_SESSION['toppayed_head'] = $adHead;
        $_SESSION['toppayed_text'] = $adText;
        if ($masssending) {
            $_SESSION['masssending'] = $masssending;
        }
        $_SESSION['new_project_name'] = $newPrjName;
        $_SESSION['new_project_cost'] = $newPrjCost;
        if ($t_filter_prj) {
            require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/projects_filter.php";
            $prj_filter = new projects_filters();
            $prj_filter->SaveFromAnon();
        }
        if ($t_filter_frl) {
            require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/freelancers_filter.php";
            $frl_filter = new freelancers_filters();
            $frl_filter->SaveFromAnon();
        }
        //var_dump($_SESSION['customer_wizard']);
        //var_dump($_SESSION['customer_wizard_filled']);
        //exit;
        //Если заказчик пытается опубликовать проект через мастер то публикуем после авторизации
        if (is_emp() && isset($_SESSION['customer_wizard']['filled'])) {
            require_once ABS_PATH . '/guest/models/GuestActivationModel.php';
            $_SESSION['ref_uri'] = GuestActivationModel::model()->published($id, $_SESSION['email']);
        }
    }
    // случайное число, используемое в get/post запросах для защиты.
    if (!$_SESSION['rand']) {
        $_SESSION['rand'] = csrf_token();
    }
    return $id;
}
示例#15
0
<?php

/**
 * Список PROFI для лендинга.
 */
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/freelancer.php';
$freelancer = new freelancer();
$profiList = $freelancer->getProfiAllRandom(90);
if ($profiList) {
    ?>
<h2 class="b-page__title b-page__title_center">
    <a href="/profi/" class="b-page__title_decor_none b-page__title_color_32">Лучшие исполнители</a>
</h2>
<div class="b-layout b-layout_box b-layout_margbot_30 b-layout_padleft_30_iphone b-layout_padright_15_iphone b-layout_pad_null_r560">
<?php 
    foreach ($profiList as $profiUser) {
        $user_profile_url = sprintf('/users/%s/', $profiUser['login']);
        ?>
   <div class="b-layout b-layuot_width_33ps b-layuot_width_50ps b-layout__one_width_full_iphone b-layout_float_left b-layout_height_180 profi-fix">
      <div class="b-layout b-layout_padbot_20 b-layout_padright_15">
             <table class="b-layout__table b-fon_bg_f0ffdf_hover b-layout_hover_link_decorate b-layout__table_width_full">
                <tr class="b-layout__tr">
                   <td class="b-layout__td b-layout__td_width_100 b-layout__td_pad_10 b-layout__td_ipad">
                      <a href="<?php 
        echo $user_profile_url;
        ?>
" class="b-layout__link"> 
                         <span class="i-pic b-pic_border_radius_50 b-pic_bord_ffa800 b-layout_overflow_hidden"><?php 
        echo view_avatar($profiUser['login'], $profiUser['photo'], 0, 0, 'b-pic b-pic_border_radius_50_safari-win');
        ?>
</span>
示例#16
0
         $portf = new portfolio();
         $prof_id = (int) trim($_POST['w_move_prof_to']);
         $count_add = count($_SESSION['w_select'][$_POST['w_move_prof_from']]);
         if ($prof_id > 0 || $prof_id == professions::CLIENTS_PROF_ID || $prof_id == professions::BEST_PROF_ID && portfolio::CountAll($uid, $prof_id, true) + $count_add <= portfolio::MAX_BEST_WORKS) {
             foreach ($_SESSION['w_select'][$_POST['w_move_prof_from']] as $wkey => $wvalue) {
                 $prj_id = (int) trim($wkey);
                 if ($prj_id) {
                     $error .= $portf->ChangeProjectProf($uid, $prof_id, $prj_id);
                 }
             }
         }
     }
     break;
 case "diz_ch":
     $stddiz = $_POST['stddiz'];
     $frl = new freelancer();
     $frl->design = isset($stddiz) ? 0 : 1;
     $error .= $frl->Update($uid, $res);
     break;
 case "delete":
     // удаление аккаунта
     require_once ABS_PATH . "/classes/users.php";
     require_once ABS_PATH . '/classes/admin_log.php';
     $user_obj = new users();
     $sUid = get_uid();
     $user_obj->GetUserByUID($sUid);
     $sObjName = $user_obj->uname . ' ' . $user_obj->usurname . '[' . $user_obj->login . ']';
     $sObjLink = '/users/' . $user_obj->login;
     $sReason = "Аккаунт удален самостоятельно";
     if ($user_obj->setUserBan(get_uid(), 0, $sReason, 4, '', 1, true)) {
         // если удалось заблокировать аккаунт
示例#17
0
<?php

$pdrd_disabled = $sbr->scheme_type != sbr::SCHEME_PDRD && time() < strtotime('2011-01-01');
$categories = professions::GetAllGroupsLite(true, true);
$sub_categories = professions::GetProfList();
$frl_ftype = sbr::FT_PHYS;
if ($sbr->frl_id) {
    $frl = new freelancer();
    $frl->GetUserByUID($sbr->frl_id);
    if (!$sbr->frl_login) {
        $sbr->data['frl_login'] = $frl->login;
    }
    if ($frl_reqvs = sbr_meta::getUserReqvs($frl->uid)) {
        $frl_ftype = (int) $frl_reqvs['form_type'];
        $frl_rtype = $frl_reqvs['rez_type'];
    }
}
?>
<script type="text/javascript">
Sbr.prototype.DEBUG=0;
var SBR = new Sbr('createFrm');
window.addEvent('domready', function() { SBR = new Sbr('createFrm'); } );
Sbr.prototype.CATEGORIES={<?php 
// категории/подкатегории: {ид_кат:{имя_кат:{ид_подкат:имя_подкат,ид_подкат:...}},ид_кат:...}
foreach ($sub_categories as $sc) {
    $cc = $sc['prof_group'];
    $ccname = str_replace("'", "\\'", $categories[$cc]['name']);
    $scname = str_replace("'", "\\'", $sc['name']);
    if ($lcc != $cc) {
        echo ($lcc ? '}},' : '') . "{$cc}:{'{$ccname}':{";
        $lcc = $cc;
示例#18
0
 /**
  * Формирует отчет по арбитражу за определенный период.
  *
  * @param string $sStartDate дата начала периода
  * @param string $sEndDate   дата конца периода
  */
 public function printArbitrageReport($sStartDate = null, $sEndDate = null)
 {
     global $EXRATE_CODES;
     // имя итогового файла
     $sWorkTitle = 'Arbitrage report';
     $sWorkTitle .= $sStartDate ? ' ' . $sStartDate : '';
     $sWorkTitle .= $sEndDate ? ' - ' . $sEndDate : '';
     $sWorkTitle .= '.xls';
     // выбираем все этапы которые закрыты арбитражом
     global $DB;
     $sQuery = 'SELECT ss.id, sd.num FROM sbr_stages ss 
         LEFT JOIN sbr_docs sd ON ss.sbr_id = sd.sbr_id AND sd.type = 8 
         WHERE ss.status = ' . sbr_stages::STATUS_ARBITRAGED;
     $sQuery .= $sStartDate ? " AND ss.closed_time >= '{$sStartDate}'" : '';
     $sQuery .= $sEndDate ? " AND ss.closed_time <= '{$sEndDate}'" : '';
     $aRows = $DB->rows($sQuery . ' ORDER BY ss.closed_time');
     // подключаем pear
     require_once 'Spreadsheet/Excel/Writer.php';
     // создаем документ
     $workbook = new Spreadsheet_Excel_Writer();
     $workbook->setVersion(8);
     // создаем лист
     $worksheet =& $workbook->addWorksheet('1');
     $worksheet->setInputEncoding('CP1251');
     // заголовок листа
     $worksheet->write(0, 0, 'ООО "Ваан"');
     $worksheet->write(2, 1, 'Таблица по актам арбитража');
     $m_sty = array('NumFormat' => '### ### ##0.00', 'Align' => 'right');
     $d_sty = array('NumFormat' => 'DD MMM, YYYY HH:MM:SS');
     $td_sty = array('FontFamily' => 'Calibri', 'VAlign' => 'vequal_space', 'Align' => 'center', 'Border' => 1, 'BorderColor' => 'black');
     $th_sty = array('FontFamily' => 'Arial', 'Size' => 10, 'Align' => 'center', 'Border' => 1, 'BorderColor' => 'black', 'Bold' => 1);
     $format_top =& $workbook->addFormat($th_sty);
     $format_td =& $workbook->addFormat($td_sty);
     $format_money =& $workbook->addFormat(array_merge($td_sty, $m_sty));
     $format_date =& $workbook->addFormat(array_merge($td_sty, $d_sty));
     $format_top->setTextWrap(1);
     $aHeader = array('№ п/п', 'Номер акта', 'Дата', 'Номер «Безопасной Сделки»', 'Наименование Работодателя', 'Наименование Исполнителя', 'Сумма к выплате Работодателю, руб.коп.', 'Сумма к выплате Исполнителю, руб.коп.', 'Способ выплаты');
     for ($i = 0; $i < count($aHeader); ++$i) {
         $worksheet->write(3, $i, $aHeader[$i], $format_top);
     }
     // данные
     if ($aRows) {
         $nCnt = 1;
         $aRates = exrates::GetAll();
         foreach ($aRows as $aOne) {
             $sbr = sbr_meta::getInstance(sbr_meta::ADMIN_ACCESS);
             $stage = $sbr->initFromStage($aOne['id'], false);
             $stage->getArbitrage(true);
             // № п/п
             $worksheet->write($nCnt + 3, 0, $nCnt, $format_td);
             // Номер акта
             $worksheet->write($nCnt + 3, 1, $aOne['num'], $format_td);
             // Дата
             $sDate = date('Y-m-d H:i:s', strtotime($stage->arbitrage['resolved']));
             $worksheet->write($nCnt + 3, 2, $sDate, $format_date);
             // Номер СБР
             $worksheet->write($nCnt + 3, 3, $stage->sbr->getContractNum(), $format_td);
             // Наименование Работодателя
             $stage->sbr->getEmpReqvs();
             $sEmpFio = sbr_meta::getFioFromReqvs($stage->sbr->emp_reqvs);
             if (!$sEmpFio) {
                 $emp = new employer();
                 $emp->GetUserByUID($stage->sbr->emp_id);
                 $sEmpFio = $emp->uname . ' ' . $emp->usurname . ' [' . $emp->login . ']';
             }
             $worksheet->write($nCnt + 3, 4, $sEmpFio, $format_td);
             // Наименование Исполнителя
             $stage->sbr->getFrlReqvs();
             $sFrlFio = sbr_meta::getFioFromReqvs($stage->sbr->frl_reqvs);
             if (!$sFrlFio) {
                 $frl = new freelancer();
                 $frl->GetUserByUID($stage->sbr->frl_id);
                 $sFrlFio = $frl->uname . ' ' . $frl->usurname . ' [' . $frl->login . ']';
             }
             $worksheet->write($nCnt + 3, 5, $sFrlFio, $format_td);
             // Сумма к выплате Работодателю, руб.коп.
             $nSumm = $stage->getPayoutSum(sbr::EMP, exrates::BANK);
             $worksheet->write($nCnt + 3, 6, $nSumm, $format_money);
             // Сумма к выплате Исполнителю, руб.коп.
             $nSumm = $stage->getPayoutSum(sbr::FRL, exrates::BANK);
             $worksheet->write($nCnt + 3, 7, $nSumm, $format_money);
             // Способ выплаты
             $worksheet->write($nCnt + 3, 8, $EXRATE_CODES[$stage->sbr->cost_sys][1], $format_td);
             ++$nCnt;
         }
     }
     // отправляем на скачивание
     $workbook->send($sWorkTitle);
     // закрываем документ
     $workbook->close();
 }
示例#19
0
<?php

require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/freelancer.php';
$user = new freelancer();
$user->GetUser($_SESSION['login']);
if (strtotime($_SESSION['pro_last']) > time() && $_SESSION['pro_test'] == 't') {
    $is_pro_test = true;
} else {
    $is_pro_test = false;
}
?>
<style>
.tarif {
	color: #333333;
	font-size: 13px;
}
</style>
<h1>Услуги</h1>
<?php 
if ($profs) {
    ?>
<table width="100%" border="0" cellspacing="0" cellpadding="19">
<tr valign="top">
	<td height="400" valign="top" bgcolor="#FFFFFF" class="box2" style="color: #333333;">
		<div style="color: #000000; font-size: 35px; margin-bottom: 25px;">Предоставленные услуги</div>
		<table width="290" border="0" cellspacing="0" cellpadding="0" style="background-image: url(/images/bg_pro.gif); background-repeat: no-repeat;">
			<tr valign="top">
				<td width="50" rowspan="2" style="height: 112; padding-top:35px; padding-left:8px;padding-right:3px;"><?php 
    echo view_avatar($user->login, $user->photo);
    ?>
</td>
示例#20
0
function FrlRefuse($pid)
{
    global $session;
    session_start();
    $objResponse = new xajaxResponse();
    $res = freelancer::Refuse(get_uid(), $pid);
    if ($res == 't') {
        $objResponse->assign('frl_edit_bar', 'innerHTML', '');
        $objResponse->assign("add_dialog_{$uid}", 'innerHTML', '&nbsp;');
        $objResponse->assign("add_dialog_{$pid}", 'innerHTML', '&nbsp;');
        $objResponse->script("\$\$('.add_dialog_user').set('html', '&nbsp;');");
        $objResponse->script("\$\$('.opinions1_{$uid}').set('html', 'Вы отказались от проекта').addClass('refusal-prj'); \$\$('.opinions2_{$uid}').destroy();");
    }
    return $objResponse;
}
示例#21
0
 public function getInformationUser($uid = false)
 {
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/employer.php";
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/freelancer.php";
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/country.php";
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/city.php";
     if (!$uid) {
         $uid = $_SESSION['uid'];
     }
     if (is_emp()) {
         $user = new employer();
     } else {
         $user = new freelancer();
     }
     $user->GetUserByUID($uid);
     $this->setFieldInfo('uname', $user->uname);
     $this->setFieldInfo('usurname', $user->usurname);
     $this->setFieldInfo('birthday', $user->birthday);
     $this->setFieldInfo('country', $user->country);
     $this->setFieldInfo('country_name', country::GetCountryName($user->country));
     $this->setFieldInfo('city', $user->city);
     $this->setFieldInfo('city_name', city::GetCityName($user->city));
     $this->setFieldInfo('sex', $user->sex == 't' ? 1 : ($user->sex == 'f' ? 0 : -1));
     $this->setFieldInfo('info_for_reg', unserialize($user->info_for_reg));
 }
示例#22
0
 /** Удаление закрепления по id в account_operations
  * @see account::DelByOpid()
  *
  * @param  intr $uid uid пользователя
  * @param  int $opid id операции в биллинге
  * @return int 0
  */
 public function DelByOpid($uid, $opid)
 {
     //Получаем информацию об удаляемом платеже
     $sql = "SELECT bq.id, bq.op_count, bq.src_id, ao.op_code\n            FROM account_operations ao\n            INNER JOIN bill_reserve br ON br.uid = ?i\n                AND br.ammount = -(ao.ammount) \n                AND br.complete_time::timestamp = ao.op_date::timestamp\n            INNER JOIN bill_queue bq ON bq.reserve_id = br.id AND bq.op_code = ao.op_code\n            WHERE ao.id = ?i\n                AND ao.billing_id = (SELECT id FROM account WHERE uid = ?i);";
     $operation = $this->db->row($sql, $uid, $opid, $uid);
     if (!$operation) {
         return 0;
     }
     $operation['op_code'] = billing::getOpCodeByDiscount($operation['op_code']);
     $is_spec = false;
     $ok = false;
     switch ($operation['op_code']) {
         case self::OP_CODE_PROF:
             $is_spec = true;
         case self::OP_CODE_CATALOG:
         case self::OP_CODE_PROFGROUP:
             //Убираем запись о закреплении из базы
             $ok = $this->db->query("DELETE FROM {$this->TABLE} WHERE user_id = ?i AND prof_id = ?i AND is_spec = ?b", $uid, $operation['src_id'], $is_spec);
             break;
         case self::OP_CODE_PROLONG_PROF:
         case self::OP_CODE_UP_PROF:
             $is_spec = true;
         case self::OP_CODE_PROLONG_CATALOG:
         case self::OP_CODE_PROLONG_PROFGROUP:
         case self::OP_CODE_UP_CATALOG:
         case self::OP_CODE_UP_PROFGROUP:
             //пересчитать сроки начала срока действия закрепления с учетом
             //удаления покупки - чтобы закрепление вернулось
             //на то место в каталоге, с которого был подъем
             $bind_id = $this->isUserBinded($uid, $operation['src_id'], $is_spec);
             if ($bind_id) {
                 $dates = $this->recalcBindDates($operation, $uid);
                 $this->db->update($this->TABLE, array('date_start' => $dates['start'], 'date_stop' => $dates['stop']), 'id = ?i', $bind_id);
             }
             break;
     }
     if ($ok) {
         freelancer::clearCacheFromProfIdNow($operation['src_id'], $is_spec);
     }
     return 0;
 }
 public function actionNewOrder()
 {
     $code = __paramInit('string', 'code', 'code', '');
     $activation_data = $this->order_model->getOrderActivation($code);
     if (!$activation_data) {
         $this->missingAction(null);
     }
     $this->order_model->deleteOrderActivation($code);
     $is_new = !($activation_data['user_id'] > 0);
     $registration = new registration();
     $user_data = $registration->autoRegistationAndLogin(array('uid' => $activation_data['user_id'], 'role' => 1, 'email' => $activation_data['email'], 'uname' => $activation_data['uname'], 'usurname' => $activation_data['usurname']));
     //Если почему то не можем зарегать
     //то редиректим на регистрацию
     if (!$user_data || !$user_data['ret']) {
         $this->redirect('/registration/');
     }
     $status = $user_data['ret'];
     $user = $user_data['user'];
     $this->uid = $user->uid;
     $service_id = intval($activation_data['tu_id']);
     $debt_info = $this->order_model->isDebt($this->uid);
     //блокируем возможность заказать если у исполнителя долг
     //и вышли все сроки погашения
     if ($debt_info && $debt_info['is_blocked'] == 't') {
         $this->missingAction(null);
     }
     $activation_data['options']['emp_id'] = $this->uid;
     $this->order_model->attributes($activation_data['options']);
     $order = $this->order_model->create($service_id);
     //Не удалось создать заказ показываем 404
     if (!$order) {
         $this->missingAction(null);
     }
     //Уведомляем все стороны
     $tservices_smail = new tservices_smail();
     $tservices_smail->newOrder($order);
     //Если юзер уже бывалый пользователь то редиректим на карточку заказа
     $order_url = sprintf(tservices_helper::url('order_card_url'), $order['id']);
     if (!$is_new) {
         if ($status == users::AUTH_STATUS_2FA) {
             $_SESSION['ref_uri'] = $order_url;
             $order_url = '/auth/second/';
         }
         $this->redirect($order_url);
     }
     //Берем доп.инфу о фрилансере
     $freelancer = new freelancer();
     $freelancer->GetUserByUID($order['frl_id']);
     //Если юзер новичек то показываем ему логин/пароль и статус заказа
     $this->layout = '//layouts/content-full-width';
     $this->render('new-order', array('order_url' => $order_url, 'login' => $user->login, 'passwd' => $user->passwd, 'freelancer' => (array) $freelancer));
 }
示例#24
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/freelancer.php';
//------------------------------------------------------------------------------
$results = array();
//if(count($argv) > 1) parse_str(implode('&', array_slice($argv, 1)), $_GET);
//------------------------------------------------------------------------------
$results['clearCacheProfiCatalog'] = (int) freelancer::clearCacheProfiCatalog();
//------------------------------------------------------------------------------
array_walk($results, function (&$value, $key) {
    $value = sprintf('%s = %s' . PHP_EOL, $key, $value);
});
print_r(implode('', $results));
exit;
示例#25
0
<?php

require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/stdf.php";
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/freelancer.php";
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/rating.php";
$stretch_page = true;
$showMainDiv = true;
$footer_payed = true;
$no_banner = true;
$freelancer = new freelancer();
$is_allow = isAllowProfi();
if ($is_allow) {
    require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/account.php";
    require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/payed.php";
    $uid = get_uid();
    $account = new account();
    $account->GetInfo($uid, true);
    if (__paramInit('bool', 'quickprofi_ok', NULL, false)) {
        //Обновляем сессию
        $freelancer->GetUserByUID($uid);
        $_SESSION['is_profi'] = $freelancer->isProfi();
        $pro_last = payed::ProLast($_SESSION['login']);
        $_SESSION['pro_last'] = $pro_last['is_freezed'] ? false : $pro_last['cnt'];
    }
}
$catalogList = $freelancer->getProfiCatalog(80);
$maxFirstCLBlock = 90;
$cntCatalogList = count($catalogList);
$isMoreCatalogList = $cntCatalogList > $maxFirstCLBlock;
$cntFirstCLBlock = $isMoreCatalogList ? $maxFirstCLBlock : $cntCatalogList;
$page_title = "PROFI аккаунт - фриланс, удаленная работа на FL.ru";
示例#26
0
if ($u_ctlg_pos) {
    $i = 0;
    foreach ($u_ctlg_pos as $p) {
        $pt = $i ? 1 : 4;
        if ($p['link'] != '') {
            $p['link'] .= '/';
        }
        ?>
                    <tr style="vertical-align:top">
                      <td style="padding-top:<?php 
        echo $pt;
        ?>
px; white-space:nowrap; padding-bottom:4px;">
                        <div style="width:100%;text-overflow:ellipsis;overflow:hidden">
                            <a href="/freelancers/<?php 
        echo $p['link'] . freelancer::getPositionToPage($p['pos']);
        ?>
" title="<?php 
        echo $p['prof_name'];
        ?>
" class="blue"><?php 
        echo LenghtFormatEx($p['prof_name'], 24, '...', 1);
        ?>
</a>
                        </div>
                      </td>
                      <?php 
        if (!$u_is_pro) {
            ?>
                        <td style="padding-top:<?php 
            echo $pt;
 public function completeData($type_role = 1)
 {
     if ($this->isDisable()) {
         header("Location: /wizard/registration/?step=1");
         exit;
     }
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/employer.php";
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/freelancer.php";
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/city.php";
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/country.php";
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/blogs.php";
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/commune.php";
     $themes_blogs = blogs::getRandomThemes(5);
     $themes_commune = commune::getRandomCommunes(3);
     $month = array('1' => 'января', '2' => 'февраля', '3' => 'марта', '4' => 'апреля', '5' => 'мая', '6' => 'июня', '7' => 'июля', '8' => 'августа', '9' => 'сентября', '10' => 'октября', '11' => 'ноября', '12' => 'декабря');
     if ($type_role == step_wizard_registration::TYPE_WIZARD_EMP) {
         $user = new employer();
         $checkPRO = $this->checkWizardPRO(array(step_employer::OP_CODE_PRO));
         $pro_emp = $checkPRO['id'] > 0 ? 1 : 0;
         if ($pro_emp) {
             $week_pro = round($checkPRO['ammount'] / 10);
         }
     } else {
         $user = new freelancer();
         $checkPRO = $this->checkWizardPRO(step_freelancer::getOperationCodePRO());
         $pro_frl = $checkPRO['id'] > 0 ? 1 : 0;
         if ($pro_frl) {
             $op_code = $checkPRO['op_code'];
         }
     }
     $user->GetUserByUID(wizard::getUserIDReg());
     $info_for_reg = unserialize($user->info_for_reg);
     $uname = $user->uname;
     $usurname = $user->usurname;
     $sex = $user->sex == 't' ? 1 : ($user->sex == 'f' ? 0 : -1);
     $birthday = strtotime($user->birthday);
     if ($birthday) {
         $bday = date('d', $birthday);
         $bmonth = (int) date('m', $birthday);
         $bmonth_value = $month[$bmonth];
         $byear = date('Y', $birthday);
     } else {
         $bday = '';
         $bmonth = (int) date('m', $birthday);
         $bmonth_value = $month[$bmonth];
         $byear = '';
     }
     $city = $user->city;
     if ($city) {
         $city_value = city::GetCityName($city);
     }
     $country = $user->country;
     if ($country) {
         $country_value = country::GetCountryName($country);
     }
     if ($type_role == step_wizard_registration::TYPE_WIZARD_EMP) {
         $company = $user->compname;
         $about_company = $user->company;
         $logo_name = $user->logo;
         $dir = "users/" . substr($user->login, 0, 2) . "/" . $user->login . "/logo/";
         $logo_path = WDCPREFIX . "/" . $dir . $user->logo;
     }
     $info['site'] = $this->loadMultiVal('site', 'site', $user);
     $info['email'] = $this->loadMultiVal('second_email', 'email', $user);
     $info['phone'] = $this->loadMultiVal('phone', 'phone', $user);
     $info['icq'] = $this->loadMultiVal('icq', 'icq', $user);
     $info['skype'] = $this->loadMultiVal('skype', 'skype', $user);
     $info['jabber'] = $this->loadMultiVal('jabber', 'jabber', $user);
     $info['lj'] = $this->loadMultiVal('ljuser', 'lj', $user);
     $action = __paramInit('string', null, 'action');
     if ($action == 'upd_info') {
         $info_for_reg = $_POST['info_for_reg'];
         if ($info_for_reg['email_0'] !== null) {
             $info_for_reg['second_email'] = $info_for_reg['email_0'];
             unset($info_for_reg['email_0']);
         }
         if ($info_for_reg['phone_0'] !== null) {
             $info_for_reg['phone'] = $info_for_reg['phone_0'];
             unset($info_for_reg['phone_0']);
         }
         if ($info_for_reg['site_0'] !== null) {
             $info_for_reg['site'] = $info_for_reg['site_0'];
             unset($info_for_reg['site_0']);
         }
         if ($info_for_reg['lj_0'] !== null) {
             $info_for_reg['ljuser'] = $info_for_reg['lj_0'];
             unset($info_for_reg['lj_0']);
         }
         if ($info_for_reg['jabber_0'] !== null) {
             $info_for_reg['jabber'] = $info_for_reg['jabber_0'];
             unset($info_for_reg['jabber_0']);
         }
         if ($info_for_reg['skype_0'] !== null) {
             $info_for_reg['skype'] = $info_for_reg['skype_0'];
             unset($info_for_reg['skype_0']);
         }
         if ($info_for_reg['icq_0'] !== null) {
             $info_for_reg['icq'] = $info_for_reg['icq_0'];
             unset($info_for_reg['icq_0']);
         }
         if ($info_for_reg['compname'] !== null) {
             $info_for_reg['company'] = $info_for_reg['compname'];
             unset($info_for_reg['compname']);
         }
         $info_for_reg = array_map('intval', $info_for_reg);
         $user->info_for_reg = serialize($info_for_reg);
         $uname = __paramInit('string', null, 'uname', null, 21);
         $usurname = __paramInit('string', null, 'usurname', null, 21);
         if ($uname == '') {
             $error['uname'] = "Поле заполнено некорректно";
         }
         if ($usurname == '') {
             $error['usurname'] = "Поле заполнено некорректно";
         }
         if (!preg_match("/^[-a-zA-Zа-яёА-ЯЁ]+\$/", $uname)) {
             $error['uname'] = "Поле заполнено некорректно";
         } else {
             $user->uname = $uname;
         }
         if (!preg_match("/^[-a-zA-Zа-яёА-ЯЁ]+\$/", $usurname)) {
             $error['usurname'] = "Поле заполнено некорректно";
         } else {
             $user->usurname = $usurname;
         }
         $sex = __paramInit('int', null, 'sex', 1);
         // по умолчанию мужской пол
         $user->sex = $sex == 1 ? 't' : 'f';
         $bday = __paramInit('int', null, 'bday', null);
         $bmonth = __paramInit('int', null, 'bmonth_db_id', 1);
         $bmonth_value = __paramInit('string', null, 'bmonth');
         $byear = __paramInit('int', null, 'byear', null);
         if ($bday != null && $byear != null) {
             if (!is_numeric($bday) || !is_numeric($byear) || !checkdate($bmonth, $bday, $byear) || $byear < 1945 || $byear > date('Y')) {
                 $error['birthday'] = "Поле заполнено некорректно";
             } else {
                 $user->birthday = dateFormat("Y-m-d", $byear . "-" . $bmonth . "-" . $bday);
             }
         } else {
             $user->birthday = "1910-01-01";
         }
         if (!$error['birthday'] && $user->birthday && date("Y", strtotime($user->birthday)) >= date("Y")) {
             $error['birthday'] = "Поле заполнено некорректно";
         }
         $city = __paramInit('int', null, 'city_db_id', 0);
         $city_value = __paramInit('string', null, 'city', false);
         $country = __paramInit('int', null, 'country_db_id', 0);
         $country_value = __paramInit('string', null, 'country', false);
         if ($city == 0 && strlen($city_value) != 0) {
             $error['city'] = 'Поле заполнено некорректно';
         }
         if ($country == 0 && strlen($country_value) != 0) {
             $error['country'] = 'Поле заполнено некорректно';
         }
         $user->country = $country;
         $user->city = $city;
         $company = __paramInit('string', null, 'company') ? substr(__paramInit('string', null, 'company'), 0, 64) : '';
         $about_company = __paramInit('string', null, 'about_company');
         $user->compname = $company;
         if (strlen($about_company) > 500) {
             $error['company'] = "Количество знаков в тексте о компании превышает допустимое значение";
         } else {
             $user->company = $about_company;
         }
         $logo_id = __paramInit('int', null, 'logo_company');
         $logo_name = __paramInit('string', null, 'logo_name');
         if ($logo_name) {
             $user->logo = $logo_name;
             $user->Update(wizard::getUserIDReg(), $res);
         }
         $info['site'] = $this->initMultiVal('site');
         $info['email'] = $this->initMultiVal('email');
         $info['phone'] = $this->initMultiVal('phone');
         $info['icq'] = $this->initMultiVal('icq');
         $info['skype'] = $this->initMultiVal('skype');
         $info['jabber'] = $this->initMultiVal('jabber');
         $info['lj'] = $this->initMultiVal('lj');
         if (!empty($info['site'])) {
             foreach ($info['site'] as $i => $value) {
                 $name = 'site' . ($i != 0 ? "_{$i}" : "");
                 if (!url_validate(addhttp($value), true) && trimhttp($value) != '') {
                     $error[$name] = "Поле заполнено некорректно";
                 } else {
                     $user->{$name} = addhttp($value);
                 }
             }
         }
         if (!empty($info['email'])) {
             foreach ($info['email'] as $i => $value) {
                 if ($i == 0) {
                     $name_save = "second_email";
                 } else {
                     $name_save = "email_{$i}";
                 }
                 $name = 'email' . ($i != 0 ? "_{$i}" : "");
                 if (!is_email($value) && $value != '') {
                     $error[$name] = "Поле заполнено некорректно";
                 } else {
                     $user->{$name_save} = $value;
                 }
             }
         }
         if (!empty($info['phone'])) {
             foreach ($info['phone'] as $i => $value) {
                 $name = 'phone' . ($i != 0 ? "_{$i}" : "");
                 if (!preg_match("/^[-+0-9)( #]*\$/", $value)) {
                     $error[$name] = "Поле заполнено некорректно";
                 } else {
                     $user->{$name} = $value;
                 }
             }
         }
         if (!empty($info['icq'])) {
             foreach ($info['icq'] as $i => $value) {
                 $name = 'icq' . ($i != 0 ? "_{$i}" : "");
                 if (!preg_match("/^[-0-9\\s]*\$/", $value) && !is_email($value)) {
                     $error[$name] = "Поле заполнено некорректно";
                 } else {
                     $user->{$name} = $value;
                 }
             }
         }
         if (!empty($info['skype'])) {
             foreach ($info['skype'] as $i => $value) {
                 $name = 'skype' . ($i != 0 ? "_{$i}" : "");
                 $user->{$name} = $value;
             }
         }
         if (!empty($info['jabber'])) {
             foreach ($info['jabber'] as $i => $value) {
                 $name = 'jabber' . ($i != 0 ? "_{$i}" : "");
                 if (strlen($value) > 255) {
                     $error[$name] = "Количество знаков превышает допустимое значение";
                 } else {
                     $user->{$name} = $value;
                 }
             }
         }
         if (!empty($info['lj'])) {
             foreach ($info['lj'] as $i => $value) {
                 if ($i == 0) {
                     $name_save = "ljuser";
                 } else {
                     $name_save = "lj_{$i}";
                 }
                 $name = 'lj' . ($i != 0 ? "_{$i}" : "");
                 if (!preg_match("/^[a-zA-Z0-9_-]*\$/", $value)) {
                     $error[$name] = "Поле заполнено некорректно";
                 } else {
                     $user->{$name_save} = $value;
                 }
             }
         }
         if ($type_role == step_wizard_registration::TYPE_WIZARD_EMP) {
             $pro_emp = __paramInit('int', null, 'pro-emp', false);
             if ($pro_emp) {
                 $week_pro = round(__paramInit('int', null, 'week_pro', 0));
             }
         } else {
             $ammount = 0;
             $pro_frl = __paramInit('int', null, 'pro-frl', false);
             if ($pro_frl) {
                 $pro = __paramInit('string', null, 'pro', -1);
                 switch ($pro) {
                     case "1week":
                         $op_code = 76;
                         $ammount = 7;
                         break;
                     case "1":
                         $op_code = 48;
                         $ammount = 19;
                         break;
                     case "3":
                         $op_code = 49;
                         $ammount = 54;
                         break;
                     case "6":
                         $op_code = 50;
                         $ammount = 102;
                         break;
                     case "12":
                         $op_code = 51;
                         $ammount = 180;
                         break;
                     case "-1":
                     default:
                         $ammount = 0;
                         break;
                 }
             }
         }
         if (!$error && wizard::getUserIDReg()) {
             $error['save'] = $user->Update(wizard::getUserIDReg(), $res);
             if (!$error['save']) {
                 if ($type_role == step_wizard_registration::TYPE_WIZARD_EMP) {
                     $ammount = $week_pro * 10;
                     if ($ammount > 0) {
                         $checkPRO = $this->checkWizardPRO(step_employer::OP_CODE_PRO);
                         if ($checkPRO['id'] > 0) {
                             $update = array("ammount" => $ammount);
                             wizard_billing::editPaidOption($update, $checkPRO['id']);
                         } else {
                             $insert = array("wiz_uid" => step_wizard::getWizardUserID(), "op_code" => step_employer::OP_CODE_PRO, "type" => 3, "ammount" => $ammount, "parent" => wizard::getUserIDReg());
                             wizard_billing::addPaidOption($insert);
                         }
                     } else {
                         $sql = "DELETE FROM wizard_billing WHERE wiz_uid = ? AND op_code = ?";
                         $this->_db->query($sql, step_wizard::getWizardUserID(), step_employer::OP_CODE_PRO);
                     }
                 } else {
                     // Чистим
                     $sql = "DELETE FROM wizard_billing WHERE wiz_uid = ? AND op_code IN (?l)";
                     $this->_db->query($sql, step_wizard::getWizardUserID(), step_freelancer::getOperationCodePRO());
                     if ($ammount > 0) {
                         $insert = array("wiz_uid" => step_wizard::getWizardUserID(), "op_code" => $op_code, "type" => 4, "ammount" => $ammount, "parent" => wizard::getUserIDReg());
                         wizard_billing::addPaidOption($insert);
                     }
                 }
                 $this->parent->setCompliteStep(true);
                 $this->parent->setNextStep($this->parent->getPosition() + 1);
                 header("Location: /wizard/registration/");
                 exit;
             }
         }
         if ($logo_id > 0) {
             $file = new CFile($logo_id);
             $logo_path = WDCPREFIX . "/" . $file->path . $file->name;
         }
     }
     include $_SERVER['DOCUMENT_ROOT'] . "/wizard/registration/steps/tpl.step.info.php";
 }
示例#28
0
 public static function SetFuTable($table)
 {
     self::$fu_table = $table;
 }
示例#29
0
//------------------------------------------------------------------------------
if (date('H') == 6) {
    $log->TRACE(professions::ReCalcProfessionsCount());
    $hh = new hh();
    $log->TRACE($hh->delOldFilters());
    $log->TRACE($mail->employerHelpInfo());
}
$log->TRACE(professions::PaidSpecsEndingReminder());
// ban
$usr = new users();
$log->TRACE($usr->GetBanTimeout());
//выкидываем неактивных юзеров
$log->TRACE($usr->UpdateInactive());
if (date('H') == 0 || date('H') == 6 || date('H') == 12 || date('H') == 18) {
    // генерация xml для webprof
    $log->TRACE(freelancer::webprofGenerateRss('upload/webprof.xml'));
}
// генерация xml для Яндекс.Работа
$log->TRACE(new_projects::yandexGenerateRss('upload/yandex-office.xml', array(4)));
$log->TRACE(new_projects::yandexGenerateRss('upload/yandex-project.xml', array(1, 2, 7)));
// генерация xml для Jooble.ru, indeed и trovit
$projects_for_xml = new_projects::getProjectsForXml('1 month');
$log->TRACE(new_projects::joobleGenerateRss('upload/jooble.xml', $projects_for_xml));
$log->TRACE(new_projects::indeedGenerateRss('upload/indeed.xml', $projects_for_xml));
$log->TRACE(new_projects::trovitGenerateRss('upload/trovit.xml', $projects_for_xml));
// генерация xml для joobradio
if (date('H') == 4) {
    $log->TRACE(new_projects::jobradioGenerateRss('upload/jobradio.xml'));
    if (users_suspicious_contacts::getResetContacts()) {
        users_suspicious_contacts::resetContacts();
        users_suspicious_contacts::setResetContacts();
示例#30
0
 /**
  * Обновляем данные пользователя введенные в шаге портфолио
  * 
  * @param array $data Данные пользователя
  */
 public function transferUserInformation($data)
 {
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/freelancer.php";
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/professions.php";
     $frl = new freelancer();
     if ($data['resume'] > 0) {
         $dir = "users/" . substr($this->user->login, 0, 2) . "/" . $this->user->login . "/resume/";
         $table = 'file';
         $files = array(array('id' => $data['resume']));
         $resume = $this->transferFiles($files, $table, $dir);
     }
     $frl->exp = $data['exp'];
     $frl->cost_hour = $data['cost_hour'];
     $frl->cost_month = $data['cost_month'];
     $frl->cost_type_hour = $data['cost_type_hour'];
     $frl->cost_type_month = $data['cost_type_month'];
     $frl->spec_text = $data['info'];
     $frl->in_office = $data['in_office'];
     $frl->spec = $data['spec'];
     $frl->spec_orig = $data['spec_orig'];
     $frl->resume_file = $resume[0]['fname'];
     $error_db = $frl->Update(wizard::getUserIDReg(), $res);
     $prof = new professions();
     if ($data['spec_orig'] > 0) {
         $error_db = $prof->UpdatePortfChoise(wizard::getUserIDReg(), array($data['spec_orig']));
     }
     // Если нет ошибок очищаем таблицу
     if ($error_db) {
         $this->log->writeln("Error transfer data user content - user (" . wizard::getUserIDReg() . "|" . $this->getWizardUserID() . ") - Error: {$error_db}");
     } else {
         $this->_db->query("DELETE FROM wizard_fields WHERE id = ? AND wiz_uid = ?", $field['id'], $this->getWizardUserID());
     }
     return $error_db;
 }