» » Хак закрыть недоступные разделы при добавлении новости

Хак закрыть недоступные разделы при добавлении новости

Если новость добавляет пользователь с сайта, то ему доступны все категории сайта.Сей Хак разрешает скрыть разделы.
Доступные разделы вывставляются в админке в настройках группы.

Хак закрыть недоступные разделы при добавлении новости


Вариант №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>';
}

Комментарии

А как гостям запретить просматривать некоторые категории, например, посетители могут все категории смотреть а гости при переходе в меню на аудио книги им было отказано в доступе. что то типа того.

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


Личные сообщения

Ваши переписки