<?php
class dcms extends http_client
{
protected $_counters = array();
protected $_data = array();
protected $_need_save = false;

var $license;

function __construct(){
parent::__construct();

// загрузка настроек
$this->_load_settings();

// лицензия
$this -> license = new license($this->_data['version']);

}





private function _count($item)
{

if (!isset($_counters[$item])){
switch($item)
{
// кол-во пользователей
case 'users': $_counters[$item] = mysql_result(mysql_query("SELECT COUNT(*) FROM `users`"),0); break;
// пользователи онлайн
case 'users_online': $_counters[$item] = mysql_result(mysql_query("SELECT COUNT(*) FROM `users_online`"),0); break;
// гости онлайн
case 'guest_online': $_counters[$item] = mysql_result(mysql_query("SELECT COUNT(*) FROM `guest_online` WHERE `conversions` >= '5'"),0); break;
// необработанные жалобы
case 'complaints': $_counters[$item] = mysql_result(mysql_query("SELECT COUNT(*) FROM `complaints` WHERE `processed` = '0'"), 0); break;



default:$_counters[$item] = false;
}
}


return $_counters[$item];
}







function __call($name,$arg){

switch ($name) {
case 'count':return $this->_count($arg[0]);
default:return false;
}


}


function __get($name){
switch ($name) {
case 'browser_id': return $this->browser_id();
case 'items_per_page': return $this->_data['items_per_page_'.$this->browser_type];
case 'img_max_width':return $this->_data['img_max_width_'.$this->browser_type];
case 'theme':return $this->_data['theme_'.$this->browser_type];
default:return empty($this->_data[$name])?false:$this->_data[$name];
}
}

function __set($name,$value){

switch ($name) {
case 'items_per_page': $name.='_'.$dcms->browser_type; break;
case 'theme': $name.='_'.$dcms->browser_type; break;
case 'img_max_width': $name.='_'.$dcms->browser_type; break;
}

$this->_data[$name]=$value;
$this->_need_save = true;
return true;

}


private function _load_settings()
{
$settings_default = ini::read(H.'/sys/inc/settings.default.ini',true) OR die('Невозможно загрузить файл настроек по-умолчанию');

if (!$settings = ini::read(H.'/sys/ini/settings.ini'))
{
if (file_exists(H.'/install/index.php'))
{
$this->_need_save = false;
header("Location: /install/");
exit;
}
else
{
exit('Файл настроек не может быть загружен');
}

}


$this->_data = array_merge($settings_default['DEFAULT'], $this->_data, $settings, $settings_default['REPLACE']);
}


public function save_settings()
{
return ini::save(H.'/sys/ini/settings.ini',$this->_data);
}




function __destruct()
{
if ($this -> _need_save)$this->save_settings();
}

}
?>