Технический сбой

Сайт временно работает в режиме только для чтения, идут восстановительные работы. Приносим свои извинения за неудобства.
DLE FAQ » Все вопросы » Общие вопросы по PHP » Запрет публикации новостей без выбора категории

Запрет публикации новостей без выбора категории


     запрет, категории, добавление новостей    Общие вопросы по PHP, Хаки    6352

вопрос
Всем привет.
У меня статья формируется из доп полей, возникла такая проблема.
Пользователи могут добавлять новостей написав лишь название новости.
Как запретить добавление новости с одним лишь названием.
Т.е. на примере:
Запрет публикации новостей без выбора категории


Можно просто написать название и нажать добавить и новость добавится. Вот как сделать что бы при нажатии добавить если не выбрана категория новость не добавлялась, а выводилась обычное сообщение "Заполните все поля", я так понимаю это в движке условия нужно задать, только я в php не силен. Подскажите пож.
И если не трудно подскажите, есть ли возможность добавить вывод доп полей в предосмотре. А то выдаются просто теги.
Заранее спасибо.

Ответил: maggit


в настройках групп пользователей есть вкладка новости и там в списках зажимай ctrl и выбирай категории в которых может публиковать группа. Можешь выбрать все и тогда если не выбрана категория выскакивает
Внимание, обнаружена ошибка
Вам не разрешена публикация статей в данном разделе сайта, выберите категорию из доступного списка
.

7 комментариев

MozgFx
Юзер

MozgFx - -

Да, но только если добавится новая категория придется редактировать и группу пользователей...

graver
Юзер

graver - -

Зайти в /engine/modules/addnews.php и найти там:

if( $allow_list[0] != "all" ) {


Выше вставить:

if(count($_POST['catlist']) <1) $stop .= "<li> Вы не выбрали категорию</li>";
if(count($_POST['catlist']) ==1 and $_POST['catlist'][0] == 0) $stop .= "<li> Вы не выбрали категорию</li>";


Открыть файл engine/inc/addnews.php и найти примерно такой код:

// Обработка даты и времени
$added_time = time() + ($config['date_adjust'] * 60);

if( $allow_date != "yes" ) {


Выше вставить:

if(count($_POST['category']) <1) msg( "error", $lang['addnews_error'],"Вы не выбрали категорию","javascript:history.go(-1)");
if(count($_POST['category']) ==1 and $_POST['category'][0] == 0) msg( "error", $lang['addnews_error'],"Вы не выбрали категорию","javascript:history.go(-1)");


Установка завершена.

anfalin
Юзер

anfalin - -

Вот лучший вариант,

Установка:
В engine/modules/addnews.php найти второй
if(document.entryform.title.value == ''){
и выше него вставить
if(document.entryform.category.value == '0'){
DLEalert('Вы не выбрали категорию', dle_info);
status = 'fail';
}
в engine/inc/addnews.php найти второй
if(document.addnews.title.value == ''){
и выше него вставить
if(document.addnews.category.value == '0'){
Growl.info({
title: '{$lang[p_info]}',
text: 'Вы не выбрали категорию'
});
status = 'fail';
}
На этом установка завершена

hakypuhbiu
Юзер

hakypuhbiu - -

Отличный вариант! На 10.5 полет нормальный.

LazyDev
PHP-developer

LazyDev - -

anfalin, лучше будет так
if ($("#category option:selected").val() === undefined || $("#category option:selected").val() === '0')

Мой блог: LazyDev.pro

Помогаю с решением проблем на платной основе.

anfalin
Юзер

anfalin - -

Gameer,
Я этот вариант брал с вашего блога, он не работает, по крайней мере у меня.

И нужно чтобы ошибка была на модальном окне.

progressive
Юзер

progressive - -

На DLE 11.1 не работает!

Похожие вопросы

наверх