27-08-2012, 10:14 Посмотрели: 2284 Добавил: bebeka

Блок топ авторов с их аватарками в Drupal

Недавно при разработке одного проекта мне потребовалось создать блок, в котором выводились лучшие автора на сайте, чем больше автор создал материалов, тем он выше, я конечно же решил сделать это с помощью создания нового модуля и SQL запроса, от блока также требовалось вывести логин пользователя и его аватарку.

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

И так, создадим модуль с названием topauthors, разместим его в папке:

/sites/all/modules


Файлы модуля:

topauthors.info

name = Top Authors
description = Return top authors in site
core = 7.x
package = "Others"


topauthors.module

function topauthors_block_info() {
   $blocks['top_authors'] = array(
       'info' => t('Top authors'),
       'cache' => DRUPAL_CACHE_GLOBAL,
   );

   return $blocks;
}

function topauthors_block_view($delta = '') {
   switch($delta) {
       case 'statistic_top_authors':
           $block['content'] = topauthors_block_contents();
           return $block;
           break;
   }   
}

function topauthors_block_contents() {
$users = db_query('
    SELECT COUNT(nid) AS count, u.uid, u.name, u.picture
    FROM {node} n
    LEFT JOIN {users} u
    ON n.uid = u.uid
    WHERE n.uid != 0
    GROUP BY uid
    ORDER BY count DESC
    LIMIT 10
');
   
$list = array ();
foreach ($users as $user) {
   $list[] = theme('user_picture', array('account' => $user)) . '<div class="user-info">' . t('Ник') . ': ' . $user->name . '<br />' . t('Статей') . ': ' . $user->count . '</div>';
}

return theme('item_list', array('items' => $list));
}


Вот так просто можно вывести топ авторов в блок.
Рубрика записи: Рецепты Drupal

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Юзер панель
Я тебя не знаю!
Зарегистрируйся, либо

войди под своим логином!

Fuck, я забыл свой пароль!

Восстановить данные =0
Новое на сайте
Известная социальная сеть Instagram приступила к тестированию новой...
Недавно, в приложения для Android и iOS социальной сети Twitter была...
Недавно, в Google "Мой бизнес" разработчики добавили новейший способ, как...
Недавно стало известно о том, что соцсеть Facebook по упоминанию в русских...
Недавно, представитель корпорации Google, Джон Мюллер (John Mueller)...
Голосуем

Ваша любимая CMS?


DataLife Engine
WordPress
Joomla
Drupal
LiveStreet
UCOZ
Самопис
Php+Includ
Статика