По умолчанию в Друпале исходящие ссылки (в поле домашнего сайта пользователя) закрываются атрибутом "rel=nofollow". Да ищё и добавляется дурацкое "(не проверено)" (или "(not verified)" в буржуйском варианте). Кто-то хочет закрыть такие ещё и в noindex, а кто-то, наоборот - убрать nofollow. Будем лечить.
Нужное находится в файле /includes/theme.inc, функция theme_username. Переопределяем её у себя в теме. Для этого добавляем в template.php свою функцию:
Именно такой код сейчас заработал здесь на сайте (давно хотел сделать - вот, наконец, "дошли руки" :) ). Потому, в частности, сайт теперь честно относится к категории "блоги без nofollow и noindex".
Нужное находится в файле /includes/theme.inc, функция theme_username. Переопределяем её у себя в теме. Для этого добавляем в template.php свою функцию:
function phptemplate_username($object) {Как видно, из кода банально удалено добавление к ссылке тэга nofollow и добавления к имени пользователя "(не проверено)".
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;
}
Внимание: после заливки на сервер новой версии template.php вашей темы требуется очистка кэша! (До этого изменения не будут применены.)
Именно такой код сейчас заработал здесь на сайте (давно хотел сделать - вот, наконец, "дошли руки" :) ). Потому, в частности, сайт теперь честно относится к категории "блоги без nofollow и noindex".
Закрываем исходящие ссылки
Соответственно, при противоположном желании - "всё закрыть", т.е. добавить к nofollow ещё и noindex, то можно использовать следующий вариант кода:$output = '<noindex>'.l($object->name, $object->homepage, array('attributes' => array('rel' => 'nofollow'))).'</noindex>';
Комментарии
Craut
17:29 8.05.2010
Постоянная ссылка (Permalink)
Друпал - заинтересовал, от
Друпал - заинтересовал, от многих слышал хорошие отзывы надо попробовать, может и правда понравится
Shift-Web
06:53 18.05.2010
Постоянная ссылка (Permalink)
Спасибо! Полез ковырять
Спасибо! Полез ковырять
dofollow
08:59 17.07.2010
Постоянная ссылка (Permalink)
Ок,<a
Administrator
13:17 17.07.2010
Постоянная ссылка (Permalink)
Опубликовал комментарий выше
Кто не понял - пробелы в посте являются ссылками (в примере выше они заменены на "plain text" - чисто текст) на продвигаемые ресурсы.
И если HTML разрешён, а вы не просматриваете код комментария, то можете и не заметить подобного "развода". Мотайте на ус.
Administrator
19:38 29.07.2010
Постоянная ссылка (Permalink)
Кстати, получив первый трафик
Казалось бы, получай "халявно-дополнительный трафик" (по фразам/урлам из спамотекста) да радуйся, однако я считаю его паразитным и отрицательно влияющим, т.к. обычно все подобные посетители лишь увеличивают процент отказов, что при нонешней тенденции всё больше влияет в том числе и на выдачу.
dofollow
11:42 24.07.2010
Постоянная ссылка (Permalink)
Спасибо большое.
Спасибо большое.
Сергей
14:53 10.08.2012
Постоянная ссылка (Permalink)
Здравствуйте! А как узнать,
Здравствуйте! А как узнать, находятся ли ссылки в noindex и nofolow на сайте?
Administrator
15:30 11.08.2012
Постоянная ссылка (Permalink)
Как узнать закрыты ли ссылки
ralex999
04:22 15.10.2012
Постоянная ссылка (Permalink)
Спасибо!Теперь я знаю немного
anna
10:48 18.11.2014
Постоянная ссылка (Permalink)
Простите за глупый вопрос,
Простите за глупый вопрос, просто боюсь темплейт методом тыка ковырять. Просто надо добавить:
Или сверху надо
? И снизу несколько кавычек?
У меня Друпал 6. Заранее благодарна.
Administrator
18:34 18.11.2014
Постоянная ссылка (Permalink)
Пост старенький, Друпал (даже
Пост старенький, Друпал (даже шестой) видоизменился за это время. Скорей всего нонче эта функция называется:
Ищите в ней:
И вместо выделенной строчки пишите нужное.
п.с. Я бы не рекомендовал добавлять и вообще не пользоваться тегом noindex. Так что ежели лишь ради этого - не стоит париться. Хотя для получения опыта - пожалуйста. Не нужно бояться править Друпал - просто сохраняйте копию и не зыбывайте сбрасывать кэш (или вообще его отключить на время экспериментов). Другое дело, что с опытом придёт осознание, что трогать код условно "ядра" - не есть "друпал вэй". Однако как "хардкоре-практикум" вполне сойдёт.
Анна
19:17 18.11.2014
Постоянная ссылка (Permalink)
не нашла ничего похожего...
Не нашла ничего похожего. Может быть это и к лучшему, спасибо.
Ну и вообще за ваши статьи, интересности тут у вас такие нашла, не удержалась и расшарила. %)
Единственно не поняла малость, вы пишите про код ядра, а темплейт пхп как вы в теме, или это вы другой темплейт?
Administrator
07:25 19.11.2014
Постоянная ссылка (Permalink)
Сама функция располагается в
Сама функция располагается в файле theme.inc из подкаталога /includes (потому и назвал его "файлом ядра Друпала"). Править можно в ней, но тогда после очередного обновления процедуру придётся обновить.
Чтобы этого не делать, ищете такую же в установленном у вас друпале, копируете себе в темплейт темы, добавляете в конец (или в любое место, точней), переименовываете её в phptemplate_username и редактируете в ней нужный вам код. Теперь вместо вызова "ядрёной" функции (theme_username из /includes/theme.inc) теперь будет отрабатывать эта из вашего темплейта.
В результате подобной процедуры уже нет такой зависимости от обновления Друпала, всё по-прежнему будет работать. Только в тех случаях, если обновлённый друпал имеет правки данной функции - у вас по-прежнему будет исполняться "старый код". Но это редко и почти всегда всё корректно работает.
Добавить комментарий