Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы по PHP Запрет публикации новостей без выбора категории

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


     08.11.2011    Общие вопросы по PHP, Хаки    3400

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


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

Ответил: maggit


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

Комментарии пользователей (7)

MozgFx
1

39 | 23

MozgFx - 9 ноября 2011 19:40 - Юзер

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

graver
5

95 | 80

graver - 25 ноября 2012 23:12 - Юзер

Зайти в /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
2

59 | 5

anfalin - 22 июля 2015 23:56 - Юзер

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

Установка:
В 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
91 | 3

hakypuhbiu - 29 июля 2015 16:57 - Юзер

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

Gameer
224

1118 | 394

Gameer - 29 июля 2015 17:02 - Эксперт

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

Истина в противоречии.​

anfalin
2

59 | 5

anfalin - 29 июля 2015 17:45 - Юзер

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

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

progressive
89

progressive - 20 ноября 2016 07:31 - Юзер

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

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

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