/**
 * Скрывает или отображает платные проекты.
 *
 * @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') {
        if ($all) {
            if ($tops = new_projects::getTopProjects()) {
                foreach ($tops as $t) {
                    $_SESSION['ph'][$t['id']] = base64_encode($t['name']);
                    $objResponse->assign("project-item{$t['id']}", 'outerHTML', '');
                }
            }
            $nDH = $nH * count($_SESSION['ph']);
            unset($_SESSION['top_payed']);
        } else {
            $nDH = $nH;
            $_SESSION['ph'][$id] = base64_encode(projects::GetField($id, 'name'));
            $_SESSION['top_payed']--;
            $objResponse->assign("project-item{$id}", 'outerHTML', '');
        }
    } 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);
        $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, '/');
    $content = projects_filters::ShowClosedProjects((int) $kind, (int) $page, (int) $filter);
    $objResponse->assign("flt-hide-content", "innerHTML", $content);
    $objResponse->assign("flt-hide-cnt", "innerHTML", sizeof($_SESSION['ph']) ? "(" . sizeof($_SESSION['ph']) . ")" : "");
    // компенсируем изменение высоты блока скрытых проектов
    $objResponse->script("height=\$('flt-hide-content').getStyle('height').toInt()+'px';\$('flt-hide-content').getParent().setStyle('height', height);\n    fbox=\$('flt-ph');fslider=new Fx.Slide(fbox.getElement('.flt-cnt'),{duration:400});\n    fbox.f_isShw=fbox.hasClass('flt-show');fbox.getElement('.flt-cnt').setStyle('display','block');\n    if(fbox.f_isShw){fslider.show();}else{fslider.hide();}");
    return $objResponse;
}
Exemple #2
0
if ($page < 1) {
    $page = 1;
    $bPageDefault = true;
}
// фильтр, этот фильтр не подключаем в ПДА
if (!$PDA) {
    if ($kind != 8) {
        $prj_filter = new projects_filters();
        $filter = $prj_filter->GetFilter($uid, $error, $filter_page);
        GaJsHelper::getInstance()->setProjectsFilterCategory($filter['categories']);
        adriver::getInstance()->setProjectsFilterCategory($filter['categories']);
        $filter['state'] = 0;
        $filter_apply = $filter['active'] == "t";
        // проекты
        $prj = new new_projects();
        $prj_content = $prj->SearchDB($kind, $page, $filter || is_emp() || hasPermissions('projects') ? 0 : 1, $filter, false, true);
        //echo $prj_content;die;
        $prj_pos = strpos($prj_content, '<!--data_found-->');
    } else {
        $filter_page = $kind * 10;
        $filter_params = array('kind' => isset($_GET['kind']) ? intval($_GET['kind']) : intval($_POST['kind']));
        // Развернутость / свернутость фильтра.
        if (isset($_COOKIE['new_pf' . $filter_page])) {
            $filter_show = $_COOKIE['new_pf' . $filter_page];
        } else {
            $filter_show = 0;
            setcookie("new_pf" . $filter_page, $filter_show, time() + 60 * 60 * 24 * 30, "/");
        }
        $offers_filter = new offers_filter();
        $filter = $offers_filter->GetFilter($uid);
        $filter_apply = $filter['active'] == "t";