aboutsummaryrefslogtreecommitdiffstats
path: root/mod
diff options
context:
space:
mode:
authorRedMatrix <info@friendica.com>2014-09-29 06:25:08 +1000
committerRedMatrix <info@friendica.com>2014-09-29 06:25:08 +1000
commit114394c6ca6faad463ae6d33c7ffaa75729983ea (patch)
treed0511f204d6ac528679153a887aa6fccf1e0d5e3 /mod
parentffe6d20dc046fdfe490ba03b93a0bac32af7c4d8 (diff)
parent9dee1779cf98fe4e97c069e1a1295af6c81197a9 (diff)
downloadvolse-hubzilla-114394c6ca6faad463ae6d33c7ffaa75729983ea.tar.gz
volse-hubzilla-114394c6ca6faad463ae6d33c7ffaa75729983ea.tar.bz2
volse-hubzilla-114394c6ca6faad463ae6d33c7ffaa75729983ea.zip
Merge pull request #604 from tuscanhobbit/dev
Statistics copied into siteinfo/json
Diffstat (limited to 'mod')
-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);
}
}