Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Grower

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

Recommended Posts

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

 

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

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

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

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

как убрать

rel="nofollow external"

 

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

 

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

Share this post


Link to post
Share on other sites
Мешает недостаток знаний!

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
Насколько мне известно для создания ббкода в IPB особых знаний не требуется.

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

 

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

 

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

 

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites
Подскажи хук, учитывая мои цели, которые я описал выше

 

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

 

И логика там таковая - к нужной ссылке добавляется некоторое кодовое слово, известное только админу ( например 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>";

               }

 

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

  • Upvote 1

Share this post


Link to post
Share on other sites

С ббкодами использующие ссылки есть одна одна проблема: автоматический парсинг. Сначала их пытается парсить 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 )

Share this post


Link to post
Share on other sites

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

 

        	$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>";

			}

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

  • Upvote 1

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
как в 4.2.8 можно такое реализовать?
Меня решение проблемы тоже интересует.

 

Вот

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...