/**
 * @param $frm - данные запроса
 * @param $type - тип страницы, с которой была запрошена форма быстрого редактирования проекта
 *                 1 - лента на главной, 
 *                 2 - редактируется конкурс,
 *                 3 - страница проекта в профиле работодателя,
 *                 4 - проект в списке в профиле работодателя
 * */
function quickprjedit_save_prj($frm, $type)
{
    $objResponse = new xajaxResponse();
    if (hasPermissions('projects')) {
        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/projects.php';
        $oprj = new new_projects();
        $project = $oprj->getPrj($frm['id']);
        if ($project['id']) {
            $objResponse->script('popupQEditPrjHideErrors();');
            $key = $frm['tmpid'];
            $tmpPrj = new tmp_project($key);
            $tmpPrj->init(2);
            $errors = array();
            $frm['name'] = trim($frm['name']);
            $frm['descr'] = trim($frm['descr']);
            if ($frm['link'] == 'Адрес сайта') {
                $frm['link'] = '';
            }
            $frm['link'] == trim($frm['link']);
            if (!empty($frm['link'])) {
                if (strpos($frm['link'], 'http://') === 0) {
                    $protocol = 'http://';
                }
                if (strpos($frm['link'], 'https://') === 0) {
                    $protocol = 'https://';
                }
                if ($protocol == '') {
                    $protocol = 'http://';
                }
                $frm['link'] = $protocol . ltrim($frm['link'], $protocol);
                if (!is_url($frm['link'])) {
                    $errors[] = 'logourl';
                }
            }
            if (empty($frm['name'])) {
                $errors[] = 'name';
            }
            if (empty($frm['descr'])) {
                $errors[] = 'descr';
            }
            if ($frm['pf_city']) {
                $frm['city'] = $frm['pf_city'];
            }
            if ($project['kind'] == 7) {
                if (!preg_match("/^([0-9]{1,2})\\-([0-9]{1,2})\\-([0-9]{4})\$/", $frm['end_date'], $o1) || !checkdate($o1[2], $o1[1], $o1[3])) {
                    $errors[] = 'end_date';
                }
                if (!preg_match("/^([0-9]{1,2})\\-([0-9]{1,2})\\-([0-9]{4})\$/", $frm['win_date'], $o2) || !checkdate($o2[2], $o2[1], $o2[3])) {
                    $errors[] = 'win_date';
                }
                if (!in_array('end_date', $errors) && mktime(0, 0, 0, $o1[2], $o1[1], $o1[3]) <= mktime(0, 0, 0)) {
                    $errors[] = 'end_date_past';
                }
                if (!in_array('end_date', $errors) && mktime(0, 0, 0, $o2[2], $o2[1], $o2[3]) <= mktime(0, 0, 0, $o1[2], $o1[1], $o1[3])) {
                    $errors[] = 'win_date_past';
                }
            }
            if (!count($errors)) {
                $c = $frm['categories'];
                $sc = $frm['subcategories'];
                foreach ($frm['categories'] as $sKey => $value) {
                    if ($value == 0) {
                        continue;
                    }
                    $check[] = $value . '_' . $sc[$sKey];
                }
                $uniq = array_unique($check);
                foreach ($uniq as $val) {
                    list($cat, $subcat) = explode('_', $val);
                    $check_array[$cat][] = $subcat;
                }
                $categories = array();
                foreach ($check_array as $k => $val) {
                    if (count($val) > 1 && array_search(0, $val) !== false) {
                        $categories[] = array('category_id' => $k, 'subcategory_id' => 0);
                        unset($check_array[$k]);
                    } else {
                        foreach ($val as $m => $v) {
                            $categories[] = array('category_id' => $k, 'subcategory_id' => $v);
                        }
                    }
                }
                $tmpPrj->setProjectField('name', change_q_x($frm['name']), true);
                $tmpPrj->setProjectField('descr', change_q_x($frm['descr'], false, true, '', false, false));
                $tmpPrj->setProjectField('pro_only', $frm['pro_only'] == 1 ? 't' : 'f');
                $tmpPrj->setProjectField('verify_only', $frm['verify_only'] == 1 ? 't' : 'f');
                $tmpPrj->setProjectField('strong_top', (int) $frm['strong_top']);
                $tmpPrj->setProjectField('prefer_sbr', $frm['prefer_sbr'] == 1 ? 't' : 'f');
                $tmpPrj->setProjectField('urgent', $frm['is_urgent'] == 1 ? 't' : 'f');
                $tmpPrj->setProjectField('hide', $frm['is_hide'] == 1 ? 't' : 'f');
                switch ($frm['kind']) {
                    case 1:
                        $tmpPrj->setProjectField('country', 0);
                        $tmpPrj->setProjectField('city', 0);
                        $tmpPrj->setProjectField('kind', $frm['kind']);
                        break;
                    case 4:
                        $tmpPrj->setProjectField('country', $frm['country']);
                        $tmpPrj->setProjectField('city', $frm['city']);
                        $tmpPrj->setProjectField('kind', $frm['kind']);
                        break;
                }
                if ($project['kind'] == 7) {
                    $tmpPrj->setProjectField('end_date', $frm['end_date']);
                    $tmpPrj->setProjectField('win_date', $frm['win_date']);
                    $tmpPrj->clearWinners();
                }
                $tmpPrj->setCategories($categories);
                $tmpPrj->setProjectField('link', $frm['link']);
                $tmpPrj->setProjectField('is_color', $frm['is_color'] == 1 ? 't' : 'f');
                $tmpPrj->setProjectField('is_bold', $frm['is_bold'] == 1 ? 't' : 'f');
                $tmpPrj->setAddedTopDays($frm['top_ok'] == 1 ? $frm['top_days'] : 0);
                if (!$project['folder_id']) {
                    $tmpPrj->setProjectField('folder_id', 0);
                }
                require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/attachedfiles.php';
                $attachedfiles = new attachedfiles($frm['attachedfiles_session']);
                $attachedfiles_files = $attachedfiles->getFiles(array(1, 3, 4));
                $tmpPrj->addAttachedFiles($attachedfiles_files);
                $attachedfiles->clear();
                $tmpPrj->saveProject(get_uid(false), $ttt);
                require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/project_exrates.php';
                require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/stop_words.php';
                $stop_words = new stop_words(hasPermissions('projects'));
                $objResponse->script('popupQEditPrjHide();');
                switch ($type) {
                    case 1:
                    case 4:
                        // Лента проектов
                        global $session;
                        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/projects.php';
                        $prj_id = $project['id'];
                        $obj_project = new new_projects();
                        $tproject = $obj_project->getProjects($num, -1, 1, false, null, false, true, $prj_id);
                        $this_kind = $tproject[0]['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 = $tproject[0];
                        $row = $this_project;
                        if ($this_edit_mode || $this_project['kind'] == 2 || $this_project['user_id'] == $this_uid || $this_project['offer_id'] || $this_pro_last) {
                            $this_show_data = 1;
                            $row['show_data'] = 1;
                        } else {
                            $this_show_data = 0;
                            $row['show_data'] = 0;
                        }
                        $descr = $row['descr'];
                        $descr = preg_replace('/^ /', "", $descr);
                        $descr = preg_replace("/(\n) /", "\$1", $descr);
                        $descr = reformat(strip_tags(LenghtFormatEx($descr, 180), '<br />'), 50, 1, 0, 1);
                        $descr = preg_replace("//", '&nbsp;', $descr);
                        $row['descr'] = $descr;
                        $row['t_is_payed'] = $this_project['payed'] && $this_project['kind'] != 2 && $this_project['kind'] != 7;
                        $row['t_is_contest'] = $this_project['kind'] == 2 || $this_project['kind'] == 7;
                        $row['t_pro_only'] = $this_project['pro_only'] == 't';
                        $row['t_verify_only'] = $this_project['verify_only'] == 't';
                        $row['t_hide'] = $this_project['hide'] == 't';
                        $row['t_urgent'] = $this_project['urgent'] == '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'];
                        $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');
                        $row['friendly_url'] = getFriendlyURL('project', $row['id']);
                        ob_start();
                        if ($type == 1) {
                            $project = projects::initData($row);
                            require_once $_SERVER['DOCUMENT_ROOT'] . '/projects/tpl.lenta-item.php';
                        } else {
                            require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/employer.php';
                            $user = new employer();
                            $user->GetUserByUID($this_project['user_id']);
                            require_once $_SERVER['DOCUMENT_ROOT'] . '/projects/tpl.employer-project-item.php';
                        }
                        $html_data = ob_get_contents();
                        ob_end_clean();
                        $objResponse->assign("project-item{$prj_id}", 'innerHTML', $html_data);
                        if ($row['is_color'] == 't') {
                            $objResponse->script("\$('project-item{$prj_id}').addClass('b-post_bg_fffded')");
                        } else {
                            $objResponse->script("\$('project-item{$prj_id}').removeClass('b-post_bg_fffded')");
                        }
                        //$objResponse->script('alert("Лента");');
                        //$objResponse->script('window.location.reload();');
                        break;
                    case 2:
                        // Конкурс
                        //$objResponse->script('alert("Конкурс");');
                        $project_exRates = project_exrates::GetAll();
                        $translate_exRates = array(0 => 2, 1 => 3, 2 => 4, 3 => 1);
                        global $session;
                        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/contest.php';
                        $prj_id = $project['id'];
                        $obj_project = new projects();
                        $project = $obj_project->GetPrjCust($prj_id);
                        if (hasPermissions('projects')) {
                            $project_history = $obj_project->GetPrjHistory($prj_id);
                        }
                        $project_attach = $obj_project->GetAllAttach($prj_id);
                        $contest = new contest($project['id'], $uid, is_emp(), $project['user_id'] == $uid, hasPermissions('projects'), is_pro());
                        $contest->GetOffers((string) $_GET['filter']);
                        $project['contest_end'] = mktime() > strtotime($project['end_date']);
                        $project['contest_win'] = mktime() > strtotime($project['win_date']);
                        if (trim($project['contacts']) != '') {
                            $contacts_employer = unserialize($project['contacts']);
                            $empty_contacts_employer = 0;
                            foreach ($contacts_employer as $name => $contact) {
                                if (trim($contact['value']) == '') {
                                    $empty_contacts_employer++;
                                }
                            }
                            $is_contacts_employer_empty = count($contacts_employer) == $empty_contacts_employer;
                        }
                        ob_start();
                        require_once $_SERVER['DOCUMENT_ROOT'] . '/projects/contest_item.php';
                        $html_data = ob_get_contents();
                        ob_end_clean();
                        $objResponse->assign("contest_info_{$prj_id}", 'innerHTML', $html_data);
                        break;
                    case 3:
                        // Проект
                        $project_exRates = project_exrates::GetAll();
                        $translate_exRates = array(0 => 2, 1 => 3, 2 => 4, 3 => 1);
                        $prj_id = $project['id'];
                        $obj_project = new projects();
                        $project = $obj_project->GetPrjCust($prj_id);
                        if (trim($project['contacts']) != '') {
                            $contacts_employer = unserialize($project['contacts']);
                            $empty_contacts_employer = 0;
                            foreach ($contacts_employer as $name => $contact) {
                                if (trim($contact['value']) == '') {
                                    $empty_contacts_employer++;
                                }
                            }
                            $is_contacts_employer_empty = count($contacts_employer) == $empty_contacts_employer;
                        }
                        $project_attach = $obj_project->GetAllAttach($prj_id);
                        ob_start();
                        require_once $_SERVER['DOCUMENT_ROOT'] . '/projects/tpl.prj-main-info.php';
                        $html_data = ob_get_contents();
                        ob_end_clean();
                        $objResponse->assign("project_info_{$project['id']}", 'innerHTML', $html_data);
                        break;
                    default:
                        $objResponse->script('window.location.reload();');
                        break;
                }
            } else {
                $tab1 = 0;
                $tab2 = 0;
                foreach ($errors as $error) {
                    switch ($error) {
                        case 'end_date':
                            $objResponse->script('$("popup_qedit_prj_fld_err_txt_cal1").set("html", "Неправильная дата");');
                            $objResponse->script('popupQEditPrjShowError("cal1");');
                            break;
                        case 'win_date':
                            $objResponse->script('$("popup_qedit_prj_fld_err_txt_cal2").set("html", "Неправильная дата");');
                            $objResponse->script('popupQEditPrjShowError("cal2");');
                            break;
                        case 'end_date_past':
                            $objResponse->script('$("popup_qedit_prj_fld_err_txt_cal1").set("html", "Дата окончания конкурса не может находиться  в прошлом");');
                            $objResponse->script('popupQEditPrjShowError("cal1");');
                            break;
                        case 'win_date_past':
                            $objResponse->script('$("popup_qedit_prj_fld_err_txt_cal2").set("html", "Дата определения победителя должна быть больше даты окончания конкурса");');
                            $objResponse->script('popupQEditPrjShowError("cal2");');
                            break;
                        case 'logourl':
                            $objResponse->script('$("popup_qedit_prj_fld_err_pay").setStyle("display","block");');
                            $objResponse->script('$("popup_qedit_prj_fld_err_pay_txt").set("html", "Ссылка для логотипа указана не верно");');
                            break;
                        default:
                            $objResponse->script('popupQEditPrjShowError("' . $error . '");');
                            break;
                    }
                    if (in_array($error, array('name', 'descr', 'location', 'end_date', 'win_date', 'end_date_past', 'win_date_past'))) {
                        ++$tab1;
                    } elseif (in_array($error, array('logourl'))) {
                        ++$tab2;
                    }
                }
                if ($tab1) {
                    $objResponse->script('popupQEditPrjMenu(1)');
                } elseif ($tab2) {
                    $objResponse->script('popupQEditPrjMenu(2)');
                }
            }
        }
        $objResponse->script('popupQEditIsProcess = false;');
    }
    return $objResponse;
}
Esempio n. 2
0
function quickMASGetYandexKassaLink($frm, $payment, $promo_code)
{
    $objResponse = new xajaxResponse();
    if (is_emp()) {
        global $DB, $host;
        $masssending = new masssending();
        //@todo: не используюутся?
        //$countries = country::GetCountries(TRUE);
        //$prof_groups = professions::GetAllGroupsLite(TRUE);
        //$professions = professions::GetProfList();
        //$exrates = project_exrates::GetAll();
        $uid = get_uid(false);
        //$params['msg'] = stripslashes($frm['msg']);
        $params['msg'] = "Здравствуйте!\n\nПриглашаю ознакомиться с проектом '" . change_q_x(stripslashes($frm['title']), false, false, 'b|i|p|ul|li|s|h[1-6]{1}', false, false) . "' " . str_replace('www.n.fl.ru', 'n.fl.ru', $host) . $frm['link'] . " \n\n\n" . LenghtFormatEx(change_q_x(stripslashes($frm['msg']), false, false, 'b|i|p|ul|li|s|h[1-6]{1}', false, false), 300);
        $params['max_users'] = intval($frm['max_users']);
        $params['max_cost'] = intval($frm['max_cost']);
        $params['is_pro'] = stripslashes($frm['pro']);
        $params['favorites'] = stripslashes($frm['favorites']);
        $params['free'] = stripslashes($frm['free']);
        $params['sbr'] = stripslashes($frm['bs']);
        $params['portfolio'] = stripslashes($frm['withworks']);
        $params['inoffice'] = stripslashes($frm['office']);
        $params['opi_is_verify'] = stripslashes($frm['ver']);
        $tmp = array();
        if ($frm['mass_location_columns'][0] != '0' || $frm['mass_location_columns'][1] != '0') {
            $tmp[] = intval($frm['mass_location_columns'][0]) . ':' . intval($frm['mass_location_columns'][1]);
            $params['locations'] = $tmp;
        }
        if ($frm['f_cats']) {
            $frm['f_cats'] = preg_replace('/,$/', '', $frm['f_cats']);
            $acats = explode(',', $frm['f_cats']);
            $cats_data = array();
            foreach ($acats as $v) {
                $v = preg_replace('/^mass_cat_span_/', '', $v);
                $c = explode('_', $v);
                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';
                }
            }
        }
        $params['professions'] = $cats_data;
        if ($calc = $masssending->Add($uid, $params)) {
            $masssending->ClearTempFiles(session_id());
            //Допустимо использование промокодов
            $masssending->billing->setPromoCodes('SERVICE_MASSSENDING', $promo_code);
            $billReserveId = $masssending->Accept($calc['massid'], false);
            if ($billReserveId) {
                $_SESSION['quickmas_is_begin'] = 1;
                $_SESSION['quickmas_count_u'] = $calc['count'];
                $_SESSION['referer'] = $_SERVER['HTTP_REFERER'];
                $sum = $masssending->billing->getRealPayedSum();
                $yandex_kassa = new yandex_kassa();
                $html_form = $yandex_kassa->render($sum, $masssending->billing->account->id, $payment, $billReserveId);
                $html_form = preg_replace('/^[^\\/]+\\/\\*!?/', '', $html_form);
                $html_form = preg_replace('/\\*\\/[^\\/]+$/', '', $html_form);
                $objResponse->script('$("quick_mas_div_wait").set("html", \'' . $html_form . '\');');
                $objResponse->script("\$('quick_mas_div_wait').getElements('form')[0].submit();");
            }
        }
    }
    return $objResponse;
}
Esempio n. 3
0
<?php 
    $is_first = false;
}
if ($user->lj_3 && !($info_for_reg['lj_3'] && !$uid)) {
    ?>
<div class="b-layout__hover_bg_f0ffdf b-layout_padlr_10 b-layout_pad_3 b-layout_margbot_3">
   <div class="b-layout__txt b-layout__txt_padleft_25 b-layout__txt_lineheight_1">
        <span class="b-icon b-icon__cont b-icon__cont_lj b-icon_margleft_-25"></span>
        <noindex class="b-layout__txt b-layout__txt_valign_top b-layout__txt_lineheight_15 b-layout__txt_ellipsis b-layout_inline-block b-layout__txt_width_225"><a class="b-layout__link" href="http://<?php 
    echo $user->lj_3;
    ?>
.livejournal.com" target="_blank" rel="nofollow" title="<?php 
    echo $user->lj_3;
    ?>
"><?php 
    echo LenghtFormatEx($user->lj_3, $maxlength);
    ?>
</a></noindex>
   </div>
</div>
<?php 
    $is_first = false;
}
if ($user->skype && !($info_for_reg['skype'] && !$uid)) {
    ?>
<div class="b-layout__hover_bg_f0ffdf b-layout_padlr_10 b-layout_pad_3 b-layout_margbot_3">
   <div class="b-layout__txt b-layout__txt_padleft_25 b-layout__txt_lineheight_1">
        <span class="b-icon b-icon__cont b-icon__cont_sky b-icon_margleft_-25"></span>
        <div class="b-layout__txt b-layout__txt_valign_top b-layout__txt_lineheight_15 b-layout__txt_ellipsis b-layout_inline-block b-layout__txt_width_225">
            <a class="b-layout__link" href="skype:<?php 
    echo $user->skype;
            ?>
                            <span title="Количество продаж услуги"><span class="b-icon b-icon__tu2 b-icon_top_2"></span> <?php 
            echo number_format($sold_count, 0, '', ' ');
            ?>
</span>
                        <?php 
        }
        ?>
                        </a>
                    </div>
                    <div class="b-layout__txt b-layout__txt_padtop_10 b-layout_overflow_hidden">
                        <a href="<?php 
        echo $tservice_url;
        ?>
" class="b-layout__link b-layout__link_no-decorat b-layout__link_color_000 b-layout__link_inline-block"><?php 
        echo LenghtFormatEx(reformat($tservice['title'], 20, 0, 1), 80);
        ?>
</a>
                    </div>
                </div>
            <?php 
        if ($is_owner) {
            ?>
            </div>
            <a href="javascript:void(0);" data-preview-pos="<?php 
            echo $key + 1;
            ?>
" data-popup="<?php 
            echo FreelancersPreviewEditorPopup::getInstance()->getPopupId();
            ?>
">Изменить</a>
Esempio n. 5
0
/**
 * формирует превью проекта на главной странице.
 */
function GetPreview($data)
{
    $objResponse = new xajaxResponse();
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/projects.php';
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/attachedfiles.php';
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/CFile.php';
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/HTML/projects_lenta.php';
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/project_exrates.php';
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/memBuff2.php';
    $kind = 1;
    $memBuff = new memBuff();
    $htmlLenta = $memBuff->get('projectsLentaHTML');
    if (!$htmlLenta) {
        $prj = new new_projects();
        $prjs = $prj->getProjects($num_prjs, -1, 1, false, null, true);
        foreach ($prjs as &$proj) {
            // стираем принадлежность проекта к пользователю, чтобы не появилось кнопок РЕДАКТИРОВАТЬ и пр.
            unset($proj['user_id']);
        }
        unset($proj);
        $htmlPrj = new HTMLProjects();
        $htmlPrj->template = '/projects/tpl.lenta.new.php';
        $prj_content = $htmlPrj->ShowProjects($num_prjs, $prjs, 1, 1, null, true);
        $prfs = new professions();
        $profs = $prfs->GetAllProfessions('', 0, 1);
        // подложка с лентой проектов
        ob_start();
        include $_SERVER['DOCUMENT_ROOT'] . '/templates/main.php';
        $htmlLenta = ob_get_clean();
        // кэшируем ленту проектов
        $memBuff->set('projectsLentaHTML', $htmlLenta, 1800);
    }
    // подготавливаем данные для шаблона в ленту проектов
    $row = array();
    $row['kind'] = __paramValue('int', $data['kind']);
    $row['cost'] = __paramValue('int', $data['cost']);
    $row['currency'] = __paramValue('int', $data['currency_db_id']);
    $row['priceby'] = __paramValue('int', $data['priceby_db_id']);
    $row['name'] = stripslashes(__paramValue('html', $data['name'], null, true));
    $contacts = array('phone' => array('name' => 'Телефон', 'value' => ''), 'site' => array('name' => 'Сайт', 'value' => ''), 'icq' => array('name' => 'ICQ', 'value' => ''), 'skype' => array('name' => 'Skype', 'value' => ''), 'email' => array('name' => 'E-mail', 'value' => ''));
    if (isset($data['contacts'])) {
        foreach ($data['contacts'] as $name => $value) {
            if (!isset($contacts[$name])) {
                continue;
            }
            switch ($name) {
                case 'site':
                    if (!url_validate(ltrim(ltrim($value, 'http://'), 'https://')) && trim($value) != '') {
                        $error["contact_{$name}"] = 'Поле заполнено некорректно';
                    }
                    if (strpos($value, 'htt') === false && trim($value) != '') {
                        $value = 'http://' . $value;
                    }
                    break;
                case 'email':
                    if (!is_email($value) && trim($value) != '') {
                        $error["contact_{$name}"] = 'Поле заполнено некорректно';
                    }
                    break;
            }
            $contacts[$name]['value'] = __paramValue('htmltext', stripslashes($value));
        }
        $row['contacts'] = serialize($contacts);
    }
    $descrFull = stripslashes(__paramValue('html', $data['descr'], null, true));
    $descr = preg_replace('/^ /', "", $descrFull);
    $descr = preg_replace("/(\n) /", "\$1", $descr);
    $descr = reformat(strip_tags(htmlspecialchars(LenghtFormatEx(htmlspecialchars_decode($descr, ENT_QUOTES), 180), ENT_QUOTES), '<br />'), 50, 1, 0, 1);
    $descr = preg_replace("//", '&nbsp;', $descr);
    $row['descr'] = $descr;
    $row['t_is_payed'] = $data['logo_ok'] || $data['top_ok'];
    $row['t_is_ontop'] = __paramValue('bool', $data['top_ok']);
    $row['t_pro_only'] = $data['pro_only'] ? 't' : 'f';
    $row['t_verify_only'] = $data['verify_only'] ? 't' : 'f';
    $row['t_urgent'] = $data['urgent'] ? 't' : 'f';
    $row['t_hide'] = $data['hide'] ? 't' : 'f';
    $row['create_date'] = date('Y-m-d H:i', strtotime(date('Y-m-d H:i:s')) - 120);
    // делаем дату публикации 2 минуты назад
    $row['end_date'] = __paramValue('string', $data['end_date']);
    $row['win_date'] = __paramValue('string', $data['win_date']);
    $row['country'] = __paramValue('int', $data['project_location_columns'][0]);
    $row['city'] = __paramValue('int', $data['project_location_columns'][1]);
    list($row['country_name'], $row['city_name']) = explode(': ', __paramValue('string', $data['location']));
    $logoOK = __paramValue('bool', $data['logo_ok']);
    $topOK = __paramValue('bool', $data['top_ok']);
    $row['link'] = __paramValue('string', $data['link']);
    if ($logoOK) {
        $logoAttach = new attachedfiles($data['logo_attachedfiles_session']);
        $logoFiles = $logoAttach->getFiles(array(1));
        if (count($logoFiles)) {
            $logoFile = array_pop($logoFiles);
            // загружено может быть несколько файлов, берем последний
            $logoCFile = new CFile($logoFile['id']);
        } elseif (__paramValue('int', $data['logo_file_id'])) {
            $logoCFile = new CFile(__paramValue('int', $data['logo_file_id']));
        }
        $row['logo_name'] = $logoCFile->name;
        $row['logo_path'] = $logoCFile->path;
    }
    $is_ajax = true;
    // подготовка данных для подробной страницы проекта
    $project = $row;
    $categories = array();
    for ($i = 0; $i < 3; ++$i) {
        $categoryID = __paramValue('int', $data['project_profession' . $i . '_columns'][0]);
        $subcategoryID = __paramValue('int', $data['project_profession' . $i . '_spec_columns'][0]);
        if ($categoryID || $subcategoryID) {
            $categories[] = array('category_id' => $categoryID, 'subcategory_id' => $subcategoryID);
        }
    }
    $project['spec_txt'] = projects::_getSpecsStr($categories, ' / ', ', ', true);
    $project['ico_payed'] = $logoOK;
    $project['is_upped'] = $topOK;
    $project['descr'] = $descrFull;
    $project['logo_id'] = $logoCFile->id;
    $project['prefer_sbr'] = __paramValue('bool', $data['prefer_sbr']) ? 't' : 'f';
    $project['urgent'] = __paramValue('bool', $data['urgent']) ? 't' : 'f';
    $project['hide'] = __paramValue('bool', $data['hide']) ? 't' : 'f';
    if (trim($project['contacts']) != '') {
        $contacts_employer = unserialize($project['contacts']);
        $empty_contacts_employer = 0;
        foreach ($contacts_employer as $name => $contact) {
            if (trim($contact['value']) == '') {
                $empty_contacts_employer++;
            }
        }
        $is_contacts_employer_empty = count($contacts_employer) == $empty_contacts_employer;
    }
    $isPreview = true;
    $project_exRates = project_exrates::GetAll();
    $translate_exRates = array(0 => 2, 1 => 3, 2 => 4, 3 => 1);
    ob_start();
    include $_SERVER['DOCUMENT_ROOT'] . '/public/new/tpl.preview.php';
    ?>
    <?php 
    $htmlProject = ob_get_clean();
    $objResponse->assign('project_preview_lenta', 'innerHTML', $htmlLenta);
    $objResponse->assign('project_preview_content', 'innerHTML', $htmlProject);
    $objResponse->script('Public.showPreview()');
    return $objResponse;
}
Esempio n. 6
0
        }
        ?>
                    <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;
            ?>
px; text-align:right; padding-bottom:4px;"><?php 
            echo $p['pos'];
            ?>
</td>
                      <?php 
Esempio n. 7
0
        ?>
    <item>
      <title><![CDATA[<?php 
        echo $prj['name'] . ($prj['cost'] > 0 ? " (Бюджет: {$prj_cost})" : '');
        ?>
]]></title> 
      <link><?php 
        echo $prj_link;
        ?>
</link>
      <?php 
        if ($prj['pro_only'] == 't') {
            ?>
      <?/*<description>Описание проекта доступно только для PRO.</description>*/?>
      <description><![CDATA[<?php 
            echo str_replace('<br', '<br /', LenghtFormatEx($prj['descr'], 180));
            ?>
]]></description>
      <?php 
        } else {
            ?>
      <description><![CDATA[<?php 
            echo str_replace('<br', '<br /', $prj['descr']);
            ?>
]]></description>
      <?php 
        }
        ?>
      <guid><?php 
        echo $prj_link;
        ?>
Esempio n. 8
0
 /**
  * Отправляет уведомления о новых сообщениях в личке при платной рассылке.
  * Консьюмер plproxy-mail
  * 
  * @param   array      $params    Данные от PgQ, TO-адреса получателей; FROM-адрес отправителя
  * @param   string     $msg       Текст сообщения
  */
 function SendMasssending($params, $from, $to, $msg)
 {
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
     $uid_from = intval($from);
     $uids_to = explode(",", preg_replace("/[\\{\\}]/", "", $to));
     if (!$uid_from || !is_array($uids_to)) {
         return;
     }
     $from = new users();
     $from->GetUserByUID($uid_from);
     $this->subject = "Новое сообщение на FL.ru";
     $msg_text = "\n<a href='{$GLOBALS['host']}/users/{$from->login}'>{$from->uname} {$from->usurname}</a> [<a href='{$GLOBALS['host']}/users/{$from->login}{$this->_addUrlParams('b')}'>{$from->login}</a>]\nнаписал(а) вам новое сообщение на сайте FL.ru.<br />\n<br />\n---------- \n<br />\n" . $this->ToHtml(LenghtFormatEx(strip_tags($msg), 300)) . "\n<br />\n<br />\n<br />\n<a href='{$GLOBALS['host']}/contacts/?from={$from->login}{$this->_addUrlParams('b', '&')}'>{$GLOBALS['host']}/contacts/?from={$from->login}</a>\n<br />\n<br />\n------------\n";
     foreach ($uids_to as $uid_to) {
         $to = new users();
         $to->GetUserByUID($uid_to);
         if (substr($to->subscr, 0, 1) != '1' || !$to->email || $to->is_banned == '1') {
             continue;
         }
         if (!$this->Connect()) {
             return "Невозможно соеденится с SMTP сервером";
         }
         if ($to->email && substr($to->subscr, 12, 1) == '1') {
             $this->recipient = $to->uname . " " . $to->usurname . " [" . $to->login . "] <" . $to->email . ">";
             $this->message = $this->GetHtml($to->uname, $msg_text, array('header' => 'default', 'footer' => 'default'), array('login' => $to->login));
             $this->SmtpMail('text/html');
         }
     }
     $this->subject = "Ваша рассылка на FL.ru прошла модерацию";
     $this->recipient = $from->uname . " " . $from->usurname . " [" . $from->login . "] <" . $from->email . ">";
     $msg_text = $this->ToHtml($msg);
     $body = "Ваша заявка на рассылку была рассмотрена и одобрена модераторами сайта FL.ru. \n         Фрилансерам выбранных вами специализаций будет отправлено сообщение следующего содержания:</br>\n         ---<br/>\n         {$msg_text}<br/>\n         ---<br/>";
     $this->message = $this->GetHtml($from->uname, $body, array('header' => 'simple', 'footer' => 'simple'));
     $this->SmtpMail('text/html');
 }
Esempio n. 9
0
$footer = $rpath . "footer.html";
if (!$gr_name) {
    $gr_name = "Ошибка";
}
if ($blog->poll !== null && $blog->title == "") {
    $sQuestion = $blog->poll_question;
    $html_title = substr($blog->poll_question, 0, 30) . (strlen($blog->poll_question) > 30 ? "..." : "");
} else {
    $html_title = $blog->title == "" ? substr($sMessage, 0, 30) . (strlen($sMessage) > 30 ? "..." : "") : $sTitle;
    if ($html_title == "") {
        $html_title = 'Блоги';
    }
}
$page_title = strip_tags($html_title) . ' - фриланс, удаленная работа на FL.ru';
$page_keyw = strtolower($gr_name) . ", удаленная работа, фри-ланс, дизайнер, программист, менеджер, иллюстратор, верстальщик, оптимизатор, копирайтер";
$page_descr = LenghtFormatEx(htmlspecialchars(strip_tags($sMessage), ENT_QUOTES, 'cp1251'), 250, '', 0);
//$gr_name.". Работодатель.Удаленная работа. Поиск работы. Предложение работы. Портфолио фрилансеров. Разработка сайтов, Программирование, Переводы, Тексты, Дизайн, Арт, Реклама, Маркетинг, Прочее. Free-lance.ru";
$page_title = deleteHiddenURLFacebook($page_title);
$page_keyw = deleteHiddenURLFacebook($page_keyw);
$page_descr = deleteHiddenURLFacebook($page_descr);
$blog->title = deleteHiddenURLFacebook($blog->title);
$sTitle = deleteHiddenURLFacebook($sTitle);
stat_collector::setStamp();
// stamp
// Добавляем Open Graph Tags для FaceBook
if ($blog) {
    global $additional_header;
    if (empty($additional_header)) {
        $additional_header = '';
    }
    $additional_header .= '
Esempio n. 10
0
/**
 * Вывод позиции платного объявления
 * @param    array            массив с данными объявления
 * @return   string           HTML
 */
function __fpPrntPosition($value)
{
    global $session;
    $ufp_mod = (int) ($_SESSION['uid'] == $value['user_id']) | 2 * hasPermissions('users');
    if (strlen($value['uname']) > 10) {
        $uname = hyphen_words($value['uname']);
        $t = explode("­", $uname);
        for ($i = 0; $i < count($t); $i++) {
            if (strlen($t[$i]) > 10) {
                $uname = LenghtFormatEx($value['uname'], 10);
                break;
            }
        }
    } else {
        $uname = $value['uname'];
    }
    if (strlen($value['usurname']) > 10) {
        $usurname = hyphen_words($value['usurname']);
        $t = explode("­", $usurname);
        for ($i = 0; $i < count($t); $i++) {
            if (strlen($t[$i]) > 10) {
                $usurname = LenghtFormatEx($value['usurname'], 10);
                break;
            }
        }
    } else {
        $usurname = $value['usurname'];
    }
    ob_start();
    ?>
  <div id="mgCapsule<?php 
    echo $value['id'];
    ?>
">
    <div id="mgContent<?php 
    echo $value['id'];
    ?>
">
      <table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin-bottom:10px">
        <col style="width:10px" />
        <col />
        <tr valign="top">
          <td>
            <a href="/users/<?php 
    echo $value['login'];
    ?>
/?f=<?php 
    echo stat_collector::REFID_PAIDSEATINGS;
    ?>
&stamp=<?php 
    echo $_SESSION['stamp'];
    ?>
" title="<?php 
    echo $value['uname'];
    ?>
 <?php 
    echo $value['usurname'];
    ?>
"
              <?php 
    /* if ($ufp_mod | (!$_SESSION['uid'] || is_emp()))  { ?> onmouseover="mg_onOver(<?=$value['id']?>, <?=$ufp_mod?>);" onmouseout="mg_onLeave()"<? } */
    ?>
 class="img50x50">
              <?php 
    echo view_avatar($value['login'], $value['photo'], 1, 0);
    ?>
            </a>
          </td>
          <td style="padding-left:10px">
            <?php 
    if ($value['payed'] == 't') {
        print view_pro2($value['payed_test'] == 't' ? true : false) . '&nbsp;';
    }
    print $session->view_online_status($value['login']);
    ?>
            <a <?php 
    /* if ($ufp_mod | (!$_SESSION['uid'] || is_emp()))  { ?> onmouseover="mg_onOver(<?=$value['id']?>, <?=$ufp_mod?>);" onmouseout="mg_onLeave()"<? } */
    ?>
               class="freelancer-name" href="/users/<?php 
    echo $value['login'];
    ?>
/?f=<?php 
    echo stat_collector::REFID_PAIDSEATINGS;
    ?>
&stamp=<?php 
    echo $_SESSION['stamp'];
    ?>
" title="<?php 
    echo $value['uname'];
    ?>
 <?php 
    echo $value['usurname'];
    ?>
">
              <?php 
    echo $uname . " " . $usurname . " [" . $value['login'] . "]";
    ?>
</a><?php 
    echo $value['boss_rate'] == 1 ? view_vip() : '';
    ?>
            <?php 
    if ($ufp_mod) {
        ?>
<div id="fptext<?php 
        echo $value['id'];
        ?>
" style="overflow:hidden;"><?php 
    }
    $fd = $value;
    $fd['ufp_id'] = $value['id'];
    print __fpPrntTitleDescr($fd, $ufp_mod);
    if ($ufp_mod) {
        ?>
              </div>
              <a style="display:block; padding-top:10px; width:120px;" id="chtextB<?php 
        echo $value['id'];
        ?>
" href="javascript:void(0);" onclick="mg_onChangeClick(<?php 
        echo $value['id'];
        ?>
, <?php 
        echo $ufp_mod;
        ?>
);" class="blue">Изменить объявление</a>
            <?php 
    }
    if ($ufp_mod & 1) {
        ?>
<a style="display:block; width:117px;" href="/firstpage/position.php" class="blue">Изменить положение</a><?php 
    }
    ?>
          </td>
        </tr>
      </table>
    </div>
  </div>
<?php 
    $str = ob_get_contents();
    ob_end_clean();
    return $str;
}
Esempio n. 11
0
    ?>
</nobr></font></b><?php 
}
?>
        </td>
        <td bgcolor="#ffffff" width="20"></td>
    </tr>
    <tr>
        <td bgcolor="#ffffff" width="20" height="10" colspan="3"></td>
    </tr>
    <tr>
        <td bgcolor="#ffffff" width="20"></td>
        <td>
            <font color="#000000" size="2" face="arial">
                <?php 
echo reformat(LenghtFormatEx(strip_tags($descr, '<br />'), 180), 50, 0, 1);
?>
            </font>
        </td>
        <td  bgcolor="#ffffff" width="20"></td>
    </tr>
    <tr>
        <td  bgcolor="#ffffff" width="20"></td>
        <td  height="20">
            <font color="#a0a0a0" size="1" face="arial">
                <?php 
if ($project_kind == 2 || $project_kind == 7) {
    // Конкурс
    ?>
                    <b>Конкурс</b> &#160;
                <?php 
Esempio n. 12
0
    /**
     * Уведомление об удалении комментария или поста в блогах.
     *
     * @param int   $moderator_uid - идентификатор автора блога
     * @param array $userSubscribe - массив идентификаторов сообщений подписаных польователей
     * */
    public function sendBlogPostDeleted($moderator_uid, $userSubscribe)
    {
        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/messages.php';
        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
        // Посылаем подписавшимся на темы
        if ($userSubscribe) {
            $moderator = new users();
            $moderator->GetUserByUID($moderator_uid);
            $a_login = $moderator->login;
            $a_uname = $moderator->uname;
            $a_usurname = $moderator->usurname;
            foreach ($userSubscribe as $comment) {
                if (substr($comment['s_subscr'], 2, 1) == '1' && !$notSend[$comment['s_uid']] && $comment['s_email']) {
                    $this->subject = 'В блоге на сайте FL.ru удален комментарий';
                    $post_type = "комментарий в <a href='{$GLOBALS['host']}/blogs/view.php?tr={$comment['thread_id']}&openlevel={$comment['id']}{$this->_addUrlParams('b', '&')}#o{$comment['id']}'>в блоге</a>, на который вы подписаны";
                    if ($comment['s_uid'] == $comment['uid']) {
                        $this->subject = 'Ваш комментарий в блоге на сайте FL.ru удален';
                        $post_type = "ваш комментарий в <a href='{$GLOBALS['host']}/blogs/view.php?tr={$comment['thread_id']}&openlevel={$comment['id']}{$this->_addUrlParams('b', '&')}#o{$comment['id']}'> блоге</a>";
                    }
                    $message_template = 'subscribe_delete_comment';
                    if ($comment['reply_to'] == '') {
                        $this->subject = 'На сайте FL.ru удален блог';
                        $post_type = 'блог, на который вы подписаны';
                        if ($comment['s_uid'] == $comment['uid']) {
                            $this->subject = 'Ваш пост в блогах на сайте FL.ru удален';
                            $post_type = 'ваш пост в блогах';
                        }
                        $message_template = 'subscribe_delete_post';
                    }
                    $link_title = "<a href='{$GLOBALS['host']}/blogs/view.php?tr={$comment['thread_id']}{$this->_addUrlParams('b', '&')}' target='_blank'>" . ($comment['blog_title'] == '' ? 'Без названия' : $comment['blog_title']) . '</a>';
                    $this->message = $this->GetHtml($comment['s_uname'], "\n\tПользователь <a href='{$GLOBALS['host']}/users/{$a_login}/{$this->_addUrlParams('b')}'>{$a_uname} {$a_usurname}</a> [<a href='{$GLOBALS['host']}/users/{$a_login}{$this->_addUrlParams('b')}'>{$a_login}</a>]\n\tудалил(-а) {$post_type} на сайте FL.ru.\n\t<br /> --------\n\t<br />" . ($comment['title'] ? $this->ToHtml(input_ref(LenghtFormatEx($comment['title'], 300), 1)) . '<br />---<br />' : '') . $this->ToHtml(input_ref(LenghtFormatEx($comment['msgtext'], 300), 1)) . '
	<br /> --------
	<br />
	', array('header' => $message_template, 'footer' => 'subscribe'), array('type' => 1, 'title' => $link_title));
                    $this->recipient = $comment['s_uname'] . ' ' . $comment['s_usurname'] . ' [' . $comment['s_login'] . '] <' . $comment['s_email'] . '>';
                    $this->SmtpMail('text/html');
                    $message = 'Здравствуйте, ' . $comment['s_uname'] . ".                \n\tПользователь <a href='{$GLOBALS['host']}/users/{$a_login}/{$this->_addUrlParams('b')}'>{$a_uname} {$a_usurname}</a> [<a href='{$GLOBALS['host']}/users/{$a_login}{$this->_addUrlParams('b')}'>{$a_login}</a>]\n    удалил(-а) {$post_type} на сайте FL.ru.\n\t--------" . ($comment['title'] ? $this->ToHtml(input_ref(LenghtFormatEx($comment['title'], 300), 1)) . '
	---
	' : '') . $this->ToHtml(input_ref(LenghtFormatEx($comment['msgtext'], 300), 1)) . '
	 --------
	 ';
                    messages::Add(users::GetUid($err, 'admin'), $comment['s_login'], $message, '', 1);
                }
            }
        }
    }
Esempio n. 13
0
            echo zin($frl['total_opi_plus']);
            ?>
</a>  |  
                            <a class="b-layout__link b-layout__link_bold b-layout__link_color_c10600 b-layout_hover_link_decorated" href="/users/<?php 
            echo $frl['login'];
            ?>
/opinions/?sort=3&author=0">- <?php 
            echo zin($frl['total_opi_minus']);
            ?>
</a>
                        </div>
                     </td>
                     <td class="b-layout__td b-layout__td_padleft_20 b-layout__td_padright_20 b-layout__td_padtb_15 b-layout__td_valign_mid">
                        <div class="b-layout__txt b-layout__txt_color_64 b-layout__txt_fontsize_11">
                            <?php 
            echo br2br(LenghtFormatEx(reformat($frl['status_text'], 40, 0, 1, 25), 150));
            ?>
                        </div>
                     </td>
                  </tr>
                  <?php 
            if ($i < $cntCatalogList - 1) {
                ?>
                  <tr class="b-layout__tr">
                     <td class="b-layout__td b-layout__td_padtop_5 b-layout__td_bordbot_e6" colspan="5"></td>
                  </tr>
                  <?php 
            }
            ?>
                      
<?php 
Esempio n. 14
0
 /**
  * Заполняет значения в зависимости от проекта.
  * 
  * @param array $project данные проекта
  */
 public function initProject($project)
 {
     $stop_words = new stop_words(hasPermissions('projects'));
     $title = $project['moderator_status'] === '0' && $project['kind'] != 4 && $project['is_pro'] != 't' ? $stop_words->replace($project['name'], 'plain', false) : $project['name'];
     $title50 = LenghtFormatEx(trim(strip_tags($title)), 50);
     $title100 = LenghtFormatEx(trim(strip_tags($title)), 100);
     $sp = new_projects::getSpecs($project['id']);
     $is_spec = $sp[0]['subcategory_id'] > 0;
     $prof_id = $is_spec ? $sp[0]['subcategory_id'] : $sp[0]['category_id'];
     $this->seo_value = new SeoValues();
     $this->seo_value->initCard($prof_id, $is_spec);
     $this->title = sprintf(SeoText::PRJ_TITLE, $title50, $this->seo_value->getKey(1));
     $this->description = sprintf(SeoText::PRJ_DESC, $title100, $this->seo_value->getKeysString(3));
     $this->keywords = sprintf(SeoText::PRJ_KEY, $this->seo_value->getFTitle(1), $this->seo_value->getKeysString());
     $this->footer_text = sprintf(SeoText::PRJ_TAGS, $this->seo_value->getFTitle(1), $this->seo_value->getKeysString());
 }
Esempio n. 15
0
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/professions.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/project_exrates.php';
session_start();
if (!($uid = get_uid())) {
    header('Location: /fbd.php');
    exit;
}
$masssending = new masssending();
$countries = country::GetCountries(true);
$prof_groups = professions::GetAllGroupsLite(true);
$professions = professions::GetProfList();
$exrates = project_exrates::GetAll();
if (!empty($_POST)) {
    $frm = $_POST;
    //$params['msg'] = stripslashes($frm['msg']);
    $params['msg'] = "Здравствуйте!\n\nПриглашаю ознакомиться с проектом '" . change_q_x(stripslashes($frm['title']), false, false, 'b|i|p|ul|li|s|h[1-6]{1}', false, false) . "' " . str_replace('www.n.fl.ru', 'n.fl.ru', $host) . $frm['link'] . " \n\n\n" . LenghtFormatEx(change_q_x(stripslashes($frm['msg']), false, false, 'b|i|p|ul|li|s|h[1-6]{1}', false, false), 300);
    $params['max_users'] = intval($_POST['max_users']);
    $params['max_cost'] = intval($_POST['max_cost']);
    $params['is_pro'] = stripslashes($frm['pro']);
    $params['favorites'] = stripslashes($frm['favorites']);
    $params['free'] = stripslashes($frm['free']);
    $params['sbr'] = stripslashes($frm['bs']);
    $params['portfolio'] = stripslashes($frm['withworks']);
    $params['inoffice'] = stripslashes($frm['office']);
    $params['opi_is_verify'] = stripslashes($frm['ver']);
    $tmp = array();
    if ($frm['mass_location_columns'][0] != '0' || $frm['mass_location_columns'][1] != '0') {
        $tmp[] = intval($frm['mass_location_columns'][0]) . ':' . intval($frm['mass_location_columns'][1]);
        $params['locations'] = $tmp;
    }
    if ($frm['f_cats']) {
Esempio n. 16
0
 public function getAnchor($key, $num, $maxlength)
 {
     $anchor = '';
     $field = $key . ($num ? '_' . $num : '');
     $realField = $key == 'email' && $num == 0 ? 'second_email' : $field;
     if (isset($this->{$realField})) {
         if ($this->{$field . '_as_link'} == 't') {
             switch ($key) {
                 case 'skype':
                     $anchor = 'Связаться по skype';
                     break;
                 case 'email':
                     $anchor = 'Написать письмо';
                     break;
             }
         } else {
             $anchor = LenghtFormatEx($this->{$realField}, $maxlength);
         }
     }
     return $anchor;
 }
Esempio n. 17
0
        }
        if ($subcats[0]) {
            $data['Vacancy'] = $profs[(int) $subcats[0]]['name_case'];
            $data['Category 2'] = $profs[(int) $subcats[0]]['name'];
            $data['Category 2'] = preg_replace("/[\\.\\,\\_\\\\\\/\\*\\;\\:\\?]+/", " ", $data['Category 2']);
            $data['Category 2'] = preg_replace("/\\s{2,}/", " ", $data['Category 2']);
            $data['Category 2'] = preg_replace("/[^-A-Za-zА-Яа-яЁё0-9\\s]+/", "", $data['Category 2']);
        } else {
            $data['Category 2'] = $data['Category 1'];
        }
        if (empty($data['Vacancy'])) {
            $data['Vacancy'] = 'Прочее';
        } else {
            $data['Vacancy'] = preg_replace("/[\\.\\,\\_\\\\\\/\\*\\;\\:\\?]+/", " ", $data['Vacancy']);
            $data['Vacancy'] = preg_replace("/\\s{2,}/", " ", $data['Vacancy']);
            $data['Vacancy'] = preg_replace("/[^-A-Za-zА-Яа-яЁё0-9\\s]+/", "", $data['Vacancy']);
        }
        $data['Vacancy_title'] = LenghtFormatEx($data['Vacancy'], 30, '');
        $data['vacancy_id'] = $row['id'];
        // сохраняем
        if (!$c) {
            $rowsNames = array_keys($data);
            $dataStr = implode(',', $rowsNames) . "\r\n";
            fwrite($fp, chr(255) . chr(254) . iconv('CP1251', 'UTF-16LE//TRANSLIT', $dataStr));
        }
        $dataStr = implode(',', $data) . "\r\n";
        fwrite($fp, iconv('CP1251', 'UTF-16LE//TRANSLIT', $dataStr));
        $c++;
    }
    fclose($fp);
}
Esempio n. 18
0
        ?>
                      </div>
                      <?php 
        if ($profiUser['profname']) {
            ?>
                      <div class="b-layout__txt b-layout__txt_color_ff7f27 b-layout__txt_bold b-layout__txt_padbot_10 b-layout__txt_lineheight_1 b-layout__txt_fontsize_11">
                          <?php 
            echo $profiUser['profname'];
            ?>
                      </div>
                      <?php 
        }
        ?>
                      <div class="b-layout__txt b-layout__txt_color_64 b-layout__txt_fontsize_11">
                          <?php 
        echo br2br(LenghtFormatEx(reformat($profiUser['status_text'], 40, 0, 1, 25), 150));
        ?>
                      </div>
                   </td>
                </tr>
             </table>
      </div>
   </div>
<?php 
    }
    ?>
</div>


<?php 
}
Esempio n. 19
0
                                                    <tr class="<?php 
            echo $num == $curr_sbr->data['stages_cnt'] - 1 ? ' last' : '';
            echo $stage->status == sbr_stages::STATUS_INARBITRAGE ? ' nr-task-arb' : '';
            ?>
">
                                                        <td style="text-align:left;">
                                                            <div class="utxt">
                                                                <h5><a href="?site=Stage&id=<?php 
            echo $stage->data['id'];
            ?>
"><?php 
            echo reformat($stage->data['name'], 35, 0, 1);
            ?>
</a></h5>
                                                                <p><?php 
            echo reformat(LenghtFormatEx($stage->data['descr'], 250), 42, 0, 1, 1);
            ?>
</p>
                                                                <input type="hidden" name="stages[<?php 
            echo $num;
            ?>
][id]" value="<?php 
            echo $stage->data['id'];
            ?>
" />
                                                                <input type="hidden" name="stages[<?php 
            echo $num;
            ?>
][version]" value="<?php 
            echo $stage->data['version'];
            ?>
Esempio n. 20
0
/**
 * Блок с кнопками социальных сетей
 * 
 * @param  int $id ID того, что мы расшариваем
 * @param  string $title Название ссылки или пустая строка, если document.title
 * @param  string $from что мы расшариваем для определения дополнительных параметров
 * @param  string $img адрес картинки которая будет использоваться или пустая строка, если логотип FL
 * @param  string $login логин автора
 * @param  string $name имя и фамилия автора автора
 * @param  string $gr_name имя группы блога
 * @return string HTML-код
 */
function SocialButtonsSrc($id = 0, $title = '', $img = '', $from = '', $login = '', $name = '', $gr_name = '')
{
    $titleYaru = $title;
    $title = html_entity_decode($title, ENT_QUOTES);
    $gr_name = html_entity_decode($gr_name);
    $sClass = '';
    $nLength = 116;
    switch ($from) {
        case 'blogs':
            $link = "'" . HTTP_PREFIX . "www.free-lance.ru" . getFriendlyURL("blog", $id) . "'";
            $sTwitterTitle = 'Обсуждение ' . ($title ? '«' . LenghtFormatEx($title, $nLength - 36, '...', true) . '» ' : '') . 'в блогах @free_lanceru';
            break;
        case 'commune':
            $link = "'" . HTTP_PREFIX . "www.free-lance.ru/commune/?id={$id}'";
            $sTwitterTitle = 'Сообщество «' . LenghtFormatEx($title, $nLength - 31, '...', true) . '» на @free_lanceru';
            break;
        case 'commune_topic':
            $link = "'" . HTTP_PREFIX . "www.free-lance.ru/commune/?id={$id[0]}&site=Topic&post={$id[1]}'";
            $sTwitterTitle = 'Обсуждение ' . ($title ? '«' . LenghtFormatEx($title, $nLength - 31, '...', true) . '» ' : '') . 'в сообществах @free_lanceru';
            break;
        case 'projects':
            $link = "'" . HTTP_PREFIX . "www.free-lance.ru/projects/{$id}'";
            $sTwitterTitle = 'Проект «' . LenghtFormatEx($title, $nLength - 27, '...', true) . '» на @free_lanceru';
            break;
        case 'viewproj':
            $link = "'" . HTTP_PREFIX . "www.free-lance.ru/users/{$login}/viewproj.php?prjid={$id}'";
            $sTwitterTitle = 'Работа «' . LenghtFormatEx($title, $nLength - 52, '...', true) . "» в портфолио фрилансера на @free_lanceru. {$name} [{$login}]";
            if ($img) {
                $aData = getAttachDisplayData($login, $img, "upload", -1, -1, 1048576, 0);
                if ($aData['success'] && !$aData['file_mode'] && !$aData['virus_flag'] && strtolower($aData['file_ext']) != 'swf') {
                    $img = WDCPREFIX . "/users/{$login}/upload/{$img}";
                } else {
                    $img = '';
                }
            }
            break;
        case 'articles':
            $link = "'" . HTTP_PREFIX . "www.free-lance.ru/articles/?id={$id}'";
            $sTwitterTitle = 'Статья «' . LenghtFormatEx($title, $nLength - 27, '...', true) . '» на @free_lanceru';
            $sClass = 'articles-share';
            break;
        case 'interview':
            $link = "'" . HTTP_PREFIX . "www.free-lance.ru/interview/?id={$id}'";
            $sTwitterTitle = 'Интервью успешных фрилансеров и работодателей на @free_lanceru. ' . LenghtFormatEx($title, $nLength - 66, '...', true);
            $sClass = 'interview-share';
            break;
        default:
            $link = 'window.parent.location.href';
            $sTwitterTitle = LenghtFormatEx($title, $nLength, '...', true);
            break;
    }
    //******************************
    // заменяем каждую кавычку на две одиночные кавычки
    $titleYaru = preg_replace('/\\\\&quot;/', '‘‘', $titleYaru);
    // заменяем апострофы на одиночные кавычки
    $titleYaru = preg_replace('/\\\\&#039;/', '‘', $titleYaru);
    //*******************************
    $img = $img ? $img : HTTP_PREFIX . "www.free-lance.ru/images/free-lance_logo.jpg";
    $html = "<script type='text/javascript' src='//yandex.st/share/share.js' charset='utf-8'></script>";
    $html .= "<script type='text/javascript'>\n              var YaShareInstance = new Ya.share({\n\t\t\t    element: 'yashare',\n\t\t\t    link: {$link},\n\t\t\t    title: '" . strip_tags($title) . "',\n                image: '{$img}',\n                serviceSpecific: {\n                    vkontakte: {\n                        title: '" . htmlspecialchars($title, ENT_NOQUOTES, 'cp1251', false) . "'\n                    },\n                    facebook: {\n                        title: '" . strip_tags($title) . "'\n                    },\n                    twitter: {\n                        title: '" . strip_tags($sTwitterTitle) . "'\n                    },\n                    yaru: {\n                        title: '" . $titleYaru . "'\n                    }\n                },\n        \t\telementStyle: {\n        \t\t    type: 'none',\n                    quickServices: ['yaru','vkontakte','facebook','twitter','odnoklassniki','moimir','lj','friendfeed']\n        \t\t}\n        \t  });\n        \t  </script>";
    $html .= '<div id="yashare"' . ($sClass ? ' class="' . $sClass . '"' : '') . '"></div>';
    return $html;
}
Esempio n. 21
0
 }
 $inner = 'tpl.portfolio.pro.php';
 $js_file[] = 'portfolio.js';
 $activ_tab = 1;
 require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/professions.php';
 $prfs = new professions();
 $profs = $prfs->GetSpecs($user->login);
 $spec_text = professions::GetProfName($user->spec);
 $page_descr = 'Удаленная работа (фри-ланс). Портфолио фрилансера: ' . $spec_text . '. ';
 $page_keyw = 'удаленная работа, фри-ланс, фрилансер, ';
 if ($profs) {
     foreach ($profs as $ikey => $prof) {
         $out[] = str_replace('"', '', input_ref($prof['name']));
     }
     $page_descr .= LenghtFormatEx(implode(', ', $out), 250, '');
     $page_keyw .= strtolower(LenghtFormatEx(implode(', ', $out), 250, ''));
 }
 $specs_add = professions::GetProfsAddSpec($user->uid);
 //@todo: этот код ниже нужно переработать с использованием GaJsHelper
 //проверить все варианты чтобы не делать повторные запросы!
 $ga_profs = array_merge(array($user->spec), $specs_add);
 if (isset($ga_profs) && count($ga_profs)) {
     $dimension = array();
     $groups = array_unique(professions::GetGroupIdsByProfs($ga_profs));
     foreach ($groups as $group) {
         if ($group > 0) {
             $dimension[] = '[g' . $group . ']';
         }
     }
     foreach ($ga_profs as $prof) {
         if ($prof > 0) {
Esempio n. 22
0
 /**
  * Обрабатываем ссылку для замены в тексте
  *
  * @param string $title   Название ссылки
  * @param string $URI     Ссылка    
  * @return string
  */
 function getHrefLink($title, $URI)
 {
     $attrTitle = $title;
     if (!$title) {
         $attrTitle = $URI;
         $title = LenghtFormatEx($URI, $this->max_link_len);
     }
     return "<a href='{$URI}' title='{$attrTitle}' class='blue' target='_blank'>{$title}</a>";
 }
Esempio n. 23
0
        <select id="b-select__select" name="category_id" class="b-select__select b-select__select_width_180">
            <option>Все разделы</option>
            <?php 
foreach ($sub_cat as $sc) {
    if ($sc['is_only_for_admin'] == 't' && !($is_author || $is_comm_admin)) {
        continue;
    }
    ?>
            <option <?php 
    echo $mess['category_id'] == $sc['id'] ? 'selected="selected"' : '';
    ?>
 value="<?php 
    echo $sc['id'];
    ?>
"><?php 
    echo LenghtFormatEx($sc['name'], commune::MAX_CATEGORY_NAME_SIZE);
    ?>
</option>
            <?php 
}
?>
        </select>
    </div>
</div>

<?php 
// запретить комментирование
?>
<div class="b-form b-form_padleft_90">
    <div class="b-check">
        <input id="b-check1" class="b-check__input" type="checkbox" value="1" name="close_comments" <?php 
Esempio n. 24
0
 }
 $inner = "tpl.portfolio.pro.php";
 $js_file[] = 'portfolio.js';
 $activ_tab = 1;
 require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/professions.php";
 $prfs = new professions();
 $profs = $prfs->GetSpecs($user->login);
 $spec_text = professions::GetProfName($user->spec);
 $page_descr = "Удаленная работа (фри-ланс). Портфолио фрилансера: " . $spec_text . ". ";
 $page_keyw = "удаленная работа, фри-ланс, фрилансер, ";
 if ($profs) {
     foreach ($profs as $ikey => $prof) {
         $out[] = str_replace("\"", "", input_ref($prof['name']));
     }
     $page_descr .= LenghtFormatEx(implode(", ", $out), 250, "");
     $page_keyw .= strtolower(LenghtFormatEx(implode(", ", $out), 250, ""));
 }
 $specs_add = professions::GetProfsAddSpec($user->uid);
 //@todo: этот код ниже нужно переработать с использованием GaJsHelper
 //проверить все варианты чтобы не делать повторные запросы!
 $ga_profs = array_merge(array($user->spec), $specs_add);
 if (isset($ga_profs) && count($ga_profs)) {
     $dimension = array();
     $groups = array_unique(professions::GetGroupIdsByProfs($ga_profs));
     foreach ($groups as $group) {
         if ($group > 0) {
             $dimension[] = '[g' . $group . ']';
         }
     }
     foreach ($ga_profs as $prof) {
         if ($prof > 0) {
Esempio n. 25
0
		</div>
		<div class="fl2_offer_header">
		<?php 
if ($eprj['no_risk'] == "t") {
    ?>
<a href="/norisk2/" title="Безопасная Сделка"><img src="/images/shield.gif" alt="Безопасная Сделка" /></a><?php 
}
?>
		<?php 
echo $eprj['name'];
?>
		</div>

		<div class="fl2_offer_content">
			<?php 
echo strip_tags(reformat(LenghtFormatEx($eprj['descr'], 300), 96, 1));
?>
		</div>
		<?php 
if ($eprj['attach']) {
    ?>
		<div class="flw_offer_attach">
			<a href="/users/<?php 
    echo $eprj['login'];
    ?>
/upload/<?php 
    echo $eprj['attach'];
    ?>
">Загрузить</a>
			<!-- (Rar, 25кб) -->
		</div>
Esempio n. 26
0
 public function getTitle()
 {
     return LenghtFormatEx(reformat($this->title, 20, 0, 1), 80);
 }
Esempio n. 27
0
        if ($el['is_blocked'] == 't') {
            echo 'javascript:void(0)';
        } else {
            echo $url;
        }
        ?>
"
                   class="b-pic__lnk <?php 
        if ($el['is_blocked'] == 't') {
            ?>
 b-pic__lnk_color_de2c2c b-pic__lnk_line_through b-pic__lnk_cursor_default<?php 
        }
        ?>
">
                    <?php 
        echo LenghtFormatEx(reformat($el['title'], 20, 0, 1), 80);
        ?>
                </a>

                <?php 
        if ($is_owner || $is_perm) {
            ?>
                    <br/>
                    <?php 
            if ($el['is_blocked'] == 't') {
                ?>
                        Заблокирована модератором

                        <?php 
                if ($el['reason']) {
                    ?>
Esempio n. 28
0
 /**
  * Создает csv файл для AdWords
  * 
  * @param   $filename   string  полный путь к файлу куда webdav должен сохранить получившийся csv
  * @return  boolean  успех
  */
 function adWords($filename)
 {
     global $DB;
     $profs = array();
     $groups = array();
     $rows = $DB->rows("SELECT * FROM professions");
     foreach ($rows as $row) {
         $profs[$row['id']] = $row;
     }
     $rows = $DB->rows("SELECT * FROM prof_group");
     foreach ($rows as $row) {
         $groups[$row['id']] = $row;
     }
     $sql = "\n            SELECT\n                p.id, e.compname, country.country_name, city.city_name,\n                date_trunc('seconds', p.create_date) c_date, p.name, p.descr, p.cost, p.currency, p.priceby,\n                array_agg(pts.category_id) cats, array_agg(pts.subcategory_id) subcats\n            FROM\n                projects p\n            INNER JOIN\n                employer e ON e.uid = p.user_id AND e.is_banned = B'0'\n            LEFT JOIN\n                country ON country.id = p.country\n            LEFT JOIN\n                city ON city.id = p.city\n            LEFT JOIN\n                project_to_spec pts ON pts.project_id = p.id\n            LEFT JOIN\n                projects_blocked pb ON pb.project_id = p.id\n            WHERE\n                /*( p.moderator_status <> 0 OR p.moderator_status IS NULL ) AND*/ \n                pb.project_id IS NULL \n                AND p.post_date > DATE_TRUNC('day', now() - interval '2 weeks')\n            GROUP BY\n                p.id, e.compname, country.country_name, city.city_name, c_date, p.name, p.descr, p.cost, p.currency, p.priceby\n            ORDER BY\n                id DESC\n        ";
     $tmpfile = "/var/tmp/adwords.csv";
     $fp = fopen($tmpfile, "a");
     $res = $DB->query($sql);
     $c = 0;
     while ($row = pg_fetch_assoc($res)) {
         $data = array();
         // ссылка
         $data['url'] = $GLOBALS['host'] . '/projects/' . $row['id'] . '/' . translit(strtolower(htmlspecialchars_decode($row['name'], ENT_QUOTES))) . '.html';
         // цена
         if (!empty($row['cost'])) {
             switch ($row['currency']) {
                 case 0:
                     $cost = "{$row['cost']}\$";
                     break;
                 case 1:
                     $cost = "€{$row['cost']}";
                     break;
                 case 2:
                     $cost = "{$row['cost']} руб.";
                     break;
                 case 4:
                     $cost = "{$row['cost']} FM";
                     break;
             }
             switch ($row['priceby']) {
                 case 1:
                     $priceby = 'за час';
                     break;
                 case 2:
                     $priceby = 'за день';
                     break;
                 case 3:
                     $priceby = 'за месяц';
                     break;
                 case 4:
                     $priceby = 'за проект';
                     break;
             }
             $data['Wage'] = "{$cost} {$priceby}";
         } else {
             $data['Wage'] = 'По договоренности';
         }
         // специализация (если несколько, берем только первую)
         $cats = $DB->array_to_php($row['cats']);
         $subcats = $DB->array_to_php($row['subcats']);
         $data['Vacancy'] = '';
         $data['Vacancy_title'] = '';
         $data['Category 1'] = '';
         $data['Category 2'] = '';
         if ($cats[0]) {
             $data['Vacancy'] = $groups[(int) $cats[0]]['name_case'];
             $data['Category 1'] = $groups[(int) $cats[0]]['name'];
             $data['Category 1'] = preg_replace("/[\\.\\,\\_\\\\\\/\\*\\;\\:\\?]+/", " ", $data['Category 1']);
             $data['Category 1'] = preg_replace("/\\s{2,}/", " ", $data['Category 1']);
             $data['Category 1'] = preg_replace("/[^-A-Za-zА-Яа-яЁё0-9\\s]+/", "", $data['Category 1']);
         } else {
             $data['Category 1'] = 'Прочее';
         }
         if ($subcats[0]) {
             $data['Vacancy'] = $profs[(int) $subcats[0]]['name_case'];
             $data['Category 2'] = $profs[(int) $subcats[0]]['name'];
             $data['Category 2'] = preg_replace("/[\\.\\,\\_\\\\\\/\\*\\;\\:\\?]+/", " ", $data['Category 2']);
             $data['Category 2'] = preg_replace("/\\s{2,}/", " ", $data['Category 2']);
             $data['Category 2'] = preg_replace("/[^-A-Za-zА-Яа-яЁё0-9\\s]+/", "", $data['Category 2']);
         } else {
             $data['Category 2'] = $data['Category 1'];
         }
         if (empty($data['Vacancy'])) {
             $data['Vacancy'] = 'Прочее';
         } else {
             $data['Vacancy'] = preg_replace("/[\\.\\,\\_\\\\\\/\\*\\;\\:\\?]+/", " ", $data['Vacancy']);
             $data['Vacancy'] = preg_replace("/\\s{2,}/", " ", $data['Vacancy']);
             $data['Vacancy'] = preg_replace("/[^-A-Za-zА-Яа-яЁё0-9\\s]+/", "", $data['Vacancy']);
         }
         $data['Vacancy_title'] = LenghtFormatEx($data['Vacancy'], 30, '');
         $data['vacancy_id'] = $row['id'];
         // сохраняем
         if (!$c) {
             $rowsNames = array_keys($data);
             $dataStr = implode(',', $rowsNames) . "\r\n";
             fwrite($fp, chr(255) . chr(254) . iconv('CP1251', 'UTF-16LE//TRANSLIT', $dataStr));
         }
         $dataStr = implode(',', $data) . "\r\n";
         fwrite($fp, iconv('CP1251', 'UTF-16LE//TRANSLIT', $dataStr));
         $c++;
     }
     fclose($fp);
     $path = pathinfo($filename);
     $oldFile = new CFile();
     $newFile = new CFile(array('tmp_name' => $tmpfile, 'name' => NULL, 'size' => filesize($tmpfile)));
     $oldFile->server_root = 1;
     $newFile->server_root = 1;
     $oldFile->Delete(0, $path['dirname'] . '/', $path['basename']);
     $newFile->max_size = 1024 * 1048576;
     $newFile->MoveUploadedFile($path['dirname'] . '/');
     $newFile->Rename($filename);
     unlink($tmpfile);
     return true;
 }
Esempio n. 29
0
/**
 * Скрывает или отображает платные проекты.
 *
 * @see projects_filter::ShowClosedProjects()
 * @see projects_filter::initClosedProjects()
 *
 * @param string $id     id определенного или all для всех
 * @param string $type   скрыть (hide) или показать (unhide)
 * @param int $kind  тип текущей закладки главной страницы (см. new_projects::getProjects())
 * @param int $page  номер текущей страницы.
 * @param bool $filter  включен ли фильтр у юзера.
 *
 * @return object xajaxResponse
 */
function _HideProject($id, $type, $kind, $page, $filter)
{
    session_start();
    $objResponse = new xajaxResponse();
    $all = $id == 'all';
    $id = (int) $id;
    $uid = $_SESSION['uid'];
    if ($type == 'hide') {
        $prj = new new_projects();
        $content = $prj->SearchDB((int) $kind, 2, 0, $uf, true, true);
        $prjs = $prj->getProjects($num_prjs, (int) $kind, 2, true, $uf, true, true);
        $num = 0;
        $nDH = $nH;
        $_SESSION['ph'][$id] = base64_encode(projects::GetField($id, 'name'));
        $_SESSION['top_payed']--;
        $objResponse->assign("project-item{$id}", 'outerHTML', '');
        if ($filter) {
            $prj_filter = new projects_filters();
            $uf = $prj_filter->GetFilter($uid, $error);
        }
        if ($prjs[$num]) {
            $this_kind = $prjs[$num]['kind'];
            $this_uid = get_uid(false);
            $this_pro_last = $_SESSION['pro_last'];
            $this_is_pro = payed::CheckPro($_SESSION['login']);
            $this_edit_mode = hasPermissions('projects');
            if ($this_uid) {
                $this_user_role = $_SESSION['role'];
            }
            $this_project = $prjs[$num];
            $row = $this_project;
            if ($this_edit_mode || $this_project['kind'] == 2 || $this_project['user_id'] == $this_uid || $this_project['offer_id'] || $this_pro_last) {
                $this_show_data = 1;
                $row['show_data'] = 1;
            } else {
                $this_show_data = 0;
                $row['show_data'] = 0;
            }
            $descr = $row['descr'];
            $descr = preg_replace("/^ /", "", $descr);
            $descr = preg_replace("/(\n) /", "\$1", $descr);
            $descr = reformat(strip_tags(LenghtFormatEx($descr, 180), "<br />"), 50, 1, 0, 1);
            $descr = preg_replace("//", "&nbsp;", $descr);
            $row['descr'] = $descr;
            $row['t_is_payed'] = $this_project['payed'] && $this_project['kind'] != 2 && $this_project['kind'] != 7;
            $row['t_is_contest'] = $this_project['kind'] == 2 || $this_project['kind'] == 7;
            $row['t_pro_only'] = $this_project['pro_only'] == "t";
            $row['t_prefer_sbr'] = $this_project['prefer_sbr'] == "t";
            $row['priceby'] = $this_project['priceby'];
            $row['t_is_adm'] = hasPermissions('projects');
            $row['t_is_ontop'] = strtotime($this_project['top_to']) >= time();
            $row['unread'] = (int) $this_project['unread_p_msgs'] + (int) $this_project['unread_c_msgs'] + (int) $this_project['unread_c_prjs'];
            $row['t_is_proonly'] = $this_project['pro_only'] == 't' && !$_SESSION['pro_last'] && !$this_edit_mode && $this_uid != $this_project['user_id'];
            $row['friendly_url'] = getFriendlyURL('project', array('id' => $row['id'], 'name' => $row['name']));
            $attaches = projects::GetAllAttach($this_project['id']);
            $attaches = !$attaches ? array() : $attaches;
            foreach ($attaches as $k => $a) {
                $a['virus'] = is_null($a['virus']) ? $a['virus'] : bindec($a['virus']);
                $attaches[$k] = $a;
            }
            $row['attaches'] = $this_project['attaches'] = $attaches;
            $is_ajax = true;
            $can_change_prj = hasPermissions("projects");
            ob_start();
            require $_SERVER['DOCUMENT_ROOT'] . '/projects/tpl.lenta-item.php';
            $prj_html = ob_get_contents();
            ob_end_clean();
            $objResponse->script('ndiv = new Element("div", {id: "project-item' . $prjs[$num]['id'] . '", class: "b-post b-post_pad_10_15_15_20 b-post_margleft_-20 b-post_margright_-15 b-post_margbot_15 b-layout b-post_relative b-post_overflow_hidden' . ($row['is_color'] == 't' ? ' b-post_bg_fffded' : '') . '"});');
            $objResponse->script('ndiv.inject($("projects-list").getLast("div[id^=project-item]"), "after");');
            $objResponse->assign("project-item" . $prjs[$num]['id'], "innerHTML", $prj_html);
        }
    } else {
        if ($all && $_SESSION['ph']) {
            $nDH = -1 * $nH * count($_SESSION['ph']);
            unset($_SESSION['ph']);
        } else {
            $nDH = -1 * $nH;
            unset($_SESSION['ph'][$id]);
            if (!$_SESSION['ph']) {
                unset($_SESSION['ph']);
            }
        }
        if ($filter) {
            $prj_filter = new projects_filters();
            $uf = $prj_filter->GetFilter($uid, $error);
        }
        $prj = new new_projects();
        $content = $prj->SearchDB((int) $kind, (int) $page, 0, $uf, true, true);
        $objResponse->assign("projects-list", "innerHTML", $content);
    }
    if ($_SESSION['ph']) {
        $ccph = array_keys($_SESSION['ph']);
    }
    setcookie("ph[{$uid}]", $ccph ? implode(',', $ccph) : '', time() + 60 * 60 * 24 * 30, '/');
    if ($kind == 2 || $kind == 7) {
        $prjWord_1 = 'скрытый конкурс';
        $prjWord_2 = 'скрытых конкурса';
        $prjWord_5 = 'скрытых конкурсов';
    } elseif ($kind == 4) {
        $prjWord_1 = 'скрытая вакансия';
        $prjWord_2 = 'скрытых вакансии';
        $prjWord_5 = 'скрытых вакансий';
    } else {
        $prjWord_1 = 'скрытый проект';
        $prjWord_2 = 'скрытых проекта';
        $prjWord_5 = 'скрытых проектов';
    }
    $cnt = "";
    if (sizeof($_SESSION['ph']) && $_SESSION['uid']) {
        $cnt = sizeof($_SESSION['ph']) . " " . ending(sizeof($_SESSION['ph']), $prjWord_1, $prjWord_2, $prjWord_5);
    }
    $objResponse->assign("hide_project_count", "innerHTML", $cnt);
    // если до этого проекты отображались в режиме "Только название", то сворачиваем их
    $objResponse->call("rollProjects");
    return $objResponse;
}
Esempio n. 30
0
 /**
  * Функция генерации ленты проектов.
  *
  * @param int     $num_prjs проектов на странице
  * @param array   $projects массив проектов (результат работы projects::GetProjects())
  * @param int     $kind     закладка
  * @param int     $page     номер страницы
  * @param inetger $is_ajax  если функция вызвана через ajax @see JS seo_print();
  *
  * @return HTML
  */
 public function ShowProjects($num_prjs, $projects, $kind, $page, $filter, $is_ajax)
 {
     $this->projects = $projects;
     $this->num_prjs = $num_prjs;
     $this->kind = $this_kind = $kind;
     $this->page = $this_page = $page == '' ? 1 : $page;
     $this->pages = ceil($this->num_prjs / new_projects::PAGE_SIZE);
     $this->filter = $this_filter = (int) ($filter && $filter['active'] == 't');
     $this->uid = $this_uid = get_uid(false);
     $this->pro_last = $this_pro_last = $_SESSION['pro_last'];
     $this->is_pro = $this_is_pro = payed::CheckPro($_SESSION['login']);
     $this->edit_mode = $this_edit_mode = hasPermissions('projects');
     if ($this->uid) {
         $this->user_role = $this_user_role = $_SESSION['role'];
     }
     $outHTML = '';
     $outHTML .= $this->ShowHeader();
     $list = array();
     if ($projects) {
         require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/stop_words.php';
         $stop_words = new stop_words(hasPermissions('projects'));
         foreach ($projects as $i => $project) {
             $this->project = $project;
             $list[$i] = $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;
                 $list[$i]['show_data'] = 1;
             } else {
                 $this->show_data = 0;
                 $list[$i]['show_data'] = 0;
             }
             $descr = $list[$i]['descr'];
             $descr = $list[$i]['moderator_status'] === '0' && $list[$i]['kind'] != 4 && $list[$i]['is_pro'] != 't' ? $stop_words->replace($descr) : $descr;
             $descr = preg_replace('/^ /', "", $descr);
             $descr = preg_replace("/(\n) /", "\$1", $descr);
             $descr = LenghtFormatEx($descr, 180);
             $descr = htmlspecialchars($descr, ENT_QUOTES, 'CP1251', false);
             $descr = reformat($descr, 50, 1, 0, 1);
             $descr = preg_replace("//", '&nbsp;', $descr);
             $list[$i]['name'] = htmlspecialchars($list[$i]['name'], ENT_QUOTES, 'CP1251', false);
             $list[$i]['descr'] = $descr;
             $list[$i]['t_is_payed'] = $this->project['payed'] && $this->project['kind'] != 2 && $this->project['kind'] != 7 && $this->project['kind'] != 4;
             $list[$i]['t_is_contest'] = $this->project['kind'] == 2 || $this->project['kind'] == 7;
             $list[$i]['t_pro_only'] = $this->project['pro_only'] == 't';
             $list[$i]['t_verify_only'] = $this->project['verify_only'] == 't';
             $list[$i]['t_prefer_sbr'] = $this->project['prefer_sbr'] == 't';
             $list[$i]['priceby'] = $this->project['priceby'];
             $list[$i]['t_is_adm'] = hasPermissions('projects');
             $list[$i]['t_is_ontop'] = strtotime($this->project['top_to']) >= time();
             $list[$i]['unread'] = (int) $this->project['unread_p_msgs'] + (int) $this->project['unread_c_msgs'] + (int) $this->project['unread_c_prjs'];
             $list[$i]['t_is_proonly'] = $this->project['pro_only'] == 't' && !$_SESSION['pro_last'] && !$this->edit_mode && $this->uid != $this->project['user_id'];
             $list[$i]['friendly_url'] = getFriendlyURL('project', array('id' => $this->project['id'], 'name' => $this->project['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;
             }
             $list[$i]['attaches'] = $this->project['attaches'] = $attaches;
             $list[$i]['view_cnt'] = projects::getProjectViews($this->project['id']);
         }
     } elseif ($page == 1) {
         $outHTML .= '<div class="project-preview">Ничего не найдено</div>';
     }
     $kind = $this->kind;
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/professions.php';
     switch ($kind) {
         case 0:
         case 1:
             $rss_link = 'projects.xml';
             break;
         case 2:
             $rss_link = 'competition.xml';
             break;
         case 4:
             $rss_link = 'office.xml';
             break;
         case 6:
             $rss_link = 'pro.xml';
             break;
         case 5:
             $rss_link = 'all.xml';
             break;
         default:
             $rss_link = 'all.xml';
             break;
     }
     $isPrjOpened = isset($_COOKIE['isPrjOpened']) ? $_COOKIE['isPrjOpened'] : true;
     ob_start();
     include ABS_PATH . $this->template;
     $out = ob_get_clean();
     if ($page <= $this->pages) {
         $out .= '<!--data_found-->';
     }
     return $out;
 }