Настраиваем исходящие ссылки в Друпале - nofollow, noindex и наоборот

Друпал - ссылки nofollow и noindex
По умолчанию в Друпале исходящие ссылки (в поле домашнего сайта пользователя) закрываются атрибутом "rel=nofollow". Да ищё и добавляется дурацкое "(не проверено)" (или "(not verified)" в буржуйском варианте). Кто-то хочет закрыть такие ещё и в noindex, а кто-то, наоборот - убрать nofollow. Будем лечить.
Нужное находится в файле /includes/theme.inc, функция theme_username. Переопределяем её у себя в теме. Для этого добавляем в template.php свою функцию:
function phptemplate_username($object) {

if ($object->uid && $object->name) {
// Shorten the name when it is too long or it will break many tables.
if (drupal_strlen($object->name) > 20) {
$name = drupal_substr($object->name, 0, 15) .'...';
}
else {
$name = $object->name;
}

if (user_access('access user profiles')) {
$output = l($name, 'user/'. $object->uid,
array('attributes' => array('title' => t('View user profile.'))));
}
else {
$output = check_plain($name);
}
}
else if ($object->name) {
// Sometimes modules display content composed by people who are
// not registered members of the site (e.g. mailing list or news
// aggregator modules). This clause enables modules to display
// the true author of the content.

if (!empty($object->homepage)) {
$output = l($object->name, $object->homepage // Убираем nofollow
/*, array('attributes' => array('rel' => 'nofollow')) */ ); }
else {
$output = check_plain($object->name);
}
// Убираем "(не проверено)"
/* $output .= ' ('. t('not verified') .')'; */
}
else {
$output = check_plain(variable_get('anonymous', t('Anonymous')));
}

return $output;
}
Как видно, из кода банально удалено добавление к ссылке тэга nofollow и добавления к имени пользователя "(не проверено)".

Внимание: после заливки на сервер новой версии template.php вашей темы требуется очистка кэша! (До этого изменения не будут применены.)

Именно такой код сейчас заработал здесь на сайте (давно хотел сделать - вот, наконец, "дошли руки" :) ). Потому, в частности, сайт теперь честно относится к категории "блоги без nofollow и noindex".

Закрываем исходящие ссылки

Соответственно, при противоположном желании - "всё закрыть", т.е. добавить к nofollow ещё и noindex, то можно использовать следующий вариант кода:
$output = '<noindex>'.l($object->name, $object->homepage, array('attributes' => array('rel' => 'nofollow'))).'</noindex>';

Если вам помогла или просто понравилась статья - плюсаните/поделитесь, пожалуйста.

Комментарии

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

Ок,<a href="http://stal-resurs.ru/"> </a>спасибо!<a href="http://tometaxy.net/"> </a>Тоже<a href="http://michelle-nk.ru/"> </a>хочу<a href="http://animeroyal.ru/"> </a>попробывать<a href="http://ppsychology.ru/"> </a>Друпал.<a href="http://tspdesign.ru/"> </a>В основном на джумле<a href="http://shpatelek.ru/"> </a>работал,<a href="http://frikase.ru/"> </a>но думаю и друпал надо освоить, пригодится.
Опубликовал комментарий выше как показательный пример - как "гадят ф каменты" с целью продвижения (т.к. данный сайт - DoFollow).
Кто не понял - пробелы в посте являются ссылками (в примере выше они заменены на "plain text" - чисто текст) на продвигаемые ресурсы.
И если HTML разрешён, а вы не просматриваете код комментария, то можете и не заметить подобного "развода". Мотайте на ус.
Кстати, получив первый трафик по "проспамленному тексту" из "примера" выше - понял, что нужно заключать подобный в noindex, что и было сделано.
Казалось бы, получай "халявно-дополнительный трафик" (по фразам/урлам из спамотекста) да радуйся, однако я считаю его паразитным и отрицательно влияющим, т.к. обычно все подобные посетители лишь увеличивают процент отказов, что при нонешней тенденции всё больше влияет в том числе и на выдачу.

Здравствуйте! А как узнать, находятся ли ссылки в noindex и nofolow на сайте?

Спасибо! Теперь я знаю немного больше. :)

Простите за глупый вопрос, просто боюсь темплейт методом тыка ковырять. Просто надо добавить:

$output = '<noindex>'.l($object->name, $object->homepage, array('attributes' => array('rel' => 'nofollow'))).'</noindex>';

Или сверху надо

function phptemplate_username($object) {

? И снизу несколько кавычек?

У меня Друпал 6. Заранее благодарна.
 

Пост старенький, Друпал (даже шестой) видоизменился за это время. Скорей всего нонче эта функция называется:

function theme_username($object) {

Ищите в ней:

    if (!empty($object->homepage)) {
      $output = l($object->name, $object->homepage, array('attributes' => array('rel' => 'nofollow')));
    }

И вместо выделенной строчки пишите нужное.

п.с. Я бы не рекомендовал добавлять и вообще не пользоваться тегом noindex. Так что ежели лишь ради этого - не стоит париться. Хотя для получения опыта - пожалуйста. Не нужно бояться править Друпал - просто сохраняйте копию и не зыбывайте сбрасывать кэш (или вообще его отключить на время экспериментов). Другое дело, что с опытом придёт осознание, что трогать код условно "ядра" - не есть "друпал вэй". Однако как "хардкоре-практикум" вполне сойдёт.

Не нашла ничего похожего. Может быть это и к лучшему, спасибо.

Ну и вообще за ваши статьи, интересности тут у вас такие нашла, не удержалась и расшарила. %)

Единственно не поняла малость, вы пишите про код ядра, а темплейт пхп как вы в теме, или это вы другой темплейт?

Сама функция располагается в файле theme.inc из подкаталога /includes (потому и назвал его "файлом ядра Друпала"). Править можно в  ней, но тогда после очередного обновления процедуру придётся обновить.

Чтобы этого не делать, ищете такую же в установленном у вас друпале, копируете себе в темплейт темы, добавляете в конец (или в любое место, точней), переименовываете её в phptemplate_username и редактируете в ней нужный вам код. Теперь вместо вызова "ядрёной" функции (theme_username из /includes/theme.inc) теперь будет отрабатывать эта из вашего темплейта.

В результате подобной процедуры уже нет такой зависимости от обновления Друпала, всё по-прежнему будет работать. Только в тех случаях, если обновлённый друпал имеет правки данной функции - у вас по-прежнему будет исполняться "старый код". Но это редко и почти всегда всё корректно работает.

Добавить комментарий

Подписка на Комментарии к "Настраиваем исходящие ссылки в Друпале - nofollow, noindex и наоборот" Подписка на NOINDEX.by - Все комментарии