/** * Инициализация тизера. * * @global array $js_file * * @param array $options [kind, uid] */ public function init($options = array()) { global $js_file; $js_file[] = 'tservices/tservices_binds.js'; if ($options) { $this->kind = (int) $options['kind']; $this->uid = (int) $options['uid']; } $time_to = time() + 7 * 86400; $use_bind_popup = false; $tu_bind_teaser = array('date' => date('j', $time_to) . ' ' . monthtostr(date('n', $time_to), true), 'href' => 'javascript:void(0);'); $tservices_binds = new tservices_binds($this->kind); $tservices_class = new tservices($this->uid); $profs = array(); if ($this->kind == tservices_binds::KIND_SPEC) { $profs[] = $this->prof_id; } elseif ($this->kind == tservices_binds::KIND_GROUP) { $tservices_categories = new tservices_categories(); $categories = $tservices_categories->getCategoriesByParent($this->prof_id); foreach ($categories as $category) { $profs[] = $category['id']; } } if ($countBindedTu = $tservices_binds->countBindedTu($this->uid, (int) $this->prof_id)) { $binded_text = ending($countBindedTu, 'ваша услуга', 'ваши услуги', 'ваших услуг'); $tu_bind_teaser['subtitle'] = $countBindedTu . ' ' . $binded_text . ' уже <br>закреплен' . ($countBindedTu > 1 ? 'ы' : 'а') . ' в этом разделе'; if ($tservices_class->hasUnbindedTservices($this->kind, $this->uid, $profs)) { $use_bind_popup = true; $tu_bind_teaser['title'] = 'Закрепите еще одну услугу'; $tu_bind_teaser['btn_text'] = 'Закрепить'; } else { $tu_bind_teaser['title'] = 'Добавьте еще одну услугу<br>и закрепите ее здесь'; $tu_bind_teaser['href'] = '/users/' . $_SESSION['login'] . '/tu/new/'; $tu_bind_teaser['btn_text'] = 'Добавить'; } } else { if ($tservices_class->hasUserTservice(true, $profs)) { $use_bind_popup = true; $tu_bind_teaser['title'] = 'Закрепите здесь услугу'; $tu_bind_teaser['btn_text'] = 'Закрепить'; } else { $tu_bind_teaser['title'] = 'Добавьте свою услугу<br>и закрепите ее здесь'; $tu_bind_teaser['href'] = '/users/' . $_SESSION['login'] . '/tu/new/'; $tu_bind_teaser['btn_text'] = 'Добавить'; } } if ($use_bind_popup) { quickPaymentPopupTservicebind::getInstance()->init(array('uid' => $this->uid, 'kind' => $this->kind, 'prof_id' => $this->prof_id)); $tu_bind_teaser['popup_id'] = quickPaymentPopupTservicebind::getInstance()->getPopupId(0); $tu_bind_teaser['popup'] = quickPaymentPopupTservicebind::getInstance()->render(); } $this->data = $tu_bind_teaser; $this->data['price'] = $tservices_binds->getPrice(false, $this->uid, $this->prof_id); $this->data['main_div_class'] = $this->kind == tservices_binds::KIND_LANDING ? 'b-layout__tu-cols b-layout__tu-cols_height_330' : 'i-pic i-pic_port i-pic_width_225 i-pic_margbot_30'; }
function quickMASSetCats($frm) { $objResponse = new xajaxResponse(); require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/country.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/city.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/professions.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/project_exrates.php'; if ($frm) { global $DB; $frm = preg_replace('/,$/', '', $frm); $acats = explode(',', $frm); $cats_data = array(); foreach ($acats as $v) { $v = preg_replace('/^mass_cat_span_/', '', $v); $c = explode('_', $v); if ($c[0] == 0) { continue; } if ($c[1] == 0) { $sql = 'SELECT prof_group FROM professions WHERE id=?i'; $p = $DB->val($sql, $c[0]); $cats_data[] = $p . ':' . $c[0]; } else { $cats_data[] = $c[0] . ':0'; } } $html = ''; if ($cats_data) { $count = 0; foreach ($cats_data as $v) { ++$count; if (count($cats_data) <= 3 || count($cats_data) >= 4 && $count < 3) { $c = explode(':', $v); $sql = 'SELECT name FROM prof_group WHERE id=?i'; $p = $DB->val($sql, $c[0]); $html .= $p; if ($c[1]) { $html .= ' - ' . professions::GetProfName($c[1]) . '<br>'; } else { $html .= '<br>'; } } } if (count($cats_data) >= 4 && $count > 2) { $html .= 'и еще ' . ($count - 2) . ' ' . ending($count - 2, 'другой', 'других', 'других'); } $objResponse->script("\$('quickmas_f_mas_c_count').set('html', '" . count($cats_data) . "');"); $objResponse->script("\$('quickmas_f_mas_subcat_m').show();"); } else { $objResponse->script("\$('quickmas_f_mas_subcat_m').hide();"); } $objResponse->assign('quickmas_f_mas_subcat', 'innerHTML', $html); } return $objResponse; }
public function setResult($result) { if ($result && $result['total']) { $this->words = @implode(' ', @array_keys($result['words'])); if ($result['matches']) { $this->matches = $result['matches']; } $this->total = $result['total']; $this->totalStr = ending((int) $result['total'], $this->totalwords[0], $this->totalwords[1], $this->totalwords[2]); $this->setResults(); } }
function addSubscribe() { $objResponse = new xajaxResponse(); if (!get_uid(false)) { return $objResponse; } if (!verify::isSubscribeUser()) { verify::addSubscribeUser(); $count = verify::getCountSubscribe(); $objResponse->assign('count_subscribe', 'innerHTML', verify::converNumbersTemplate($count)); $objResponse->assign('count_subscribe_text', 'innerHTML', ending($count, 'пользователь', 'пользователя', 'пользователей')); $objResponse->script("\$('button_send').dispose(); \$('send_success').removeClass('b-fon_hide');"); } else { return $objResponse; } return $objResponse; }
function recalcRecipients($post) { $objResponse = new xajaxResponse(); if (trim($post)) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/mailer.php'; if (get_magic_quotes_runtime() || get_magic_quotes_gpc()) { $post = stripslashes($post); } $post = iconv('CP1251', 'UTF-8', $post); $_post = json_decode($post, true); foreach ($_post as $k => $v) { if ($v['name'] == 'attachedfiles_session') { continue; } $result[$v['name']] = iconv('UTF-8', 'CP1251', $v['value']); } $url = http_build_query($result); parse_str($url, $output); $mailer = new mailer(); $filter = $mailer->loadPOST($output); $cnt = $mailer->getCountRecipients(array('frl', 'emp'), $filter); if ($filter['filter_emp'] > 0 && $filter['filter_frl'] > 0) { $sum = array_sum($cnt); } elseif ($filter['filter_emp'] > 0) { $sum = $cnt[0]; } elseif ($filter['filter_frl'] > 0) { $sum = $cnt[1]; } else { $sum = array_sum($cnt); } $sum = $mailer->calcSumRecipientsCount($filter, $cnt); $text = number_format($sum, 0, ',', ' ') . ' ' . ending($sum, 'человек', 'человека', 'человек'); $objResponse->assign('all_recipients_count', 'innerHTML', $text); $objResponse->assign('emp_recipients_count', 'innerHTML', number_format($cnt[0], 0, ',', ' ')); $objResponse->assign('frl_recipients_count', 'innerHTML', number_format($cnt[1], 0, ',', ' ')); } return $objResponse; }
/** * Отправить повторно код для * подтверждения сохранения финансов * на текущий номер. * * @return \xajaxResponse */ function resendAcceptCode() { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/sms_gate_a1.php'; $objResponse = new xajaxResponse(); $uid = get_uid(false); if ($uid > 0 && isset($_SESSION['sms_accept_phone'])) { unset($_SESSION['sms_accept']); $sms_gate = new sms_gate_a1($_SESSION['sms_accept_phone']); if (!$sms_gate->isNextSend()) { $sms_gate->sendAuthCellCode(sms_gate::TYPE_ACTIVATE); $_SESSION['sms_accept_code'] = $sms_gate->getAuthCode(); unset($_SESSION['sms_accept_try']); if (SMS_GATE_DEBUG) { $objResponse->script("\$('sms_accept_code').set('value', '{$_SESSION['sms_accept_code']}')"); } $objResponse->alert('Код выслан повторно.'); } else { $timer = $sms_gate->next_time_send - time(); $objResponse->alert("\n Следующее сообщение можно будет послать через {$timer} " . ending($timer, 'секунду', 'секунды', 'секунд')); } $objResponse->script("\$('sms_accept_error').addClass('b-layout__txt_hide'); \$('sms_accept_code').getParent().removeClass('b-combo__input_error');"); } return $objResponse; }
function sendCode() { $objResponse = new xajaxResponse(); require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/sms_gate_a1.php'; $uid = get_uid(false); if (!$uid) { return $objResponse; } $reqv = sbr_meta::getUserReqvs($uid); $ureqv = $reqv[$reqv['form_type']]; $sms_gate = new sms_gate_a1($ureqv['mob_phone']); $info = $sms_gate->getInfoSend(); if (!$sms_gate->isNextSend()) { $sms_gate->sendAuthCellCode(); $_SESSION['sms_auth_code_now'] = $sms_gate->getAuthCode(); if (SMS_GATE_DEBUG) { $code_debug = $sms_gate->getAuthCode(); } } else { $timer = $sms_gate->next_time_send - time(); if ($timer > 0) { $objResponse->alert("Следующее сообщение можно будет послать через {$timer} " . ending($timer, 'секунду', 'секунды', 'секунд')); } } if (SMS_GATE_DEBUG && !$code_debug) { $code_debug = $info['data']; } $callback_js = 'a_sms_disabled_safety'; $callback_resend = 'sendCode'; $sms_title = 'Подтверждение действий'; $sms_btn = 'Отправить'; ob_start(); include $_SERVER['DOCUMENT_ROOT'] . '/sbr/tpl.auth_sms_popup.php'; $out = ob_get_clean(); $objResponse->assign('auth_popup', 'innerHTML', $out); $objResponse->script("\$('auth_popup').show(); \$('auth_popup').removeClass('b-shadow_hide'); shadow_popup();"); return $objResponse; }
function CalcPaidAdvice($sum, $scheme) { $objResponse = new xajaxResponse(); require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/exrates.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/sbr.php"; $exrates = new exrates(); if (intval($sum) <= 0) { $objResponse->assign("sum_fm", "value", ""); $objResponse->assign("sum_rating", "innerHTML", ""); return $objResponse; } $advice = new paid_advices(); $EXR = $exrates->GetAll(); if ($scheme == 1) { $sum_fm = round($sum / $EXR[13], 2); $FM = round($sum * paid_advices::PAID_COMMISION, 2); $RT = $advice->getSBRRating($sum); $html_rt = 'и получите <strong>' . $RT . '</strong> ' . ending($RT, "балл", "балла", "баллов") . ' рейтинга'; if ($sum < sbr_stages::MIN_COST_RUR_PDRD) { $objResponse->script("\$('error_budget').show();"); } else { $objResponse->script("\$('error_budget').hide();"); } $objResponse->assign("sum_fm", "value", $FM); $objResponse->assign("sum_rating", "innerHTML", $html_rt); } else { if ($scheme == 2) { $RUB = round($sum / paid_advices::PAID_COMMISION, 2); $sum_fm = round($RUB, 2); $RT = $advice->getSBRRating($sum); $html_rt = 'и получите <strong>' . $RT . '</strong> ' . ending($RT, "балл", "балла", "баллов") . ' рейтинга'; if ($RUB < sbr_stages::MIN_COST_RUR_PDRD) { $objResponse->script("\$('error_budget').show();"); } else { $objResponse->script("\$('error_budget').hide();"); } $objResponse->assign("sum_rub", "value", $RUB); $objResponse->assign("sum_rating", "innerHTML", $html_rt); } } return $objResponse; }
/** * Форматирует число в цену в рублях и копейках. * * @param float $L число * * @return string */ function num2strEx($L) { include_once dirname(__FILE__) . '/sbr.php'; global $_1_2, $_1_19, $des, $hang, $namerub, $nametho, $namemil, $namemrd, $kopeek; $L = round($L, 2); $source = $L; $kop = 100 * (string) round($L - (int) $L, 2); $L = intval($L); $s = ' '; $s1 = ' '; $s2 = ' '; if ($L == 0) { $s .= 'ноль рублей Российской Федерации '; } if ($L >= 1000000000) { $many = 0; semantic(intval($L / 1000000000), $s1, $many, 3); $s .= $s1 . $namemrd[$many]; $L %= 1000000000; } if ($L >= 1000000) { $many = 0; semantic(intval($L / 1000000), $s1, $many, 2); $s .= $s1 . $namemil[$many]; $L %= 1000000; if ($L == 0) { $s = rtrim($s) . ' рублей Российской Федерации '; } } if ($L >= 1000) { $many = 0; semantic(intval($L / 1000), $s1, $many, 1); $s .= $s1 . $nametho[$many]; $L %= 1000; if ($L == 0) { $s = rtrim($s) . ' рублей Российской Федерации '; } } if ($L != 0) { $many = 0; semantic($L, $s1, $many, 0); $s .= rtrim($s1) . ' ' . trim($namerub[$many]) . ' '; } if ($kop > 0) { $s .= str_pad($kop, 2, '0', STR_PAD_LEFT) . ending($kop, ' копейка', ' копейки', ' копеек'); } else { $s .= '00 копеек'; } setlocale(LC_ALL, 'ru_RU.CP1251'); $s = ucfirst(trim($s)); setlocale(LC_ALL, 'en_US.UTF-8'); return trim(sbr_meta::view_cost((double) $source, null, false, ',', ' ') . ' (' . trim($s) . ')'); }
data-period="<?php echo $data['month']; ?> <?php echo ending($data['month'], 'месяц', 'месяца', 'месяцев'); ?> "> <span class="b-layout__txt b-layout__txt_inline-block b-layout__txt_width_90 <?php echo $data['opcode'] == $service['last_operation']['op_code'] ? 'b-layout__txt_color_808080' : ''; ?> b-layout__txt_fontsize_15 select-name"> <?php echo $data['month']; ?> <?php echo ending($data['month'], 'месяц', 'месяца', 'месяцев'); ?> </span> <span class="b-layout__txt b-layout__txt_inline-block b-layout__txt_width_90 b-layout__txt_fontsize_15 b-layout__txt_color_fd6c30 b-layout__txt_nowrap"><?php echo $data['cost']; ?> рублей</span> <?php if ($eco > 0) { ?> <span class="b-layout__txt b-layout__txt_fontsize_11 b-layout__txt_color_6db335 b-layout__txt_nowrap" style="padding-left:90px;"> <?php echo $eco; ?> руб. экономии</span> <?php }
<p>Из представленных ниже вариантов выберите наиболее подходящий для вашего проекта:</p> <div class="form nr-vars"> <b class="b1"></b> <b class="b2"></b> <div class="form-in"> <div class="form-block first"> <h4><a href="/users/<?php echo $sbr->login; ?> /setup/projects/">Начало «Безопасной Сделки» в открытом проекте</a></h4> <p>Определитесь с исполнителем в одном из ваших проектов и предложите ему провести «Безопасную Сделку».<br /> <?php if ($projects_cnt['open']) { ?> На данный момент у вас <?php echo $projects_cnt['open'] . ending($projects_cnt['open'], ' открытый проект', ' открытых проекта', ' открытых проектов'); ?> , в любом из них вы можете начать «Безопасную Сделку».</p> <?php } ?> </div> <div class="form-block"> <h4><a href="?site=create">Начало «Безопасной Сделки» без публикации проекта</a></h4> <p>Ваш проект не будет опубликован на главной странице — выбирайте этот вариант, если вы уже точно знаете исполнителя.</p> </div> <div class="form-block last"> <h4><a href="/public/">Публиковать проект с возможностью «Безопасной Сделки»</a></h4> <p>Найдите исполнителя, опубликовав проект в Ленте проектов на главной странице сайта, и заключите с ним «Безопасную Сделку».</p> </div> </div>
?> <?php echo ending($count, 'предложение', 'предложения', 'предложений'); ?> </a> <?php if ($prj['new_messages_cnt'] && ($is_owner || $is_adm)) { ?> <br>(<a class="b-layout__link b-layout__link_color_6db335" href="<?php echo $blink; ?> "><?php echo $prj['new_messages_cnt']; ?> <?php echo ending($prj['new_messages_cnt'], 'новое сообщение', 'новых сообщения', 'новых сообщений'); ?> </a>) <?php } ?> </div> <?php } ?> <?php if ($prj['logo_name']) { ?> <div class="fl2_offer_logo"> <a href="http://<?php
<?php if ($service['src_id'] == 0) { ?> в общем каталоге <?php } else { if ($service['src_id'] == -1) { //if ?> на главной странице <?php } else { //elseif ?> в каталоге «<?php echo professions::GetProfName($service['src_id']); ?> » <?php } } //else ?> на <?php echo $service['op_count']; ?> <?php echo ending($service['op_count'], 'неделю', 'недели', 'недель'); ?> </div> </div>
<?php if (!isset($uid) || $uid <= 0) { //Выводим список схожих проектов/ваканси/конкурсов $prj = new new_projects(); $prj_content = $prj->getSimilarProjects($project['id'], 5, $project_specs); if ($prj_content) { //Список специализаций через запятую $str_specs = projects::getGroupLinks($project_specs); ?> <div class="b-layout b-layout_margright_270 b-layout_marg_null_ipad"> <h3 class="b-layout__title b-layout__title_padbot_20"> <?php if ($str_specs) { ?> Другие проекты по <?php echo ending(count($project_specs), 'специализации', 'специализациям', 'специализациям'); ?> «<?php echo projects::getGroupLinks($project_specs); ?> » <?php } else { ?> Возможно вас заинтересуют другие проекты <?php } ?> </h3> <?php
/** * корректирует сообщение в зависимости от количества непросмотренных событий * @param array $notify передается по ссылке */ private function _correctMessage(&$notify) { switch ($notify['page']) { case 'bill': if ($notify['count'] > 1) { $notify['message'] = $notify['count'] . ending($notify['count'], ' новое событие', ' новых события', ' новых событий') . ' в личном счете'; } break; } }
_f"><?php echo sbr_meta::view_cost($sbr->data['cost'], exrates::BANK); ?> </div> </div> </div> <div class="b-tax__level b-tax__level_padtop_15"> <div class="b-tax__txt b-tax__txt_bold b-tax__txt_width_220 b-tax__txt_inline-block">Вы получите</div> <div class="b-tax__txt b-tax__txt_inline-block"><span class="b-tax__txt b-tax__txt_bold b-tax__txt_fontsize_15"><?php echo sbr_meta::view_cost($sbr->cost, exrates::BANK); ?> </span> и <span><?php echo $RT; ?> </span> <?php echo ending($RT, 'балл', 'балла', 'баллов'); ?> рейтинга</div> </div> </div> </div> </div> </div> </div> </div> </div> <?php } //if ?>
/** * Создание отложенной платной опции на основе опции созданной в мастере * * @param type $option Данные опции созданной в мастере @see table - wizad_billing * @return null|boolean */ public function createDraftAccountOperation($option) { global $DB; switch ($option['op_code']) { // Публикация конкурса case 9: case 106: $descr = "Публикация конкурса"; $count = 1; $op_type = 'contest'; $parent_id = $option['parent']; $src_id = $str_option = null; break; // Платный проект/конкурс // Платный проект/конкурс case 53: $step_emp = new step_employer(); $project = $step_emp->getProjectById($option['parent']); $parent_id = $option['parent']; if ($project['kind'] == 7) { $title = "конкурс"; $op_type = 'contest'; } else { $title = "проект"; $op_type = 'project'; } $count = 1; $src_id = $str_option = null; $descr = "Платный {$title} / "; switch ($option['option']) { case step_employer::PROJECT_OPTION_TOP: $str_option = 'top'; $count = $project['top_count']; $descr .= "закрепление наверху на " . (int) $project['top_count'] . " " . ending($project['top_count'], "день", "дня", "дней"); break; case step_employer::PROJECT_OPTION_COLOR: $str_option = 'color'; $descr .= "подсветка фоном"; break; case step_employer::PROJECT_OPTION_BOLD: $str_option = 'bold'; $descr .= "жирный шрифт"; break; case step_employer::PROJECT_OPTION_LOGO: $str_option = 'logo'; $descr .= "логотип"; $src_id = $project['logo_id']; break; } break; // Покупка аккаунта ПРО // Покупка аккаунта ПРО case 48: case 49: case 50: case 51: case 76: case 15: $descr = "Аккаунт PRO"; $count = 1; $src_id = $parent_id = $str_option = $op_type = null; break; // Покупка платных ответов // Покупка платных ответов case step_freelancer::OFFERS_OP_CODE: $descr = "Покупка ответов на проекты (кол-во: {$option['option']})"; $count = $option['option']; $src_id = $parent_id = $str_option = $op_type = null; break; } $pay_options = array("uid" => wizard::getUserIDReg(), "op_code" => $option['op_code'], "op_type" => $op_type, "option" => $str_option, "parent_id" => $parent_id, "src_id" => $src_id, "op_count" => $count, "ammount" => $option['ammount'], "descr" => $descr, "comment" => $descr, "status" => null); $id = $DB->insert("draft_account_operations", $pay_options, 'id'); if ($id) { $this->draft[] = $id; return $option['id']; } return false; }
echo $inoffice; ?> рублей</div> </td> </tr> <?php } ?> <?php if ($top && $top_days) { ?> <tr class="b-layout__tr"> <td class="b-layout__left b-layout__left_width_200"> <div class="b-layout__txt b-layout__txt_bold b-layout__txt_padbot_5">Закрепление наверху<br />ленты на <?php echo $top_days . " " . ending($top_days, "день", "дня", "дней"); ?> </div> </td> <td class="b-layout__right"> <div class="b-layout__txt b-layout__txt_color_fd6c30 b-layout__txt_bold"><?php echo $top; ?> рублей</div> </td> </tr> <?php } ?> <?php if ($color) {
$themesCount = commune::getCommuneThemesCount($comm['id']); if (hasPermissions('communes')) { $themes_count = $themesCount['count']; } elseif ($comm['author_id'] == $uid || $comm['is_moderator'] === 't') { $themes_count = $themesCount['count'] - $themesCount['admin_hidden_count']; } else { $themes_count = $themesCount['count'] - $themesCount['hidden_count']; } $for_admin = $comm['author_id'] == uid || hasPermissions('communes') ? true : false; ?> <?php echo $themes_count . ' ' . ending($themes_count, 'пост', 'поста', 'постов'); ?> </a> <?php echo $mAcceptedCnt . ' ' . ending($mAcceptedCnt, 'участник', 'участника', 'участников'); ?> </div> <?php // дата создания ?> <div class="b-post__txt b-post__txt_padbot_10 b-post__txt_fontsize_11">Создано <?php echo __commPrntAgeEx($comm); ?> </div> <?php // создатель ?> <div class="b-post__txt b-post__txt_padbot_30 b-post__txt_fontsize_11">Создатель <span class="b-username b-username_bold b-username_fontsize_11">
/** * Создает новую категорию. * * @param array $frm Данные для создания категории */ function AddCategory($frm) { global $session; session_start(); $objResponse = new xajaxResponse(); $name = $frm['commune_fld_add_category_name']; $is_only_for_admin = $frm['commune_fld_add_category_only_for_admin']; $commune_id = $frm['commune_id']; $om = $frm['om']; $uid = get_uid(false); if ($uid) { $status = commune::GetUserCommuneRel($commune_id, $uid); } if ($status['is_moderator'] == 1 || $status['is_admin'] == 1 || $status['is_author'] == 1 || hasPermissions('communes')) { $error = 0; $name = trim(strip_tags(stripslashes($name))); if ($name == '' || strlen($name) > commune::MAX_CATEGORY_NAME_SIZE) { $error = 1; $objResponse->script("alert('Название раздела не может быть пустым и должно содержать не более " . commune::MAX_CATEGORY_NAME_SIZE . ' ' . ending(commune::MAX_CATEGORY_NAME_SIZE, ' символ', ' символа', ' символов') . "');"); $objResponse->script('communeObj.initCategories();'); } if (commune::issetCategory($name, $commune_id)) { $error = 1; $objResponse->script("alert('Раздел с таким названием уже существует.');"); $objResponse->script('communeObj.initCategories();'); } if (!$error) { commune::addCategory($name, $is_only_for_admin, $commune_id); $objResponse->script("xajax_ShowCategoriesList({$commune_id},1,{$om});"); //$objResponse->script("CommuneCancelAddCategory();"); $objResponse->script('communeObj.initCategories();'); $objResponse->assign('editmsg', 'innerHTML', __commPrntCommentForm($commune_id, $om)); $objResponse->script('xajax_CheckDraftsCommune(); initWysiwyg();'); } } return $objResponse; }
echo $extraLinkStyle; ?> " href="?site=Stage&id=<?php echo $stage->data['id']; ?> "><?php echo reformat($stage->data['name'], 24, 0, 1); ?> </a></div> </td> <td class="b-layout__middle b-layout__middle_width_175"> <div class="b-layout__txt"><?php echo $stage->data['int_work_time']; ?> <?php echo ending(abs($stage->data['int_work_time']), 'день', 'дня', 'дней'); ?> на этап</div> </td> <td class="b-layout__right b-layout__right_width_400"> <div class="b-layout__txt b-layout__txt_right_0 b-layout__txt_absolute b-layout__txt_padright_15 b-layout__txt_relative b-layout__txt_zindex_1 <?php echo sbr_notification::isReaction($stage->notification) ? '' : 'b-layout__txt_hide'; ?> "><a class="b-layout__link" href="?site=Stage&id=<?php echo $stage->data['id']; ?> "><?php echo sbr_notification::isReaction($stage->notification) ? 'Посмотреть' : 'Перейти в этап'; ?> </a></div> <div class="b-layout__txt b-layout__txt_relative <?php
if (!$sbr_currents) { ?> <div class="b-layout__txt b-layout__txt_padleft_20 b-layout__txt_padtop_8"> <?php echo $count_sbr && ($filter == '' || $filter == 'complete') ? '' : sbr::$name_filter[$filter]; ?> </div> <?php if (!$count_sbr && $count_old_sbr > 0 && $filter == '') { ?> <div class="b-layout__txt_padtop_20 b-layout__txt_padleft_20 b-layout__txt_fontsize_22"> <a href="?site=archive" class="b-layout__link b-layout__link_bordbot_dot_0f71c8"><?php echo $count_old_sbr; ?> <?php echo ending($count_old_sbr, 'сделка, завершенная', 'сделки, завершенные', 'сделок, завершенных'); ?> в старом интерфейсе (перенесено в "Архив")</a> </div> <?php } //if } else { ?> <?php // проверяем есть ли хоть одна сделка в состоянии ЗАРЕЗЕРВИРОВАТЬ ДЕНЬГИ $needReserveSbrExists = false; if ($filter === 'disable') { foreach ($sbr_currents as $curSBR) {
<?php /** * Попап при заказе ТУ для заказчика. */ $title = reformat($title, 30, 0, 1); $price = tservices_helper::cost_format($price, true, false, false); $days = $days . ' ' . ending($days, 'день', 'дня', 'дней'); $show_popup = isset($_POST['popup']); ?> <div id="tservices_orders_status_popup" class="b-shadow b-shadow_center b-shadow_width_520 <?php if (!$show_popup) { ?> b-shadow_hide <?php } ?> b-shadow__quick" style="display:block;"> <div class="b-shadow__body b-shadow__body_pad_15_20"> <h2 class="b-layout__title"> Заказ услуги </h2> <div class="b-layout__txt b-layout__txt_padbot_10"> Вы заказываете у исполнителя <b><?php echo $frl_fullname; ?> </b><br/> услугу «<b><?php echo $title; ?> </b>» <br/>
<?php $g_page_id = "0|50"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/stdf.php"; session_start(); $months = __paramInit('int', 'months', null, 0); $weeks = __paramInit('int', 'weeks', null, 0); $cost = __paramInit('int', 'cost', null, 0); if (!get_uid(0) || is_emp() || !($months || $weeks)) { include $_SERVER['DOCUMENT_ROOT'] . "/403.php"; exit; } if ($months) { $period = $months . " " . ending($months, "мес¤ц", "мес¤ца", "мес¤цев"); } elseif ($weeks) { $period = $weeks . " " . ending($weeks, "неделю", "недели", "недель"); } $stretch_page = true; $header = "../header.php"; $footer = "../footer.html"; $content = "tpl.pro_payed.php"; include "../template2.php";
/** * Проверяет параметры запроса для выставления счета в системе. * * @param array $request параметры ($_POST). * @param int $account_id ID счета. * @return array $error массив ошибок. */ function validate($request, $account_id) { $error = NULL; foreach ($request as $f => $v) { $err = NULL; $v = htmlspecialchars(stripslashes(trim($v))); switch ($f) { case 'phone': if (!preg_match('/^\\d{10}$/', $v)) { $err = 'Неверный формат'; } break; case 'sum': setlocale(LC_ALL, 'en_US.UTF-8'); $v = floatval($v); if ($v > self::MAX_SUM) { $err = 'Слишком большая сумма'; } else { if ($v < self::MIN_SUM) { $err = 'Минимальная сумма — ' . self::MIN_SUM . ' руб.'; } } break; case 'comment': $v = substr($v, 0, 255); break; // case 'rndnum': // $cap = new captcha(); // if(!$cap->checkNumber($v)) $err = 'Код введен неверно'; // break; } if ($err) { $error[$f] = $err; } $this->form[$f] = $v; } // различные ограничения по телефонному номеру if (!$error['phone']) { $bFound = false; $aPhone = $this->DB->rows('SELECT * FROM qiwi_phone WHERE account_id = ?i', $account_id); foreach ($aPhone as $aCurrPhone) { if ($request['phone'] == $aCurrPhone['phone']) { $bFound = true; break; } } // 1. ограничиваем количество используемых телефонных номеров if (self::MAX_PHONE_NUM > 0 && count($aPhone) >= self::MAX_PHONE_NUM) { if (!$bFound) { $error['max_phone_num'] = 1; } } // 2. ограничиваем количество платежей с одного номера $memBuff = new memBuff(); $sKey = 'qiwiPhone' . $account_id . '_' . $aCurrPhone['phone']; $aData = $memBuff->get($sKey); $nStamp = time(); if (!$error['max_phone_num'] && count($this->aOperatorLimit) && $aData && $bFound && $aCurrPhone['operator_id']) { if (isset($aData['wait']) && $nStamp < $aData['wait']) { $nLast = $aData['wait'] - $nStamp; $sLast = ''; if ($nLast > 60) { $nTime = ceil($nLast / 60); $nLast %= 60; $sLast .= $nTime > 0 ? $nTime . ' ' . ending($nTime, 'минуту', 'минуты', 'минут') : ''; } if ($nLast >= 1) { $sLast .= ($sLast ? ' и ' : '') . $nLast . ' ' . ending($nLast, 'секунду', 'секунды', 'секунд'); } $error['max_pay_num'] = 'Количество платежей с номера ' . $aCurrPhone['phone'] . ' за последний час<br/> превысило допустимое число. Повторите попытку через ' . $sLast; } else { foreach ($this->aOperatorLimit as $nOpID => $nMaxPay) { if ($aCurrPhone['operator_id'] == $nOpID && $nStamp - $aData['time'] <= 3600 && $aData['cnt'] >= $nMaxPay) { $aData['wait'] = $nStamp + 3540; $memBuff->set($sKey, $aData, 3600); $error['max_pay_num'] = 'Количество платежей с номера ' . $aCurrPhone['phone'] . ' за последний час<br/> превысило допустимое число. Повторите попытку через 1 час'; } } } } } //--------------------------------------- return $error; }
?> <span style="<?php echo $active_stage->id == $curr_stage->id && !$all_agree ? "" : "display:none;"; ?> " id="master-stage-<?php echo $curr_stage->id; ?> " class="master-stage"> <div class="b-layout__txt b-layout__txt_padbot_30 b-layout__txt_bold">Бюджет этапа <?php echo sbr_meta::view_cost($curr_stage->data['cost'], $sbr->cost_sys); ?>          Время на этап <?php echo $curr_stage->data['work_days']; ?> <?php echo ending(abs($curr_stage->data['work_days']), 'день', 'дня', 'дней'); ?> </div> <table class="b-layout__table b-layout__table_width_full" cellpadding="0" cellspacing="0" border="0"> <tr class="b-layout__tr"> <td class="b-layout__left b-layout__left_width_72ps"> <h2 class="b-layout__title">Техническое задание</h2> <div class="b-layout__txt b-layout__txt_padbot_10 b-layout__txt_fontsize_15"> <?php echo reformat($curr_stage->data['descr'], 70, 0, 0, 1); ?> </div> <?php if ($curr_stage->data['attach']) { ?>
<?php $type = $pro_type[$service['op_code']]; ?> <div class="b-layout b-layout_pad_10 b-layout_bord_e6 b-layout_relative b-layout_margbot_10"> <span class="b-page__desktop b-page__ipad"><span class="b-icon b-icon__spro b-icon__spro_e b-icon_absolute b-icon_left_10" title="PRO"></span></span> <span class="b-layout__txt b-layout__txt_float_right b-layout__txt_fontsize_15 b-layout__txt_color_fd6c30 b-layout__txt_padtop_2 b-layout__txt_padleft_10"><?php echo to_money($service['ammount']); ?> руб.</span> <div class="b-layout__txt b-layout__txt_fontsize_15 b-layout__txt_padleft_70 b-layout__txt_padleft_null_iphone b-layout__txt_padtop_2">Профессиональный аккаунт на <?php echo $type['is_test'] ? '1 неделю' : $type['month'] . ' ' . ending($type['month'], 'месяц', 'месяца', 'месяцев'); ?> </div> </div>
include $_SERVER['DOCUMENT_ROOT'] . "/sbr/tpl.help.php"; // Шапка СБР include $_SERVER['DOCUMENT_ROOT'] . "/sbr/tpl.header.php"; // Список СБР include $_SERVER['DOCUMENT_ROOT'] . "/sbr/tpl.sbr-content.php"; if ($count_sbr > 0 && ($filter == '' || $filter == 'complete')) { ?> <div class="b-layout__txt b-layout__txt_padleft_20 b-layout__txt_fontsize_22 b-layout__txt_padtop_30 b-layout__txt_padbot_20" id="button_load_currents"> <a class="b-layout__link b-layout__link_bordbot_dot_0f71c8" id="load_link" href="javascript:void(0)" onclick="xajax_loadCurrents('<?php echo $filter; ?> ', <?php echo $now_count; ?> )"><?php echo $sbr_currents ? "Еще " : ""; echo $count_sbr; ?> <?php echo ending($count_sbr, "завершенная сделка", "завершенные сделки", "завершенных сделок"); ?> </a> <a class="b-layout__link b-layout__link_bordbot_dot_0f71c8 b-layout_hide" id="show_link" href="javascript:void(0)" onclick="toggle_currents(this);">Свернуть завершенные сделки</a> </div> <?php } else { //if ?> <span id="button_load_currents"> </span> <?php }
/** * Скрывает или отображает платные проекты. * * @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("//", " ", $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; }
echo $prj['mainprofname'] . " / " . $prj['profname']; ?> </strong></a> <?php if ($user_keys) { ?> <p><?php echo implode(", ", $links_keyword); if ($kword_count > kwords::MAX_KWORDS_PORTFOLIO) { ?> <span class="prtfl-hellip">…</span ><span class="prfl-tags"><a href="javascript:void(0)">Все <?php echo $kword_count; ?> <?php echo ending($kword_count, 'тег', 'тега', 'тегов'); ?> </a></span ><span class="prfl-tags-more" style="display:none"><?php echo implode(',', $links_keyword_hide); ?> </span> <?php } ?> </p> <?php } //if ?> </td>