57 lines
1.5 KiB
PHP
57 lines
1.5 KiB
PHP
|
|
<?php
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* Управление настройками магазина, хранящимися в базе данных
|
|||
|
|
* В отличие от класса Config оперирует настройками доступными админу и хранящимися в базе данных.
|
|||
|
|
*
|
|||
|
|
*
|
|||
|
|
* @copyright 2011 Denis Pikusov
|
|||
|
|
* @link http://simplacms.ru
|
|||
|
|
* @author Denis Pikusov
|
|||
|
|
*
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
require_once('Simpla.php');
|
|||
|
|
|
|||
|
|
class Settings extends Simpla
|
|||
|
|
{
|
|||
|
|
private $vars = array();
|
|||
|
|
|
|||
|
|
function __construct()
|
|||
|
|
{
|
|||
|
|
parent::__construct();
|
|||
|
|
|
|||
|
|
// Выбираем из базы настройки
|
|||
|
|
$this->db->query('SELECT name, value FROM __settings');
|
|||
|
|
|
|||
|
|
// и записываем их в переменную
|
|||
|
|
foreach($this->db->results() as $result)
|
|||
|
|
if(!($this->vars[$result->name] = @unserialize($result->value)))
|
|||
|
|
$this->vars[$result->name] = $result->value;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public function __get($name)
|
|||
|
|
{
|
|||
|
|
if($res = parent::__get($name))
|
|||
|
|
return $res;
|
|||
|
|
|
|||
|
|
if(isset($this->vars[$name]))
|
|||
|
|
return $this->vars[$name];
|
|||
|
|
else
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public function __set($name, $value)
|
|||
|
|
{
|
|||
|
|
$this->vars[$name] = $value;
|
|||
|
|
|
|||
|
|
if(is_array($value))
|
|||
|
|
$value = serialize($value);
|
|||
|
|
|
|||
|
|
$this->db->query('SELECT count(*) as count FROM __settings WHERE name=?', $name);
|
|||
|
|
if($this->db->result('count')>0)
|
|||
|
|
$this->db->query('UPDATE __settings SET value=? WHERE name=?', $value, $name);
|
|||
|
|
else
|
|||
|
|
$this->db->query('INSERT INTO __settings SET value=?, name=?', $value, $name);
|
|||
|
|
}
|
|||
|
|
}
|