<?php
if(!defined("MCR")){ exit("Hacking Attempt!"); }
class submodule{
private $core, $db, $config, $user, $lng;
public function __construct($core){
$this->core = $core;
$this->db = $core->db;
$this->config = $core->config;
$this->user = $core->user;
$this->lng = $core->lng;
$this->core->title = $this->lng['t_admin'].' — Информация';
$bc = array(
$this->lng['t_admin'] => BASE_URL."?mode=admin",
'Информация' => BASE_URL."?mode=admin&do=statics"
);
$this->core->bc = $this->core->gen_bc($bc);
}
private function main(){
$this->core->header .= '<script src="'.STYLE_URL.'js/admin/info-main.js"></script>';
return $this->core->sp(MCR_THEME_MOD."admin/info/main.html");
}
private function users_stats(){
$query = $this->db->query("SELECT `g`.id, `g`.title, COUNT(`u`.`id`) AS `count`
FROM `mcr_groups` AS `g`
LEFT JOIN `mcr_users` AS `u`
ON `u`.`gid`=`g`.`id`
GROUP BY `g`.`id`");
if(!$query || $this->db->num_rows($query)<=0){ return; }
ob_start();
while($ar = $this->db->fetch_assoc($query)){
switch(intval($ar['id'])){
case 0: $class='error'; break;
case 1: $class='warning'; break;
case 2: $class='success'; break;
case 3: $class='info'; break;
default: $class=''; break;
}
$data = array(
"CLASS" => $class,
"TITLE" => $this->db->HSC($ar['title']),
"COUNT" => intval($ar['count'])
);
echo $this->core->sp(MCR_THEME_MOD."admin/info/group-id.html", $data);
}
return ob_get_clean();
}
private function stats(){
$query = $this->db->query("SELECT COUNT(*) AS `users`,
(SELECT COUNT(*) FROM `mcr_news`) AS `news`,
(SELECT COUNT(*) FROM `mcr_news_cats`) AS `categories`,
(SELECT COUNT(*) FROM `mcr_comments`) AS `comments`,
(SELECT COUNT(*) FROM `mcr_statics`) AS `statics`,
(SELECT COUNT(*) FROM `mcr_groups`) AS `groups`,
(SELECT COUNT(*) FROM `mcr_news_views`) AS `views`,
(SELECT COUNT(*) FROM `mcr_news_votes`) AS `votes`,
(SELECT COUNT(*) FROM `mcr_permissions`) AS `permissions`
FROM `mcr_users`");
if(!$query || $this->db->num_rows($query)<=0){ return; }
$ar = $this->db->fetch_assoc($query);
$data = array(
"COUNT_USERS" => intval($ar['users']),
"COUNT_GROUPS" => intval($ar['groups']),
"COUNT_NEWS" => intval($ar['news']),
"COUNT_COMMENTS" => intval($ar['comments']),
"COUNT_CATEGORIES" => intval($ar['categories']),
"COUNT_STATICS" => intval($ar['statics']),
"COUNT_VIEWS" => intval($ar['views']),
"COUNT_VOTES" => intval($ar['votes']),
"COUNT_PERMISSIONS" => intval($ar['permissions']),
"USERS_STATS" => $this->users_stats()
);
ob_start();
echo $this->core->sp(MCR_THEME_MOD."admin/info/stats.html", $data);
return ob_get_clean();
}
private function extensions(){
$this->core->header .= '<script src="'.STYLE_URL.'js/admin/info-extensions.js"></script>';
return $this->core->sp(MCR_THEME_MOD."admin/info/extensions.html");
}
public function content(){
$op = (isset($_GET['op'])) ? $_GET['op'] : 'list';
switch($op){
case 'stats': $content = $this->stats(); break;
case 'extensions': $content = $this->extensions(); break;
default: $content = $this->main(); break;
}
ob_start();
echo $content;
return ob_get_clean();
}
}
?>