Регистрация

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

TipTop 15-12-2009, 21:53 2783 Хаки DLE

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

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


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

Другие публикации по категории:

Автоматическое добавление тегов v1.0

Хак на Запрет комментов в новостях новым пользователям

Хак Наша копка для DLE

Хак оформление коментариев для DLE

Хак Оформляем картинки в новости


Комментарии (1)

avatar
#1 Lionprizrak
А как гостям запретить просматривать некоторые категории, например, посетители могут все категории смотреть а гости при переходе в меню на аудио книги им было отказано в доступе. что то типа того.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Powered by Dleshka.org. Сайт предназначен для выбора шаблонов и дополнений с использованием CMS DataLife Engine.
Закрыть