Блок. Статистика

Этот код выводит краткую статистику об общем количестве документов, сколько из них опубликовано, сколько оставлено комментариев и т.д.

<?php
$count_accounts_tot
= db_fetch_array(db_query('SELECT COUNT(uid) FROM {users}'));
$count_accounts_blo = db_fetch_array(db_query('SELECT COUNT(uid) FROM {users} WHERE status=0'));
$count_nodes_tot = db_fetch_array(db_query('SELECT COUNT(nid) FROM {node}'));
$count_nodes_pub = db_fetch_array(db_query('SELECT COUNT(nid) FROM {node} WHERE status=1'));
$count_comments_tot = db_fetch_array(db_query('SELECT COUNT(cid) FROM {comments}'));
$count_comments_pub = db_fetch_array(db_query('SELECT COUNT(cid) FROM {comments} WHERE status=0'));
$count_referrer_ext_day = db_fetch_array(db_query("SELECT COUNT(DISTINCT(url)) AS referrers FROM {accesslog} WHERE url <> '' AND url NOT LIKE '%%%s%%' AND timestamp >= %d", $_SERVER['HTTP_HOST'], (time()-86400)));
$count_referrer_int_day = db_fetch_array(db_query("SELECT COUNT(DISTINCT(url)) AS referrers FROM {accesslog} WHERE url <> '' AND url LIKE '%%%s%%' AND timestamp >= %d", $_SERVER['HTTP_HOST'], (time()-86400)));
$count_RSS_subscr = db_fetch_array(db_query("SELECT COUNT(DISTINCT(hostname)) AS hostname FROM {accesslog} WHERE path LIKE '%/feed' OR path LIKE 'rss.xml'"));
$count_pageviews_day = db_fetch_array(db_query('SELECT COUNT(path) AS hits FROM {accesslog} WHERE timestamp >= %d', (time()-86400)));
$count_pageviews_hour = db_fetch_array(db_query('SELECT COUNT(path) AS hits FROM {accesslog} WHERE timestamp >= %d', (time()-3600)));

$header = array('Показатель', 'Значение');
$rows = array
(
array(
t('Аккаунтов'), $count_accounts_tot['COUNT(uid)']-1),
array(
t('…заблокированных'), $count_accounts_blo['COUNT(uid)']-1),
array(
t('Документов'), $count_nodes_tot['COUNT(nid)']),
array(
t('…опубликованных'), $count_nodes_pub['COUNT(nid)']),
array(
t('Комментариев'), $count_comments_tot['COUNT(cid)']),
array(
t('…опубликованных'), $count_comments_pub['COUNT(cid)']),
array(
t('Переходов внешних'), $count_referrer_ext_day['referrers']),
array(
t('…внутренних'), $count_referrer_int_day['referrers']),
array(
t('Запросов RSS'), $count_RSS_subscr['hostname']),
array(
t('Просмотров за 24 часа'), $count_pageviews_day['hits']),
array(
t('…за 1 час'), $count_pageviews_hour['hits']),
);
return
theme('table', $header, $rows);
?>

  1. Чтобы создать новый блок, переходим по ссылкам Administer → Site building → Blocks → Add block.
  2. В поле Block description записываем Статистика.
  3. В поле Block body копируем этот код.
  4. В разделе Формат ввода переставляем переключатель в положение PHP code.
  5. Нажимаем кнопку Save block.
  6. На открывшейся странице помещаем блок в нужный регион.

В строках: «Переходов внешних» и «…внутренних» учитываются переходы за последние 24 часа.

Для того, чтобы работали строки «Переходов…», «Запросов RSS», «Просмотров…» должен быть включен модуль Statistics.

Метки: