Блок с профилем текущего юзера [РЕШЕНО]
Прислано: Mail4iK
пн, 02/02/2009 - 07:12
Как сделать, чтобы на странице выводился блок с информацией о текущем пользователе?
- Mail4iK's blog
- Для комментирования войдите или зарегистрируйтесь
Можно вручную сделать: /admin/build/block/add
input format: php-code
Все данные в переменной $user
- Для комментирования войдите или зарегистрируйтесь
<?php
global $user;
$account = user_load(array('uid' => $user->uid));
if ($use_fields = variable_get('profile_block_author_fields', array())) {
// Compile a list of fields to show.
$fields = array();
$result = db_query('SELECT name, title, type, visibility, weight FROM {profile_fields}
WHERE visibility IN (%d, %d) ORDER BY weight', PROFILE_PUBLIC, PROFILE_PUBLIC_LISTINGS);
while ($record = db_fetch_object($result)) {
// Ensure that field is displayed only if it is among the defined block fields and,
// if it is private, the user has appropriate permissions.
if (isset($use_fields[$record->name]) && $use_fields[$record->name]) {
$fields[] = $record;
}
}
}
$output = '';
if (!empty($fields)) {
$profile = _profile_update_user_fields($fields, $account);
$output = theme('profile_block', $account, $profile, TRUE);
}
return $output;
?>- Для комментирования войдите или зарегистрируйтесь
Спасибо большое
- Для комментирования войдите или зарегистрируйтесь
А можно теперь для тупых объяснить что и куда писать? Как это дело вывести?
- Для комментирования войдите или зарегистрируйтесь
спасибо, полезно
- Для комментирования войдите или зарегистрируйтесь
Идете в Управление > Конструкция сайта > Блоки (Закладка «добавить блок») (admin/build/block/add)
В текст блока вставляете приведенный код, ставите формат ввода PHP code, даете название блоку, сохраняете.
Далее размещаете блок в нужном вам регионе ...
Вроде все - остальные настройки область видимости и кому виден по своему усмотрению ...
(так как анонимусам блок все равно ничего не выводит, то наверное имеет смысл проставить видимость
для всех ролей кроме анонимусов)
PS. Блок будет работать только если задействован стандартный модуль Profile, поэтому корректней в сниппете
проверить включен ли этот модуль
if(module_exists('profile')) { // //код сниппета // }
- Для комментирования войдите или зарегистрируйтесь
Спасибо, но я так и делал (и не раз) :(
- Для комментирования войдите или зарегистрируйтесь
php в базе - зло (с) кто-то
- Для комментирования войдите или зарегистрируйтесь
Посмотрите Новый модуль WrapperBlocks , может поможет :)
- Для комментирования войдите или зарегистрируйтесь
хм... будем считать, что локальный баг конкретной установки, благо там ничего нет. А за модуль спасибо.
- Для комментирования войдите или зарегистрируйтесь





Комментарии