Модификация ядра е107 для переадресации внешних ссылок(external)

Проблема состоит в том, что при наличии внешних ссылок на странице поисковики намеренно уменьшают рейтинги этих страниц, считая их рекламными(существует много объяснений, не суть)... Так же множество людей приходят и флудят на форумах внешними ссылками, дабы набить рейтинги своим сайтам. Данная модификация позволяет избежать пагубного воздействия от этих проблем. Аналог плагина для Word-Press - wp-noexternallinks.

К сожалению в виде плагина для е107 этих модификаций найти не удалось, поэтому придется поработать ручками. Берем фтп-клиент и пожалуй, начнем...

1. Создание локального файла переадресации go-away.html

Первым делом нам необходимо каким-либо образом изменить ссылку, чтобы поисковик на нее не ругался, товарищи с русской комьюнити е107 предлагают такой выход. Создаем в корне сайта файл go-away.html следующего содержания(вскоре поисковики смогут понимать скрипты и нам придется искать другой выход):

GNU.SU | Переход по внешней ссылке
#Тут можно вставить блоки с рекламой)))


#Тут можно вставить блоки с рекламой)))


2. LINK.BB

Открываем /e107_files/bbcode/link.bb и приводим к такому виду, само собой адреса страниц и текст должны быть ваши.

global $pref;

/*
    [link=$parm $extras]$code_text[/link]
    Correct Usage:
    [link=http://mysite.com external]My text[/link]
    [link=http://mysite.com rel=external]My text[/link]
    [link=external]http://mysite.com[/link]
    [link]http://mysite.com[/link]
    [link=mailto:myemail@email.com]My name[/link]
    Historic usage:
    [link=external=http://mysite.com]My text[/link]
*/
    $parm = trim($parm);

    /* Fix for people using link=external= */
    if(strpos($parm,"external=") !== FALSE)
    {
        list($extras,$parm) = explode("=",$parm,2);
        $parm = $parm." ".$extras;
    }
    if(substr($parm,0,6) == "mailto")
    {
        list($pre,$email) = explode(":",$parm);
        list($p1,$p2) = explode("@",$email);
        $p2=rawurlencode($p2);            // Primarily to pick up spaces, which are not allowed
        return "".$code_text."";
    }

    list($link,$extras) = explode(" ",$parm);

    if(!$parm) $link = $code_text;

    if($link == "external" && $extras == "")
    {
        $link = $code_text;
        $extras = "rel=external";
    }

    if($extras == "external" || strpos($extras,"rel=external")!==FALSE)
    {
        $insert = "rel='external' ";
    }
    else
    {
        $insert = ($pref['links_new_window'] && strpos($link,"{e_")===FALSE && substr($link,0,1) != "#"
&& strpos($extras,"rel=internal")===FALSE) ? "rel='external' " : "";
    }
    if (strtolower(substr($link,0,11)) == 'javascript:') return '';


$prefix = '';
if (stristr($link, 'http://') == TRUE)
if (stristr($link, 'http://gnu.su') == FALSE) {
$prefix = e_HTTP."go_away.html?";
$insert = "rel='nofollow' ";
}
return "".$code_text."";


3. URL.BB

Открываем /e107_files/bbcode/url.bb и приводим к такому виду, само собой адреса страниц и текст должны быть ваши.

global $pref;

$parm     = trim($parm);
$external = ($pref['links_new_window'] || strpos($parm, 'external') === 0) ? " rel='external'" : "";

if ($parm && $parm != 'external' && strpos($parm, ' ') === FALSE)
{
$parm = preg_replace('#^external.#is', '', $parm);
if (strtolower(substr($parm,0,11)) == 'javascript:') return '';
$prefix = '';
if (stristr($parm, 'http://') == TRUE)
if (stristr($parm, 'http://www.gnu.su') == FALSE) {
$prefix = e_HTTP."go_away.html?";
$insert = "rel='nofollow' ";
} elseif (stristr($link, 'http://gnu.su') == FALSE) {
$prefix = e_HTTP."go_away.html?";
$insert = "rel='nofollow' ";
}
return "".$code_text."";
}
else
{
  if (strtolower(substr($code_text,0,11)) == 'javascript:') return '';
$prefix = '';
if (stristr($code_text, 'http://') == TRUE)
if (stristr($code_text, 'http://gnu.su') == FALSE) {
$prefix = e_HTTP."go_away.html?";
}
return "".$code_text."";
}


Теперь при щелчке по внешней ссылке мы увидим следующее:

Просмотреть полностью





Вас также может заинтересовать:

Хакерами убито несколько сайтов на е107, с версией ядра ниже 0.7.21 (обновлено)
Релиз Linux-ядра 2.6.37
Релиз ядра Linux 3.13
Релиз ядра Linux 3.5.
e-Tweet Plugin v0.9.2 для е107
SeeAlso плагин для CMS е107