Список пользователей и количество записей в каждом блоге



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

<?php
global $user;
if(
$user->uid)
{
    print
"<ul>\n";
   
$result = db_query("SELECT DISTINCT u.name, u.uid FROM {users} u INNER JOIN {node} n ON n.uid = u.uid WHERE n.type = 'blog' ORDER BY u.name");
    while (
$node = db_fetch_object($result))
    {
        print
"<li>".l(ucwords($node->name), 'blog/' . $node->uid)."</li>\n";
       
$latestr = db_query("SELECT n.title, n.nid FROM {node} n WHERE n.type = 'blog' AND n.uid=%d ORDER BY n.created DESC",$node->uid);
    }
    print
"</ul>";
}
?>

Код выводит список всех пользователей создававших докуметы типа blog. Рядом с именем показывается количество документов. Список упорядочивается по псевдонимам.

<?php
$result
= db_query("SELECT u.uid, u.name, COUNT(0) AS num FROM {node} n LEFT JOIN {users} u ON u.uid = n.uid WHERE n.type = 'blog' GROUP BY u.uid, u.name ORDER BY u.name ASC");
while (
$blog = db_fetch_object($result)) {
    
$output .= '<li />'.l($blog->name. ' ('.$blog->num.')', 'blog/'.$blog->uid);
}
return
'<ul>'.$output.'</ul>';
?>

То же самое, что и предыдущий код, но дополнительно показывается последний добавленный пользователем документ.

<?php
global $user;
if(
$user->uid)
{
    print
"<ul>\n";
   
// select all the unique UID "blog" nodes, then join them with users and away we should go

   
$result = db_query("SELECT DISTINCT u.name, u.uid FROM {users} u INNER JOIN {node} n ON n.uid = u.uid WHERE n.type = 'blog' ORDER BY u.name");
    while (
$node = db_fetch_object($result))
    {
        print
"<li class=\"expanded\">".l(ucwords($node->name), 'blog/' . $node->uid)."</li>\n";
       
$latestr = db_query("SELECT n.title, n.nid FROM {node} n WHERE n.type = 'blog' AND n.uid=%d ORDER BY n.created DESC",$node->uid);
        if(
$latestn = db_fetch_object($latestr))
        {
            print
"<ul>\n";
            print
"<li class=\"leaf\">".l($latestn->title, 'node/'.$latestn->nid)."</li>\n";
            print
"</ul>\n";
        }
    }
    print
"</ul>";
}
?>

Comments

Post new comment

The content of this field is kept private and will not be shown publicly.
Image CAPTCHA
Copy the characters (respecting upper/lower case) from the image.