aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mod/siteinfo.php52
1 files changed, 50 insertions, 2 deletions
diff --git a/mod/siteinfo.php b/mod/siteinfo.php
index 01355a51d..bdae14edb 100644
--- a/mod/siteinfo.php
+++ b/mod/siteinfo.php
@@ -48,6 +48,51 @@ function siteinfo_init(&$a) {
$site_info = get_config('system','info');
$site_name = get_config('system','sitename');
+
+ // Statistics (from statistics.json plugin)
+
+ $r = q("select count(channel_id) as channels_total from channel left join account on account_id = channel_account_id
+ where account_flags = 0 ");
+ if($r)
+ $channels_total = $r[0]['channels_total'];
+
+ $r = q("select channel_id from channel left join account on account_id = channel_account_id
+ where account_flags = 0 and account_lastlog > UTC_TIMESTAMP - INTERVAL 6 MONTH");
+ if($r) {
+ $s = '';
+ foreach($r as $rr) {
+ if($s)
+ $s .= ',';
+ $s .= intval($rr['channel_id']);
+ }
+ $x = q("select uid from item where uid in ( $s ) and (item_flags & %d) and created > UTC_TIMESTAMP - INTERVAL 6 MONTH group by uid",
+ intval(ITEM_WALL)
+ );
+ if($x)
+ $channels_active_halfyear = count($x);
+ }
+
+ $r = q("select channel_id from channel left join account on account_id = channel_account_id
+ where account_flags = 0 and account_lastlog > UTC_TIMESTAMP - INTERVAL 1 MONTH");
+ if($r) {
+ $s = '';
+ foreach($r as $rr) {
+ if($s)
+ $s .= ',';
+ $s .= intval($rr['channel_id']);
+ }
+ $x = q("select uid from item where uid in ( $s ) and ( item_flags & %d ) and created > UTC_TIMESTAMP - INTERVAL 1 MONTH group by uid",
+ intval(ITEM_WALL)
+ );
+ if($x)
+ $channels_active_monthly = count($x);
+ }
+
+ $posts = q("SELECT COUNT(*) AS local_posts FROM `item` WHERE (item_flags & %d) ",
+ intval(ITEM_WALL)
+ );
+ if (is_array($posts))
+ $local_posts = $posts[0]["local_posts"];
$data = Array(
'version' => RED_VERSION,
@@ -61,9 +106,12 @@ function siteinfo_init(&$a) {
'admin' => $admin,
'site_name' => (($site_name) ? $site_name : ''),
'platform' => RED_PLATFORM,
- 'info' => (($site_info) ? $site_info : '')
+ 'info' => (($site_info) ? $site_info : ''),
+ 'channels_total' => $channels_total,
+ 'channels_active_halfyear' => $channels_active_halfyear,
+ 'channels_active_monthly' => $channels_active_monthly,
+ 'local_posts' => $local_posts
);
-
json_return_and_die($data);
}
}