Задать вопрос
@Nikasak

При добавлении новости выскакивает «Заголовок является обязательным при написании статьи» Ка быть?

При добавлении новости выскакивает "Заголовок является обязательным при написании статьи"

Хотя все заполнено
  • Вопрос задан
  • 407 просмотров
Подписаться 1 Оценить 7 комментариев
Пригласить эксперта
Ответы на вопрос 1
@ber_enot
Веб-разработчик, Vue.js / Node.js
Инструкция для DLE 10.4, не знаю, подойдет для старых версий или нет, но код будет похожий.
Что нам нужно? Нужно вырезать все проверки на пустоту $title и убрать js, который парсит input и выкидывает ошибку, если оно пустое.
Можно поступить проще - найти этот input, поставить ему в качестве значения какое-нибудь слово или хеш, плюс сделать его скрытым (type=hidden), а из шаблона новостей удалить название новости.
Это делается в тех же файлах, для которых описан процесс вырезания проверки.
Делаем копии этих файлов, чтобы можно было отменить изменения в случае ошибки:
  • engine/modlules/addnews.php
  • engine/inc/addnews.php
  • engine/inc/engine.php

Для добавления/редактирования новости не через админку:
engine/modlules/addnews.php

Строка 198:
$title = $db->safesql( $parse->process( trim( strip_tags ($_POST['title']) ) ) );

Удаляем или комментируем ее.
Возможны проблемы с ajax-поиском похожих новостей (они ищутся по заголовку), для этого можно заменить код в этом же файле:
function find_relates ( )
	{
		var title = document.getElementById('title').value;
		ShowLoading('');
		$.post('engine/ajax/find_relates.php', { title: title, mode: 1 }, function(data){
			HideLoading('');
			$('#related_news').html(data);
		});
		return false;
	};

на следующий:
function find_relates ( )
	{		
		return false;
	};


Для добавления новости через админку:
engine/inc/addnews.php

Заменяем блок (54 строка)
if(document.addnews.title.value == ''){ 			Growl.info({
				title: '{$lang[p_info]}',
				text: '{$lang['addnews_alert']}'
			}); return false; }
    else{
        dd=window.open('','prv','height=400,width=750,resizable=1,scrollbars=1')
        document.addnews.mod.value='preview';document.addnews.target='prv'
        document.addnews.submit();dd.focus()
        setTimeout(\"document.addnews.mod.value='addnews';document.addnews.target='_self'\",500)
    }

На этот:
dd=window.open('','prv','height=400,width=750,resizable=1,scrollbars=1')
        document.addnews.mod.value='preview';document.addnews.target='prv'
        document.addnews.submit();dd.focus()
        setTimeout(\"document.addnews.mod.value='addnews';document.addnews.target='_self'\",500)

Блок:
function find_relates ( )
	{
		var title = document.getElementById('title').value;
		ShowLoading('');
		$.post('engine/ajax/find_relates.php', { title: title }, function(data){
			HideLoading('');
			$('#related_news').html(data);
		});
		return false;
	};

Заменяем на:
function find_relates ( )
	{
		return false;
	};


Это удаляем:
if(document.addnews.title.value == ''){
			Growl.info({
				title: '{$lang[p_info]}',
				text: '{$lang['addnews_alert']}'
			});
			status = 'fail';
		}


Удаляем:
if( trim( $title ) == "") {
		msg( "error", $lang['addnews_error'], $lang['addnews_alert'], "javascript:history.go(-1)" );
	}


Для редактирования новости через админку:
engine/inc/editnews.php

Заменяем:
if(document.addnews.title.value == ''){ Growl.info({
				title: '{$lang[p_info]}',
				text: '{$lang['addnews_alert']}'
			}); return false; }
    else{
        dd=window.open('','prv','height=400,width=750,left=0,top=0,resizable=1,scrollbars=1')
        document.addnews.mod.value='preview';document.addnews.target='prv'
        document.addnews.submit();dd.focus()
        setTimeout(\"document.addnews.mod.value='editnews';document.addnews.target='_self'\",500)
    }

На
dd=window.open('','prv','height=400,width=750,left=0,top=0,resizable=1,scrollbars=1')
        document.addnews.mod.value='preview';document.addnews.target='prv'
        document.addnews.submit();dd.focus()
        setTimeout(\"document.addnews.mod.value='editnews';document.addnews.target='_self'\",500)


Заменяем
function find_relates ()
	{
		var title = document.getElementById('title').value;
		ShowLoading('');
		$.post('engine/ajax/find_relates.php', { title: title, id: '{$row['id']}' }, function(data){
			HideLoading('');
			$('#related_news').html(data);
		});
		return false;
	};

На:
function find_relates ()
	{
		return false;
	};


Удаляем:
if(document.addnews.title.value == ''){

			Growl.info({
				title: '{$lang[p_info]}',
				text: '{$lang['addnews_alert']}'
			});

			status = 'fail';

		}

Удаляем строчку:
if( trim( $title ) == "" and $ifdelete != "yes" ) msg( "error", $lang['cat_error'], $lang['addnews_alert'], "javascript:history.go(-1)" );
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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