root/dev/common/includes/class.config.php @ 213

Revision 213, 2.7 KB (checked in by ralle030583, 15 years ago)

All files (i hope i havent forgott something) was modified to use the the config in this way:
- config::get($key)
- config::del($key)
- config::set($key,value)

Exception Templates/Smarty?:
The templates still uses $config->get($key) and $config->set($key,$value) cause
it seems that smarty dont like the :: notification

Line 
1<?php
2class Config
3{
4    function Config($site)
5    {
6        config::init();
7    }
8
9    function checkCheckbox($name)
10    {
11        if ($_POST[$name] == 'on')
12        {
13            config::set($name, '1');
14            return true;
15        }
16        config::set($name, '0');
17        return false;
18    }
19
20    function init()
21    {
22        global $config_init;
23
24        if ($config_init)
25        {
26            return;
27        }
28
29        $db = new DBQuery();
30        $db->execute('select * from kb3_config where cfg_site=\''.KB_SITE."'");
31        $config = &config::_getCache();
32        while ($row = $db->getRow())
33        {
34            $config[$row['cfg_key']] = $row['cfg_value'];
35        }
36        $config_init = true;
37
38        if (config::get('post_password') === null)
39        {
40            // no config supplied, generate standard one
41            config::set('style_name', 'default');
42            config::set('style_banner', 'default');
43            config::set('kill_points', 1);
44            config::set('least_active', 0);
45            config::set('post_password', 'CHANGEME');
46        }
47    }
48
49    function &_getCache()
50    {
51        static $cache;
52
53        if (!isset($cache))
54        {
55            $cache = array();
56        }
57        return $cache;
58    }
59
60    function put($key, $data)
61    {
62        $cache = &config::_getCache();
63        $cache[$key] = $data;
64    }
65
66    function del($key)
67    {
68        $cache = &config::_getCache();
69        if (isset($cache[$key]))
70        {
71            unset($cache[$key]);
72        }
73
74        $qry = new DBQuery();
75        $qry->execute("delete from kb3_config where cfg_key = '".$key."'
76                               and cfg_site = '".KB_SITE."'");
77    }
78
79    function set($key, $value)
80    {
81        $cache = &config::_getCache();
82
83        // only update the database when the old value differs
84        if (isset($cache[$key]))
85        {
86            if ($cache[$key] === $value)
87            {
88                return;
89            }
90        }
91        $cache[$key] = $value;
92
93        $qry = new DBQuery();
94        $qry->execute("select cfg_value from kb3_config
95                       where cfg_key = '".$key."' and cfg_site = '".KB_SITE."'");
96        if ($qry->recordCount())
97        {
98            $sql = "update kb3_config set cfg_value = '".$value."'
99                    where cfg_site = '".KB_SITE."' and cfg_key = '".$key."'";
100        }
101        else
102        {
103            $sql = "insert into kb3_config values ('".KB_SITE."','".$key."','".$value."')";
104        }
105        $qry->execute($sql);
106    }
107
108    function get($key)
109    {
110        $cache = &config::_getCache();
111
112        if (!isset($cache[$key]))
113        {
114            return null;
115        }
116        return $cache[$key];
117    }
118}
119?>
Note: See TracBrowser for help on using the browser.