GetDb(); if( !$db ) return; $query = 'SELECT sitepref_name,sitepref_value FROM '.cms_db_prefix().'siteprefs'; $dbr = $db->GetArray($query); if( is_array($dbr) ) { self::$_prefs = array(); for( $i = 0; $i < count($dbr); $i++ ) { $row = $dbr[$i]; self::$_prefs[$row['sitepref_name']] = $row['sitepref_value']; } } } private static function _reset() { self::$_prefs = null; } /** * Retrieve a site preference * * @param string The preference name * @param string Optional default value * @return string */ public static function get($key,$dflt = '') { self::_read(); if( isset(self::$_prefs[$key]) ) return self::$_prefs[$key]; return $dflt; } /** * Test if a site preference exists * * @param string The preference name * @return boolean */ public static function exists($key) { self::_read(); if( in_array($key,array_keys(self::$_prefs)) ) { return TRUE; } return FALSE; } /** * Set a site preference * * @param string The preference name * @param string The preference value * @return void */ public static function set($key,$value) { $db = cmsms()->GetDb(); if( !self::exists($key) ) { $query = 'INSERT INTO '.cms_db_prefix().'siteprefs (sitepref_name, sitepref_value) VALUES (?,?)'; $dbr = $db->Execute($query,array($key,$value)); } else { $query = 'UPDATE '.cms_db_prefix().'siteprefs SET sitepref_value = ? WHERE sitepref_name = ?'; $dbr = $db->Execute($query,array($value,$key)); } self::$_prefs[$key] = $value; } /** * Remove a site preference * * @param string The preference name * @param boolean Wether to use preference name approximation * @return void */ public static function remove($key,$like = FALSE) { $query = 'DELETE FROM '.cms_db_prefix().'siteprefs WHERE sitepref_name = ?'; if( $like ) { $query = 'DELETE FROM '.cms_db_prefix().'siteprefs WHERE sitepref_name LIKE ?'; $key .= '%'; } $db = cmsms()->GetDb(); $db->Execute($query,array($key)); self::_reset(); } } # # EOF # ?>