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

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

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

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

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

Открыть для индексации отдельные ссылки

Приветствую,

 

есть ли возможность создать админский бб-код для вставки ссылки (в идеале с тайтлом) в статью - чтобы без noindex и nofollow

 

заранее спасибо!

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

  • Автор

Актуально, тут кто-то есть? HELP

А что мешает создать ббкод и проверить?

  • Автор

Мешает недостаток знаний!

 

ссылка имеет вид (см.ниже)

<a href="ссылка" class="bbc_url" title="Ссылка" rel="nofollow external">

как убрать

rel="nofollow external"

 

и в идеале это код в котором также можно заменить тайтл на свой

 

Был бы очень благодарен за помощь!

Мешает недостаток знаний!

Насколько мне известно для создания ббкода в IPB особых знаний не требуется.

Никаким бб-кодом это не сделать. Только хуком или правкой кода

  • Автор
Насколько мне известно для создания ббкода в IPB особых знаний не требуется.

Насколько я вижу вы не читали что мне нужно сделать)

 

суть задачи: есть статьи и туда нужно вставлять пару ссылок без nofollow, в принципе знаю что можно статью редактировать в html - но этот вариант неудобен, думал может для админов сделать ббкод как описал выше, это было бы удобнее всего

 

Никаким бб-кодом это не сделать. Только хуком или правкой кода

 

Подскажи хук, учитывая мои цели, которые я описал выше

Насколько я вижу вы не читали что мне нужно сделать)

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

А что мешает создать ббкод и проверить?

Подскажи хук, учитывая мои цели, которые я описал выше

 

Мне такой хук неизвестен. Я делал для себя правкой кода, но у меня там все нахрен переписано. Да и сделано на скорую руку.

 

И логика там таковая - к нужной ссылке добавляется некоторое кодовое слово, известное только админу ( например www.site,ru/KODOVOESLOVO ) и при окончательном формировании ссылки для вывода делается проверка на это слово и если оно есть то выводиться "прямая" ссылка, нет - ссылка с нофолоу. Костыли конечно, но работает.

 

Минусы.

 

Это правка кода, значит при каждом обновлении движка об этом надо помнить.

 

Ссылка с кодовым словом храниться в базе, значит в случае чего (например при обновлении до 4-той версии) про это надо тоже не забыть .

 

Файл /admin/sources/classes/text/parser/bbcode.php

Строка

 

			$replace = "<a href='{$url}' class='bbc_url' title='{$_title}'{$rel}>{$text}</a>";

Меняется на

 

                if(preg_match('#KODOVOESLOVO#is',$url)){

                   $replace = "<a href='{$url}' class='bbc_url'>{$text}</a>";

               }else{

                   $replace = "<a href='{$url}' class='bbc_url' title='{$_title}'{$rel}>{$text}</a>";

               }

 

Для четверки, кстати, уже нацарапал плагин с одновременным редиректом внешних ссылок, там никаких кодовых слов в базе не сохраняется

С ббкодами использующие ссылки есть одна одна проблема: автоматический парсинг. Сначала их пытается парсить purify опцией autolinking в composite.php, потом _finishUrlsForDisplay в bbcode.php. Заменить какой-то ббкод на тег без костылей довольно проблематично.

 

Второй вариант, который привел кгб, тоже с костылями, но он по легче будет и с меньшими правками. Можно проверить ссылку например по хештегу #follow и при его наличие не добавлять nofollow к ссылкам.

 

В \admin\sources\classes\text\parser\bbcode.php

Найти

 

			$data = @parse_url( $url );

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

 

			if( $follow = preg_match( '/(#|%23)(follow)$/', $url, $m ) )
			{
				$url  = str_replace( $m[0], '', $url );
				$text = str_replace( "#{$m[2]}", '', $text );
			}

 

Найти

 

			if ( $this->settings['posts_add_nofollow'] )

Заменить на

 

			if ( $this->settings['posts_add_nofollow'] AND ! $follow )

Млин, как всегда тороплюсь и забыл

 

        	$replace = "<a href='{$url}' class='bbc_url' title='{$_title}'{$rel}>{$text}</a>";

 

Меняется на

 

			if(preg_match('#KODOVOESLOVO#is',$url)){

				$url = str_replace('KODOVOESLOVO','',$url);

				$replace = "<a href='{$url}' class='bbc_url'>{$text}</a>";

			}else{

				$replace = "<a href='{$url}' class='bbc_url' title='{$_title}'{$rel}>{$text}</a>";

			}

Для четверки, кстати, уже нацарапал плагин с одновременным редиректом внешних ссылок, там никаких кодовых слов в базе не сохраняется

Там тоже с такими костылями?

  • 2 года спустя...

как в 4.2.8 можно такое реализовать?

  • 4 недели спустя...

Меня решение проблемы тоже интересует.

как в 4.2.8 можно такое реализовать?
Меня решение проблемы тоже интересует.

 

Вот

Для четверки, кстати, уже нацарапал плагин с одновременным редиректом внешних ссылок, там никаких кодовых слов в базе не сохраняется

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

Аккаунт

Навигация

Поиск

Поиск

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

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