Воскресенье, 17.11.2024, 02:43
Приветствую Вас, Гость
Главная » 2011 » Январь » 9 » Скрыть недоступные разделы при добавлении новости
14:17
Скрыть недоступные разделы при добавлении новости
Если новость добавляет пользователь с сайта, то ему видно все категории, просто они выделены красным. Но это суть дела не решает.
Этот хак позволяет скрыть недоступные разделы. Доступные разделы выставляются в админке в настройках группы.

До:


После:
Вариант #1, скрыть недоступные категории:

Вариант #2, сделать неактивными недоступные категории:

Во 2м варианте в html код добавляется параметр disabled, так что умелец едва знающий html легко сможет добавить новость в любую категорию, но новость будет висеть на модерации.

Чтобы это сделать нужно отредактировать файл engine/modules/functions.php
Найти код:

if( $allow_list[0] == "all" or in_array( $id, $allow_list ) ) {
    if( $spec_list[0] == "all" or in_array( $id, $spec_list ) ) $color = "black";
    else $color = "red";
    $returnstring .= "<option style="color: {$color}" value="" . $id . '" ';
    if( is_array( $categoryid ) ) {
        foreach ( $categoryid as $element ) {
            if( $element == $id ) $returnstring .= 'SELECTED';
        }
    } elseif( $categoryid == $id ) $returnstring .= 'SELECTED';
    $returnstring .= '>' . $sublevelmarker . $cat_info[$id]['name'] . '</option>';
}

Заменить на:

Вариант #1 (скрыть недоступные категории)

if( $allow_list[0] == "all" or in_array( $id, $allow_list ) ) {
    if( $spec_list[0] == "all" or in_array( $id, $spec_list ) ) {
        $returnstring .= "<option style="color:black;" value="" . $id . '" ';
        if( is_array( $categoryid ) ) {
            foreach ( $categoryid as $element ) {
                if( $element == $id ) $returnstring .= 'SELECTED';
            }
        } elseif( $categoryid == $id ) $returnstring .= 'SELECTED';
        $returnstring .= '>' . $sublevelmarker . $cat_info[$id]['name'] . '</option>';
    }
}

Вариант #2 (сделать неактивными недоступные категории)

if( $allow_list[0] == "all" or in_array( $id, $allow_list ) ) {
    if( $spec_list[0] == "all" or in_array( $id, $spec_list ) ) $returnstring .= "<option style="color:black;" value="" . $id . '" ';
    else $returnstring .= "<option style="color:grey;" value="" . $id . '" disabled ';
    if( is_array( $categoryid ) ) {
        foreach ( $categoryid as $element ) {
            if( $element == $id ) $returnstring .= 'SELECTED';
        }
    } elseif( $categoryid == $id ) $returnstring .= 'SELECTED';
    $returnstring .= '>' . $sublevelmarker . $cat_info[$id]['name'] . '</option>';
}

Категория: Самый старый софт для тебя | Просмотров: 276 | Добавил: smoke | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]