Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

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

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.
Русский язык для Invision Community 5

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

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

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

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

\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))

 

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

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

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.