Профили, кастомизация юзернейма

Главные вкладки

Аватар пользователя Stargazer Stargazer 2 февраля 2010 в 19:05

В общем встала вот такая проблемка: есть имя юзера, которое отображается везде, есть в профиле поле url и список с выборкой. Нужно взять урл и в зависимости от выбранного варианта списка кастомизировать линк, который будет пристыкован к имени узера, которое отображает везде(коменты, блок профиля, автор и т.д.)

Есть-ли какой-нить хук или модуль или нужно самому ковыряться в апи? Перерыл всё, что можно, подходящего не нашёл ):

Вообще есть ли какие-то модули для работы с кастомизацией профилей и выводом оттуда информации?

Заранее благодарен!

Комментарии

Аватар пользователя gorr gorr 2 февраля 2010 в 20:53

Есть функция theme_username, которую можно перекрыть, создав к примеру в теме функцию phptemplate_username, взяв за основу приведенную ниже стандартную, только поменяв то, что нужно. На вход она принимает объект юзера.
<?php
function theme_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, 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;
}
?>

Аватар пользователя Сьюз Сьюз 5 июня 2010 в 8:28

У Вас получилось?
У меня похожая ситуация. Есть толпа юзеров, фото и ФИО которых должны выводиться (вьювзом) на страничке их мест работы, которые они указывают во время регистрации. То есть если Петя работает на заводе, а Лена в магазине, то на странице завода появляется фото Пети с ссылкой на его профиль, а на странице магазина - фото Лены.. Даже имея код, приведённый выше, всё равно не понимаю - что и как сделать...

Аватар пользователя gorr gorr 5 июня 2010 в 11:04

В Вашем случае абсолютно нет необходимости использовать этот способ, нужно просто настроить нужный вьюз, чтобы выводились нужные поля.
Тут шла речь о том, чтобы в любом комменте и материале пользователя отображать дополнительные данные автора, и использовать надо такой способ только в случае необходимости, потому что существенно может вырасти нагрузка.