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

Как запретить добавление новости с повторяющим текстом в доп. поле?


     18.07.2015    Общие вопросы    736

вопрос
Здравствуйте, можно ли запретить добавление новости с повторяющимся текстом в доп. поле?
Это что-то на подобие "Запрещаем публикацию новостей с одинаковыми заголовками"
1. Открываем engine/modules/addnews.php.
Находим:
if( dle_strlen( $title, $config['charset'] ) > 200 ) $stop .= $lang['add_err_2'];


Ниже вставляем:
$row = $db->super_query ("SELECT title FROM " . PREFIX . "_post WHERE title = '$title' and approve = '1'");
if ($row['title']) $stop .= "Такой материал уже есть на сайте!";

Автор варианта: Gameer

только на этот раз с одинаковым доп полем!
Спасибо Вам, если конечно такое возможно

Ответил: Gameer


Открываем /engine/modules/addnews.php находим :
if( dle_strlen( $title, $config['charset'] ) > 200 ) $stop .= $lang['add_err_2'];

Ниже вставить :
$p_get = preg_split("/[\|,]+/", $filecontents);
$row = $db->super_query ("SELECT SUBSTRING_INDEX( SUBSTRING_INDEX( xfields,  '{$p_get[0]}|', -1 ) ,  '||', 1 ) as xfield FROM " . PREFIX . "_post WHERE SUBSTRING_INDEX( SUBSTRING_INDEX( xfields,  '{$p_get[0]}|', -1 ) ,  '||', 1 ) LIKE '{$p_get[1]}'");
if ($row['xfield']) $stop .= "Поле {$p_get[0]} уже есть с таким значением!";

{$p_get[0]}
- позиция вашего доп поля (отсчет от 0 и считать через два 0, 2, 4)
{$p_get[1]}
- к позиции добавляем +1

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

dimavdv
9

192 | 33

dimavdv - 18 июля 2015 15:36 - Юзер

Просто я добавляю HTML-код с ютуба в доп поле. Добавил более 1000 и мне уже начинает казаться что я по второму кругу пошел.

vitnet
218

2171 | 930

vitnet - 18 июля 2015 16:10 - Эксперт

dimavdv,
HTML-код iframe?

dimavdv
9

192 | 33

dimavdv - 18 июля 2015 16:24 - Юзер

Да (но не совсем), в доп поле вставляю код который выделил: https://y....m/watch?v=rLudVBlN0-A

vitnet
218

2171 | 930

vitnet - 18 июля 2015 16:34 - Эксперт

Ну в таком случае все намного проще.

Gameer
224

1118 | 394

Gameer - 18 июля 2015 16:34 - Эксперт

***Комментарий удален***

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

dimavdv
9

192 | 33

dimavdv - 18 июля 2015 20:36 - Юзер

***Комментарий удален***

dimavdv
9

192 | 33

dimavdv - 18 июля 2015 20:49 - Юзер

Все решил, отсчет от 1, доп поле по счету второе. Я поставил двойку и заработало!

Gameer
224

1118 | 394

Gameer - 18 июля 2015 20:59 - Эксперт

dimavdv, я забыл написать что считать нужно через два. Поле 0 потом 2. а во втором 1 а потом 3

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

dimavdv
9

192 | 33

dimavdv - 18 июля 2015 20:58 - Юзер

Можете вставить в ответ! Вопрос решен!

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

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