Several rewrites/renames, fixes for installation. Resolves #104
[mailer.git] / inc / config-functions.php
1 <?php
2 /************************************************************************
3  * MXChange v0.2.1                                    Start: 02/28/2009 *
4  * ===============                              Last change: 02/28/2009 *
5  *                                                                      *
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  * -------------------------------------------------------------------- *
13  *                                                                      *
14  * -------------------------------------------------------------------- *
15  * Copyright (c) 2003 - 2008 by Roland Haeder                           *
16  * For more information visit: http://www.mxchange.org                  *
17  *                                                                      *
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.                                  *
22  *                                                                      *
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.                         *
27  *                                                                      *
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,               *
31  * MA  02110-1301  USA                                                  *
32  ************************************************************************/
33
34 // Some security stuff...
35 if (!defined('__SECURITY')) {
36         $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4)."/security.php";
37         require($INC);
38 }
39
40 // Merges $_CONFIG with data in given array
41 function mergeConfig ($newConfig) {
42         global $_CONFIG;
43         $_CONFIG = merge_array($_CONFIG, $newConfig);
44 }
45
46 // Getter for $_CONFIG entries
47 function getConfig ($entry) {
48         global $_CONFIG;
49
50         // Default value
51         $value = null;
52
53         // Is the entry there?
54         if (isConfigEntrySet($entry)) {
55                 // Then use it
56                 $value = $_CONFIG[$entry];
57         } // END - if
58
59         // Return it
60         return $value;
61 }
62
63 // Setter for $_CONFIG entries
64 function setConfigEntry ($entry, $value) {
65         global $_CONFIG;
66
67         // Secure the entry name
68         $entry = SQL_ESCAPE($entry);
69
70         // And set it
71         $_CONFIG[$entry] = $value;
72 }
73
74 // Checks wether the given config entry is set
75 function isConfigEntrySet ($entry) {
76         global $_CONFIG;
77         return (isset($_CONFIG[$entry]));
78 }
79
80 // Increment or init with given value or 1 as default the given config entry
81 function incrementConfigEntry ($configEntry, $value=1) {
82         global $_CONFIG;
83
84         // Increment it if set or init it with 1
85         if (getConfig($configEntry) > 0) {
86                 $_CONFIG[$configEntry] += $value;
87         } else {
88                 $_CONFIG[$configEntry] = $value;
89         }
90 }
91
92 // Checks wether the configuration array is set so the config is loaded
93 function isConfigLoaded () {
94         global $_CONFIG;
95
96         // Check all
97         return ((isset($_CONFIG)) && (is_array($_CONFIG)) && (count($_CONFIG) > 0));
98 }
99
100 // Init the config array
101 function initConfig () {
102         global $_CONFIG;
103
104         // Set a minimum dummy configuration
105         $_CONFIG = array(
106                 'code_length' => 0,
107                 'patch_level' => 0,
108                 'last_update' => time()
109         );
110 }
111
112 // Load configuration and return it as an arry
113 function loadConfiguration ($no="0") {
114         global $_CONFIG;
115
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;
122                 } // END - foreach
123
124                 // Count cache hits if exists
125                 if ((isset($_CONFIG['cache_hits'])) && (EXT_IS_ACTIVE("cache"))) {
126                         $_CONFIG['cache_hits']++;
127                 } // END - if
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__);
132
133                 // Is the config there?
134                 if (SQL_NUMROWS($result_config) == 1) {
135                         // Get config from database
136                         $_CONFIG = SQL_FETCHARRAY($result_config);
137                 } // END - if
138
139                 // Free result
140                 SQL_FREERESULT($result_config);
141
142                 // Remember this config in the array
143                 $GLOBALS['cache_array']['config'][$no] = $_CONFIG;
144         }
145 }
146
147 // [EOF]
148 ?>