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



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

<?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.

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.