Поля профиля и их вывод по своему усмотрению

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

Аватар пользователя avaness avaness 8 апреля 2009 в 21:40

Всем доброго времени суток!

Столкнулся с проблемой вывода списка зарегистрированных пользователей.

Создал доп.поля при регистрации.

Поставил модуль bio, Site User List.

Нужно "сцеить" вывод нужных полей типа:

ИМЯ1 ФИМИЛИЯ1 ОТЧЕСТВО1
пол, возраст, место работы

ИМЯ2 ФИМИЛИЯ2 ОТЧЕСТВО3
пол, возраст, место работы

Как можно реализовать? Если можно пошагово или каким модулем (через views что-то не получается, а через Site User List не получается)?

Комментарии

Аватар пользователя ankheg ankheg 8 апреля 2009 в 21:59

Нормально сцепить, чтобы в одну строчку через запятую, вряд ли получится при помощи модулей. Можно попробовать поставить на дивы, оборачивающие поля, display: inline, и запятые как-нибудь стилями подрисовать.

Аватар пользователя avaness avaness 8 апреля 2009 в 22:15

Ну а если вручную (без модулей), то каким образом?
Реализовано ли такое уже?
Т.е. нужен так понимаю запрос на выбор определенныхз полей из БД для всех юзеров.

Аватар пользователя ankheg ankheg 8 апреля 2009 в 22:57

Я как-то писал простенький модуль на эту тему.

<?php

function mysite_user_menu($may_cache) {
  
$items = array();
    
$items[] = array(
      
'path' => 'users'
      
'title' => t('Участники сообщества'),
      
'callback' => 'mysite_user_list',
      
'access' => user_access('access content'),
      
'type' => MENU_CALLBACK);
  return 
$items;
}

function 

mysite_user_list() {
  
$result db_query(
    
"SELECT u.name, u.uid, u.picture, p.value as bio 
     FROM we_users as u LEFT OUTER JOIN we_profile_values as p ON u.uid=p.uid 
     WHERE u.status=1 and (p.value is not NULL or length(u.picture)>0)
     ORDER BY u.login desc
     LIMIT 100"
    
);
    
    
$output='<div style="padding-left: 2em;"><p>Пока в списке только те, у кого загружен аватар или написана биография.</p>';

  while (

$row db_fetch_object($result)) {
        
$output.='<div style="clear: both; padding-bottom: 16px;"><p>';
        if (!empty(
$row->picture))
        {
            
$output.='<div style="float: left; margin-right: 16px; margin-bottom: 16px; width: 100px;"><img src="'.$row->picture.'"></div>';
        }
        
$output.=l($row->name'user/'.$row->uid).'<br>'.
            
truncate_utf8(strip_tags($row->bio), 300truetrue).'</p></div>';
  }
    
    
$output.= '</div>';

  return 

$output;
}
?>

Код страшненький, но всё же. Используется дополнительно поле bio от модуля profile (из ядра). Если у человека есть аватар или биография, то он в списке. Вот как выглядит на практике http://deadland.ru/users