Если новость добавляет пользователь с сайта, то ему видно все категории, просто они выделены красным. Но это суть дела не решает. Этот хак позволяет скрыть недоступные разделы. Доступные разделы выставляются в админке в настройках группы. До: После: Вариант #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>'; }
|