Статистика в профиле

Прислано: Arturus

ср, 18/11/2009 - 04:44

Другие статьи по теме:

Как сделан такой профиль? Особенно интересует статистика в профиле.
http://drupalsn.com/user/kevin.wall

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано Geldora в ср, 18/11/2009 - 06:56.

Кстати говоря, это quick-tabs!

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

Кстати, статистика - это ядро + пара доп модуле (user stats, может еще что...) Все красиво выглядит, потому что они вкладки - которые обычно идут сверху внизу как-то вставили в квик-табы...


Опубликовано Geldora в ср, 18/11/2009 - 07:03.

Кстати, на теме на Др.орге ВСЕ спрашивают только про профиль - http://drupal.org/node/288476

Но тема старая, он видимо начнал с 5ки, потом проапдейтил до 6ки и многое изменил. Возможно там content_profile стоит + квик табы, кто знает...


Опубликовано Arturus в ср, 18/11/2009 - 07:06.

А подробнее про статистику можно?
Я поставил user stats, но как ее вывести, в профиль к примеру?


Опубликовано Arturus в чт, 19/11/2009 - 01:51.

Не знаю как правильно делать, сделал сниппетом в блоке и показал блок только в профиле
Выводит вот такую статистику

# Дата регистрации: 26-10-2009
# Последнее посещение: 19-11-2009 01:28

* Комментариев: 11
* Запись в блоге 2
* Форум 5
* Изображение 86
* Новости 4
* Галерея 31
* Фотографии в галереях 1322
* Заметка 1

<?php
 $userid 
arg(1);
  if (
is_numeric($userid)) {

$nblimit 30;

$query "SELECT name, uid, created,  access FROM {users} 
WHERE uid=
$userid ";

$result db_query_range($query, array('user'0), 0$nblimit);


$list = array();
while (
$user db_fetch_object($result)) {

//кол-во комментариев
$users_com db_query("SELECT COUNT(cid) AS count, {users}.uid, {users}.name FROM {comments} LEFT JOIN {users} ON {comments}.uid = {users}.uid WHERE {comments}.uid = $user->uid GROUP BY uid ORDER BY count ");

$user_com db_fetch_object($users_com);

$list[] ="
Дата регистрации: "
.date("d-m-Y",$user->created)."
<li>Последнее посещение: "
.date("d-m-Y H:i",$user->access)."
<br><br>
<ul>
<li>Комментариев: 
$user_com->count
"
;


//документы
$q "SELECT {node_type}.name as tipo,count({node}.type) as cant, {users}.uid, {users}.name 
FROM {node} 
LEFT JOIN {users} ON {node}.uid = {users}.uid 
LEFT JOIN {node_type} ON {node}.type = {node_type}.type 
WHERE {node}.uid = 
$user->uid
group by {node}.type"
;

$result_doc db_query ($q);
while ( 
$row db_fetch_object $result_doc ) )
{
$list[]  = "$row->tipo $row->cant"  ;
}



}

$output theme('item_list'$listNULL'div', array('id'=>'user_list''class' => 'user_list_div'));
print(
$output);
}
?>


Опубликовано Sinn в ср, 27/01/2010 - 13:01.

Немного переработал код, убрал лишнее и привел к стандарту дрюпала. Поправил темзацию. Вставил сниппет в user-profile.tpl.php. В нем сразу доступна переменная $account с информацией о пользователе.


<?php
 $userid 
$account->uid;
  if (
is_numeric($userid)) {
    
$list_content = array();
    
$list_private = array();

    
$list_private[] = "Дата регистрации: ".format_date($account->created"medium");
    
$list_private[] = "Последнее посещение: ".format_date($account->access"medium");
        
//кол-во комментариев
        
$result_com db_query("SELECT COUNT(cid) AS count, {users}.uid, {users}.name FROM {comments} LEFT JOIN {users} ON {comments}.uid = {users}.uid WHERE {comments}.uid = $userid GROUP BY uid ORDER BY count ");
        
$user_com db_fetch_object($result_com);    
        
$list_content[] = "Комментариев: $user_com->count";

        
//документы
        
$q "SELECT {node_type}.name as tipo,count({node}.type) as cant, {users}.uid, {users}.name 
        FROM {node} 
        LEFT JOIN {users} ON {node}.uid = {users}.uid 
        LEFT JOIN {node_type} ON {node}.type = {node_type}.type 
        WHERE {node}.uid = 
$userid
        group by {node}.type"
;
        
$result_type db_query($q);
        while (
$row db_fetch_object($result_type))
        {
            
$list_content[]  = $row->tipo.": ".$row->cant;
        }
    
$output theme('item_list'$list_privateNULL'ul', array('id'=>'user_list_private''class' => 'user_list'));
    
$output .= theme('item_list'$list_contentNULL'ul', array('id'=>'user_list_content''class' => 'user_list'));
    print(
$output);
}
?>


Опубликовано iNFerNo в ср, 27/01/2010 - 13:35.

а что бы

$list_private[] = "Дата регистрации: ".format_date($account->created, "medium");
$list_private[] = "Последнее посещение: ".format_date($account->access, "medium");

выводились не ироглифами а русскими буквами

в какой кодирвоке коды нада сохранять***???

а можно ли выводить всю статистику по материалам не все подряд а на выбор это хочу что бы выводилось а это не хочу...


Опубликовано iNFerNo в ср, 27/01/2010 - 13:37.

а эту статситику в $tabs дополнительный ни как нельзя?


Опубликовано Sinn в ср, 27/01/2010 - 15:27.

"iNFerNo" написал(а):

выводились не ироглифами а русскими буквами

UTF-8

"iNFerNo" написал(а):

а можно ли выводить всю статистику по материалам не все подряд а на выбор это хочу что бы выводилось а это не хочу...

изменяете запрос в конце - добавляете только то, что надо

WHERE {node}.uid = $userid AND ({node_type}.type = 'blog' OR {node_type}.type = 'node_gallery_gallery' OR {node_type}.type = 'node_gallery_image' OR {node_type}.type = 'forum')


Опубликовано iNFerNo в ср, 27/01/2010 - 18:07.

да нет я имел ввиду не правя код и что бы любой юзер мог это задавать.


Опубликовано Sinn в ср, 27/01/2010 - 18:39.

Это модулем. Каким? Не знаю.


Опубликовано Sinn в ср, 27/01/2010 - 18:43.

Цитата:

Я поставил user stats, но как ее вывести, в профиль к примеру?

темизация user-profile.tpl.php, а там надо добавить вывод нужной статистики

<?php
<p>Post count: <?php print user_stats_get_stats('post_count'$account->uid); ?></p>
?>

в readme.txt модуля, в принципе, все написано.


Новое на сайте

Ссылки партнёров

Обучим тактике развития Бизнеса - Чайковский авто. Автомобили ГАЗ в Чайковском.