Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Запред публикации сообщений с сылками из черного списка

Опубликовано:

Добрый день, как сделать что бы сообщения со ссылками из черного списка не публиковались или шли на премодерацию? сейчас они публикуются, а ссылки из списка просто в них не активны.

За долбали уже спамеры и вопросы обходят и рекапчу(я не робот) видимо ручками кто то работает усердно ((

Рекомендованные сообщения

Опубликовано:

\admin\applications\forums\sources\classes\post\classPost.php

Найти

		//-----------------------------------------
	// Merge concurrent posts?
	//-----------------------------------------

Выше добавить

		$classToLoad = IPSLib::loadLibrary(IPS_ROOT_PATH . 'sources/classes/text/parser.php', 'classes_text_parser');
	$parser = new $classToLoad();
	$parser->testForParsingLimits($post['post']);

	$errors = $parser->getErrors();

	if (is_array($errors) and in_array('domain_not_allowed', $errors))
	{
		if ($this->getIsAjax() !== true)
		{
			$this->_postErrors = $this->lang->words['domain_not_allowed'];
			$this->showReplyForm();
			return;
		}

		throw new Exception($this->lang->words['domain_not_allowed']);
	}

ИМХО, ошибку о запрете публикации "черных" ссылок лучше заменить на что-нибудь нейтральное, чтобы спамер не догадался. Например, "Извините, произошла ошибка. Попробуйте позже."

Опубликовано:

@newbie,

А для 3.1.4 можно такой фикс?

Опубликовано:

А для 3.1.4 можно такой фикс?

Зачем?

Проверил работу фильтров на 3.1.4. Там без всяких фиксов все работает.

Опубликовано:

Проверил работу фильтров на 3.1.4. Там без всяких фиксов все работает.

Так в вашем варианте такое сообщение становиться премодерируемым, то есть оно должно быть потверждено. Или я что то не так понял?

Опубликовано:

Так в вашем варианте такое сообщение становиться премодерируемым, то есть оно должно быть потверждено

Нет.

Выводится сообщение о том, что содержатся запрещенные ссылки.

  • 2 недели спустя...
Опубликовано:
\admin\applications\forums\sources\classes\post\classPost.php

@newbie, спасибо большое за способ! Работает, правда, только с протоколом http(s)://www, без него ссылка публикуется, правда, не кликабельная, но тем не менее.

Опубликовано:

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

Так это вообще не ссылка, а текст.

Напишите в редакторе любую разрешенную ссылку с http(s) и без.

google.jpg

 

google2.jpg

Опубликовано:
  • Автор

Спасибо, работает. Только спамер оказался умный и просто стал публиковать ссылки текстом то есть вот так ipbskins.ru причем публикует не прямо на сайт а на сервисы переадресации или так же через переадресацию на blogspot.com в общем за ***** он уже.

Как хоть от такого избавится??

Опубликовано:

просто стал публиковать ссылки текстом то есть вот так ipbskins.ru причем публикует не прямо на сайт а на сервисы переадресации или так же через переадресацию на blogspot.com в общем за ***** он уже.

Как узнать, что это именно ссылка?

Можете попробовать фильтр нецензурных слов.

Опубликовано:

Можно попробовать как-нибудь со способом отсюда объединить http://ipbskins.ru/forum/topic12377.html/page__view__findpost__p__81292. Тот код проверяет наличие определенных наборов символов, например, 'http://', '.ru', '.ру' и т.п. и блокирует отправку сообщения в случае наличия.

Изменено пользователем Strategius

Опубликовано:
  • Автор

Как узнать, что это именно ссылка?

Можете попробовать фильтр нецензурных слов.

Дак фильтр слов не запрещает публикацию сообщений, а просто заменяет слово

 

Можно попробовать как-нибудь со способом отсюда объединить http://ipbskins.ru/forum/topic12377.html/page__view__findpost__p__81292. Тот код проверяет наличие определенных наборов символов, например, 'http://', '.ru', '.ру' и т.п. и блокирует отправку сообщения в случае наличия.

Это уже стоит, так же публикует просто текст.

 

Я просто полагал, что фильтр ссылок работает по принципу фильтра слов, то есть если я ставлю запрет на *yandex.ru* то это упоминание в сообщении будет под запретом, а оказалось, что только на ссылки распространяется (((

Опубликовано:
Это уже стоит, так же публикует просто текст.

Потому что там по-умолчанию под запретом только http://, также нужно прописать ID групп и количество сообщений. Можно добавить самые популярные домены:

 

foreach( array('<a ', 'http://', 'https://', 'www', '.ru', '.ру', '.ком', '.рф', '.com', '.club', '.online', '.space', '.market', '.xyz', '.tor', '.top', '.moscow', '.me', '.net', '.ua', '.uk', '.info', '.org', '.fm', '.biz', '.xxx', '.pro', '.tel', '.to', '.edu', '.travel', '[/url]') as $v )

Опубликовано:

@newbie,

Я пробовал добавить Ваш код в метод siv1987, отсюда: http://ipbskins.ru/forum/topic12377.html/page__st__15#entry81292

 

Но в том файле почему-то не работает условие if (is_array($errors) and in_array('domain_not_allowed', $errors))

 

Подгрузку ошибок добавил:

 

$errors = $parser->getErrors();

Опубликовано:
Дак фильтр слов не запрещает публикацию сообщений, а просто заменяет слово

Так я и не писал про запрет.

Оптимально контент юзеров, написавших менее 5 постов, установить на модерацию. После переводить в группу проверенных.

 

Но в том файле почему-то не работает условие if (is_array($errors) and in_array('domain_not_allowed', $errors))

 

Что я должен сделать (шаги), чтобы условие не сработало?

Создайте аккаунт или войдите в него для комментирования

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.