2 /************************************************************************
3 * MXChange v0.2.1 Start: 02/28/2009 *
4 * =============== Last change: 02/28/2009 *
6 * -------------------------------------------------------------------- *
7 * File : config-functions.php *
8 * -------------------------------------------------------------------- *
9 * Short description : Many non-MySQL functions (also file access) *
10 * -------------------------------------------------------------------- *
11 * Kurzbeschreibung : Viele Nicht-MySQL-Funktionen (auch Dateizugriff) *
12 * -------------------------------------------------------------------- *
14 * -------------------------------------------------------------------- *
15 * Copyright (c) 2003 - 2008 by Roland Haeder *
16 * For more information visit: http://www.mxchange.org *
18 * This program is free software; you can redistribute it and/or modify *
19 * it under the terms of the GNU General Public License as published by *
20 * the Free Software Foundation; either version 2 of the License, or *
21 * (at your option) any later version. *
23 * This program is distributed in the hope that it will be useful, *
24 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
25 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
26 * GNU General Public License for more details. *
28 * You should have received a copy of the GNU General Public License *
29 * along with this program; if not, write to the Free Software *
30 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, *
32 ************************************************************************/
34 // Some security stuff...
35 if (!defined('__SECURITY')) {
36 $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4)."/security.php";
40 // Merges $_CONFIG with data in given array
41 function mergeConfig ($newConfig) {
43 $_CONFIG = merge_array($_CONFIG, $newConfig);
46 // Getter for $_CONFIG entries
47 function getConfig ($entry) {
53 // Is the entry there?
54 if (isConfigEntrySet($entry)) {
56 $value = $_CONFIG[$entry];
63 // Setter for $_CONFIG entries
64 function setConfigEntry ($entry, $value) {
67 // Secure the entry name
68 $entry = SQL_ESCAPE($entry);
71 $_CONFIG[$entry] = $value;
74 // Checks wether the given config entry is set
75 function isConfigEntrySet ($entry) {
77 return (isset($_CONFIG[$entry]));
80 // Increment or init with given value or 1 as default the given config entry
81 function incrementConfigEntry ($configEntry, $value=1) {
84 // Increment it if set or init it with 1
85 if (getConfig($configEntry) > 0) {
86 $_CONFIG[$configEntry] += $value;
88 $_CONFIG[$configEntry] = $value;
92 // Checks wether the configuration array is set so the config is loaded
93 function isConfigLoaded () {
97 return ((isset($_CONFIG)) && (is_array($_CONFIG)) && (count($_CONFIG) > 0));
100 // Init the config array
101 function initConfig () {
104 // Set a minimum dummy configuration
108 'last_update' => time()
112 // Load configuration and return it as an arry
113 function loadConfiguration ($no="0") {
116 // Check for cache extension, cache-array and if the requested configuration is in cache
117 if ((is_array($GLOBALS['cache_array'])) && (isset($GLOBALS['cache_array']['config'][$no])) && (is_array($GLOBALS['cache_array']['config'][$no]))) {
118 // Load config from cache
119 //* DEBUG: */ echo gettype($GLOBALS['cache_array']['config'][$no])."<br />\n";
120 foreach ($GLOBALS['cache_array']['config'][$no] as $key => $value) {
121 $_CONFIG[$key] = $value;
124 // Count cache hits if exists
125 if ((isset($_CONFIG['cache_hits'])) && (EXT_IS_ACTIVE("cache"))) {
126 $_CONFIG['cache_hits']++;
128 } elseif ((!EXT_IS_ACTIVE("cache")) || (!isset($GLOBALS['cache_array']['config'][$no]))) {
129 // Load config from DB
130 $result_config = SQL_QUERY_ESC("SELECT * FROM `{!_MYSQL_PREFIX!}_config` WHERE config=%d LIMIT 1",
131 array(bigintval($no)), __FUNCTION__, __LINE__);
133 // Is the config there?
134 if (SQL_NUMROWS($result_config) == 1) {
135 // Get config from database
136 $_CONFIG = SQL_FETCHARRAY($result_config);
140 SQL_FREERESULT($result_config);
142 // Remember this config in the array
143 $GLOBALS['cache_array']['config'][$no] = $_CONFIG;