Jump to content
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.

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

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

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

Featured Replies

\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 weeks later...
\admin\applications\forums\sources\classes\post\classPost.php

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

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

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

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

google.jpg

 

google2.jpg

  • Author

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

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

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

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

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

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

Edited by Strategius

  • Author

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

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

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

 

Можно попробовать как-нибудь со способом отсюда объединить 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))

 

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

Create an account or sign in to comment

Recently Browsing 0

  • No registered users viewing this page.

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.