Drupal для блогера: режим dofollow

О том, что такое "dofollow', говорилось во многих местах, в том числе на странице списка русскоязычных dofollow-блогов. Поскольку в Друпале по умолчанию во всех гостевых комментариях стоит атрибут rel="nofollow", имеет смысл пояснить, как именно включается режим «dofollow».

Режим отображения этого атрибута можно изменить, определив функцию themeid_username() т поместив её в файл template.php в каталоге используемой вами темы оформления.

Узнать, какую темы вы используете, вы можете, или посмотрев в исходный код страницы (там часто указано имя темы), или открыв меню «Администрирование» -> «Конструкция сайта» -> «Темы оформления».

Теперь файловым менеджером или иным удобным способом откройте каталог (папку) themes/themeid, где themeid — идентификатор (имя) темы (пишется латинскими буквами. цифрами и знаком подчёркивания). Убедиться, что вы используете точный идентификатор темы можно, открыв файл с расширением .info, находящийся в каталоге с файлами темы.

Если в каталоге нет файла template.php, создайте его (не забудьте про <?php в начале файла). Если есть, скопируйте туда следующий код, заменив themeid идентификатором используемой вами темы:

function themeid_username($object) {

  if ($object->uid && $object->name) {
    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) {
    if (!empty($object->homepage)) {
      $output = l($object->name, $object->homepage, array(
        'attributes' => array(
          'rel' => 'external')
        )
      );
    }
    else {
      $output = check_plain($object->name);
    }

    // $output .= ' ('. t('not verified') .')';
  }
  else {
    $output = variable_get('anonymous', t('Anonymous'));
  }

  return $output;
}

Там, где стоит строка 'external', код из ядра Друпала ставит по умолчанию 'nofollow'. В нашем случае все ссылки будут отмечены атрибутом rel="external". Если это также излишне, удалите или закомментируйте эту строку в коде выше. Код функции основан на фрагменте, скопированном непосредственно из ядра Друпала 6 и переопределяет логику отображения имён анонимных комментаторов и ссылок в заголовках их комментариях (это документированный способ, именно так и надо переопределять отображение).

Сохраните файл, убедитесь, при помощи команды

$ php -l template.php

что файл не содержит синтаксических ошибок, и сбросьте реестр тем, очистив кэш (если вы его используете), в меню «Администрирование» -> «Настройки сайта» -> «Производительность»

Всё, dofollow работает. Не забудьте только устраивать подобную модификацию всякий раз, когда обновляете тему или используете другую.

Адрес уведомления об обратной ссылке для этой записи:

http://boyandin.info/trackback/113