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

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

Комментарии

Аватар пользователя Geldora Geldora 18 ноября 2009 в 9:56

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

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

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

Аватар пользователя Geldora Geldora 18 ноября 2009 в 10:03

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

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

Аватар пользователя Sinn Sinn 27 января 2010 в 21:43

Quote:

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

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

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

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

Аватар пользователя Arturus Arturus 19 ноября 2009 в 4: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)."

  • Последнее посещение: ".date("d-m-Y H:i",$user->access)."


    • Комментариев: $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', $list, NULL, 'div', array('id'=>'user_list', 'class' => 'user_list_div'));
      print($output);
      }
      ?>

  • Аватар пользователя Sinn Sinn 27 января 2010 в 16: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 iNFerNo 27 января 2010 в 16:35

    а что бы

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

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

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

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

    Аватар пользователя Sinn Sinn 27 января 2010 в 18:27

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

    UTF-8

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

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

    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')