Перейти к публикации
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.

Исключения для rel='nofollow external'

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

При включении опции закрытия ссылок от индексации с помощью nofollow возникает нежелательный эффект, если форум находится на поддомене (forum.site.ru) - при этом сам домен site.ru считается почему-то внешним и ссылки на него тоже помечаются тегом nofollow. Это может быть плохо для SEO, ссылки могут вести и на другие домены (друзей, например), тогда их лучше бы не закрывать от индексации.

 

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

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

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

Можно включить в разделе использование html и внешние ссылки не закрываются.

Но тоже заинтересован этим вопросом.

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

Есть, если не ошибаюсь, готовая модификация где можно указать список ссылок к которым не применять nofollow. Насчет самого домена делается очень легко - HTTP_HOST разбивается на части по точке и выбираются два последних элемента. По ним и сравнивается наличие хоста в ссылке.

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

При включении опции закрытия ссылок от индексации с помощью nofollow возникает нежелательный эффект, если форум находится на поддомене (forum.site.ru) - при этом сам домен site.ru считается почему-то внешним и ссылки на него тоже помечаются тегом nofollow.

Для 3.4.x

 

Открыть /admin/sources/classes/text/parser/bbcode.php

Найти:

			/* Fetch actual host for better matching */
			$data = @parse_url( $url );

Ниже добавить:

			$http_host = implode( '.', array_slice( explode( '.', $_SERVER['HTTP_HOST'] ), -2 ) );

Найти 2 раза (первый для nofollow, второй для external):

				if ( ! stristr( $data['host'], $_SERVER['HTTP_HOST'] ) )

Заменить на:

				if ( ! stristr( $data['host'], $http_host ) )

 

Для 3.3.x

 

Открыть /admin/sources/classes/bbcode/custom/defaults.php

Найти:

	/* Fetch actual host for better matching */
	$data = @parse_url( $option );

Ниже добавить:

	$http_host = implode( '.', array_slice( explode( '.', $_SERVER['HTTP_HOST'] ), -2 ) );

Найти:

		if ( ! stristr( $data['host'], $_SERVER['HTTP_HOST'] ) )

Заменить на:

		if ( ! stristr( $data['host'], $http_host ) )

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

Домены "друзей" к которым не применять nofollow:

 

Открыть:

3.4x - /admin/sources/classes/text/parser/bbcode.php

3.3x - /admin/sources/classes/bbcode/custom/defaults.php

 

Найти:

					$rels[]	= "nofollow";

Заменить на:

					$whiteHosts = array_filter( explode( "\n", $this->settings['white_hosts'] ) );
					$allowHost  = false;

					foreach( $whiteHosts as $v )
					{
						if( stristr( $data['host'], trim( $v ) ) )
						{
							$allowHost = true;
							break;
						}
					}

					if( ! $allowHost )
					{
						$rels[]	= "nofollow";
					}

 

Админцентр -> Системные настройки -> Импортировать файл с настройками (внизу страницы)

settingGroup_temy-soobscheniia-i-oprosy.xml

 

Темы, Сообщения и Опросы -> Белый список доменов

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

siv1987, спасибо за приведенный код :) Но, мне кажется всё-таки было бы правильнее сделать готовый хук, а то иначе получается возвращение ко временам 2.х :)

Я разместил такую же тему на IPS и на IBR - реакции пока нет.

 

P.S.: Вообще, по-моему IPB теряет популярность с таким подходом разработчиков к тем, кто пишет хуки. Да и хуков толковых процентов пять, не больше. Остальные - тупые рюшечки. :(

Опубликовано:
Но, мне кажется всё-таки было бы правильнее сделать готовый хук, а то иначе получается возвращение ко временам 2.х

Хук не так просто запилить как вам кажется. С правкой файлов вы делаете одну правку в коде и получаете нужный функционал, а с хуком нужно написать стопиццот строк кода, распарсить готовый результат, произвести необходимые модификации, собрать его обратно. Имхо, если человеку нужен именно функционал - он не заморачивается хуком только ради хука. Хук это как правило костыль. Костыль, который можно отключить или включить удобным интерфейсом в АЦ, вот и все. Да, я понимаю, хуком очень удобно оправдать платную модификацию - дополнительная работа для исполнителя, дополнительный индусо код, юзеру удобно - нужно только установить хук, никаких дополнительных телодвижений. Но на халяву и когда редактировать нужно только одну строчку, имхо, можно обойтись и без хука. :) Кому будет интереснее написать, навправление куда копать дальше он уже знает.

  • 1 год спустя...
Опубликовано:

siv1987

Большое спасибо за метод Домены "друзей"! Очень полезная функция, добавил домен друга :)

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

Сейчас на странице 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.