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

Тема в разделе "DLE", создана пользователем killoff, 8 авг 2015.

Информация :
Актуальная версия DataLife Engine 12.0
( Final Release v.12.0 | Скачать DataLife Engine | Скачать 12.0 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.3 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Модераторы: killoff
  1. killoff

    killoff CD тихо, и не DVD меня ;)

    Moderator
    Регистр.:
    13 май 2008
    Сообщения:
    2.243
    Симпатии:
    832
    Хак, который не даёт добавить новость пока не выбрал категорию. Хорош тем, что ошибка выводится в модальном окне без перезагрузки страницы и потерь данных которые пытались добавить.

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

    У меня на версии 10.5 именно по такому коду не заработал, по аналогии с соседним кодом в двиге прописал строку document.addnews.category.value == '0' без 0, т.е. document.addnews.category.value == '', и только тогда выбор категорий стал обязательным.

    Вообще штука неплохая, почему бы её в "коробку" DLE не добавляют?
     
  2. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.211
    Симпатии:
    2.239
    Выруби JS - узнаешь :)
     
    killoff нравится это.
  3. killoff

    killoff CD тихо, и не DVD меня ;)

    Moderator
    Регистр.:
    13 май 2008
    Сообщения:
    2.243
    Симпатии:
    832
    Таким же способом идёт проверка на заполнение всех других полей при добавлении новости. И что они без JS нормально работают, в отличие от этого кода? :eek:
     
  4. Gameer

    Gameer Постоялец

    Регистр.:
    25 апр 2014
    Сообщения:
    130
    Симпатии:
    84
    так ведь лучше будет
    HTML:
    if ($("#category option:selected").val() === undefined || $("#category option:selected").val() === '0')
     
  5. killoff

    killoff CD тихо, и не DVD меня ;)

    Moderator
    Регистр.:
    13 май 2008
    Сообщения:
    2.243
    Симпатии:
    832
    Видел этот код уже в комментах у автора.
    Уу меня при добавлении этого кода вылетает ошибка синтаксиса именно в этой строчке (DLE 10.5, делал для админки).