Задача:
Нужно вывести данные из профиля пользователя (автора node) на странице отображения конкретного материала.При этом желательно использовать node.tpl.php (в шаблоне доступно $nid автора). Решение через views знаю, но надо постараться обойтись без него. Первым пришло в голову
<?php
global $user;
$original_user = $user;
$user = user_load(array('uid' => 1)); // загружаем юзера
profile_load_profile(&$user);// загружаем данные из профиля
// вытаскиваем из профиля нужные поля
$user = $original_user; //загружаем себя назад
?>
но помоему это как-то стремно... должен быть способ поизящние:)
З. Ы. Просить больше не буду... розберусь до конца - помогать буду))
Комментарии
<?php
$author = user_load($node->uid);
profile_load_profile($author);
echo $author->...
?>
т.е. использовать 1 запрос во вьюсах вы считаете зазорным, а 3 нод лоада сделать на странице это фуфло (user_load примерно = node_load).
По моему при показе ноды ее юзер (создатель) уже полностью подгружен со всеми полями (в том числе из профиля)
т.е. вам остается только в препроцессе ноды определить переменную какую вы хотите вывести и в шаблоне ее напечатать
<?php
function ваша_тема_preprocess_node(&$variables){
$u = $variables['user'];
// здесь в $u ваш юзер уже с полностью заполненными полями
// определяем нашу новую переменную
$variables['author_node'] = $u->profile_user_name;
} // в шаблоне node.tpl.php просто
print $author_node;
?>
PS. Извиняюсь наврал в $variables['user'] все же текущий юзер а не автор, так что без user_load не обойтись
но вот profile_load_profile уже излишен т.е. где то так
<?php
function ваша_тема_preprocess_node(&$variables){
$u = user_load($variables['node']->uid);
// здесь в $u ваш юзер уже с полностью заполненными полями
// определяем нашу новую переменную
if (isset($u->profile_user_name)) {
$variables['author_node'] = $u->profile_user_name;
}
}
?>
Это если юзается стандартный модуль профайл, а если content_profile? Получаем node_load ;).
PS. Не боюся я синкор у меня может тоже обострение весеннее, на холивары всяческие тянет и матом ругаться хочется.
Оффтоп: Подскажите лучше скрипт на jQuery который умеет линейную структуру (к примеру теги li) разбивать на страницы с кнопками next и prev. (http://www.geckonewmedia.com/blog/2009/8/20/simplepager---jquery-paging-... не предлагать) (самому писать лениво, вестна однако).
Синкору же накликаешь, итак весна
Не излишен:) Проверено на практике)