websiteWebsite
codingteam CodingTeam
A free forge, lightweight and extensible.

 

Browse the code

Revision log Information on the revision
Revision: 298 (differences)
Author: xbright
Log message: * Fixed two bugs in projects/add
Change revision:
<?php
#    This file is a part of CodingTeam. See <http://www.codingteam.net>.
#    Copyright (C) 2007-2009 CodingTeam (See AUTHORS and THANKS for details)
#
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU Affero General Public License as
#    published by the Free Software Foundation, version 3 only.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU Affero General Public License for more details.
#
#    You should have received a copy of the GNU Affero General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
/**
 * @file
 * This file contains the Config class
 *
 * Update, get or list the configuration keys stored in the database.
 */
 
 
/**
 * Config class
 */
class Config {
    private $db;
    
    function __construct ($db)
    {
        $this->db = $db;
    }
 
 
    /**
     * List keys
     *
     * List all the stored configuration keys (this is a static method).
     * @return
     *   An array with the keys list.
     */
    static public function listkeys($db)
    {
        $req = $db->select('config', FALSE);
        $return = array();
 
        foreach ($req as $key)
        {
            $group = $key['group'];
 
            if (!array_key_exists($group, $return))
                $return[$group] = array();
 
            $return[$group][$key['field']] = $key;
        }
 
        return $return;
    }
 
 
    /**
     * Update
     *
     * Update if the key exists or create it.
     * @param $group
     *   The group of the key.
     * @param $field
     *   The field of the key.
     * @param $value
     *   The value of the key.
     */
    public function update($group, $field, $value)
    {
        $idn = count($this->db->select('config', array('group' => $group,
                                                       'field' => $field)));
        if ($idn == 0)
            $insert = $this->db->insert('config', array('group' => $group,
                                                        'field' => $field,
                                                        'value' => $value));
        else
            $insert = $this->db->update('config', array('value' => $value),
                                                  array('group' => $group,
                                                        'field' => $field));
    }
 
 
    /**
     * Get
     *
     * Get a configuration key.
     * @param $group
     *   The group of the key.
     * @param $field
     *   The field of the key.
     * @return
     *   The value of the key.
     */
    public function get($group, $field)
    {
        global $ct_dbconfig;
 
        if (array_key_exists($group, $ct_dbconfig))
        {
            $group = $ct_dbconfig[$group];
 
            if (array_key_exists($field, $group))
            {
                $return = $group[$field]['value'];
 
                if ($return)
                {
                    if (in_array($return, array('true', 'false')))
                    {
                        switch ($return)
                        {
                        case 'true':
                            return TRUE;
                            break;
 
                        case 'false':
                            return FALSE;
                        }
                    }
                    else
                        return $return;
                }
            }
        }
 
        return FALSE;
    }
}
?>