<?php
/************************************************************************
- * MXChange v0.2.1 Start: 02/28/2009 *
- * =============== Last change: 02/28/2009 *
+ * Mailer v0.2.1-FINAL Start: 02/28/2009 *
+ * =================== Last change: 02/28/2009 *
* *
* -------------------------------------------------------------------- *
* File : config-functions.php *
// Init the config array
function initConfig () {
// Init not if already found
- if (isConfigLoaded()) {
+ if (isConfigurationLoaded()) {
// Already initialized
debug_report_bug(sprintf("[%s:%s] Configuration is already initialized.", __FUNCTION__, __LINE__));
} // END - if
// Set a minimum of configuration, required to by-pass some error triggers in getConfig()
$GLOBALS['config'] = array(
- 'code_length' => 0,
- 'patch_level' => 0,
- 'last_update' => time(),
- 'activate_xchange' => 100,
- 'enable_mod_title' => 'Y',
- 'update_filter_usage' => 'N',
- 'ADMIN_REGISTERED' => 'N',
- 'MXCHANGE_INSTALLED' => 'N',
- 'DEFAULT_LANG' => 'de',
- 'DEFAULT_SALT_LENGTH' => 40,
- 'DEBUG_MODE' => 'N',
- 'DEBUG_RESET' => 'N',
- 'DEBUG_MONTHLY' => 'N',
- 'DEBUG_WEEKLY' => 'N',
- 'DEBUG_REGEX' => 'N',
- 'ADMIN_REGISTERED' => 'N',
- 'sql_count' => 0,
'sql_time' => 0,
+ 'sql_count' => 0,
'num_templates' => 0,
- 'default_theme' => 'default',
- 'verbose_sql' => 'Y',
- 'def_refid' => 0,
- 'ENABLE_BACKLINK' => 'Y',
- 'display_debug_sqls' => 'N',
- // Keep session_save_path to fall-back to php.ini setting
- 'session_save_path' => '',
+ // 'DEFAULT_SALT_LENGTH' => 40,
+ // 'DEBUG_MODE' => 'N',
+ // 'DEBUG_RESET' => 'N',
+ // 'DEBUG_MONTHLY' => 'N',
+ // 'DEBUG_WEEKLY' => 'N',
+ // 'DEBUG_REGEX' => 'N',
+ // 'ADMIN_REGISTERED' => 'N',
+ // 'verbose_sql' => 'Y',
// For installation phase:
'SMTP_HOSTNAME' => '',
'SMTP_USER' => '',
// Checks wether the given config entry is set
function isConfigEntrySet ($configEntry) {
+ //* DEBUG: */ print __FUNCTION__.':'.$configEntry.'='.intval(isset($GLOBALS['config'][$configEntry])).'<br />';
return (isset($GLOBALS['config'][$configEntry]));
}
// Increment or init with given value or 1 as default the given config entry
function incrementConfigEntry ($configEntry, $value=1) {
// Increment it if set or init it with 1
- if (getConfig($configEntry) > 0) {
+ if (isConfigEntrySet($configEntry)) {
$GLOBALS['config'][$configEntry] += $value;
} else {
$GLOBALS['config'][$configEntry] = $value;
}
// Checks wether the configuration array is set so the config is loaded
-function isConfigLoaded () {
+function isConfigurationLoaded () {
// Check all
- return ((isset($GLOBALS['config'])) && (is_array($GLOBALS['config'])) && (count($GLOBALS['config']) > 0));
+ return (isset($GLOBALS['config']['config']));
}
// Getter for whole $GLOBALS['config'] array
function getConfigArray () {
// Default is null
- $return = null;
+ $return = array();
// Is the config set?
- if (isConfigLoaded()) {
+ if (isset($GLOBALS['config'])) {
// Then use it
$return = $GLOBALS['config'];
} // END - if
// Is the line found?
if ((substr($line, 0, strlen($old)) == $old) && (!isset($done[$old]))) {
// Entry found!
- //* DEBUG: */ outputHtml(htmlentities($line) . " - FOUND!<br />");
+ //* DEBUG: */ outputHtml(secureString($line) . " - FOUND!<br />");
// Eval the line...
eval($line);
}
// Debug output only
- //* DEBUG: */ outputHtml(htmlentities($line) . " - MySQL!<br />");
+ //* DEBUG: */ outputHtml(secureString($line) . " - MySQL!<br />");
// Split parts so we can check them and prepare them
$parts = explode('=>', $line);
}
// Update config entries
-function updateConfiguration ($entries, $values, $updateMode='') {
+function updateConfiguration ($entries, $values, $updateMode='', $config = '0') {
// Do not update config in CSS mode
if ((getOutputMode() == 1) || (getOutputMode() == -1) || (isInstallationPhase())) {
return;
if (($values[$idx] + 0) === $values[$idx]) {
// Number detected
$all .= sprintf("`%s`=%s,", $entry, (float)$values[$idx]);
+
+ // Set it in config as well
+ setConfigEntry($entry, $values[$idx]);
} elseif ($values[$idx] == 'UNIX_TIMESTAMP()') {
// Function UNIX_TIMESTAMP() detected
- $all .= sprintf("`%s`=%s,", $entry, $values[$idx]);
+ $all .= sprintf("`%s`=UNIX_TIMESTAMP(),", $entry);
+
+ // Set timestamp in array as well
+ setConfigEntry($entry, time());
} else {
// String detected
$all .= sprintf("`%s`='%s',", $entry, SQL_ESCAPE($values[$idx]));
- }
- // Set it in config as well
- setConfigEntry($entry, $values[$idx]);
+ // Set it in config as well
+ setConfigEntry($entry, $values[$idx]);
+ }
}
} // END - foreach
$entries = substr($all, 0, -1);
} elseif (!empty($updateMode)) {
// Update mode set
- // @TODO Find a way for updating configuration here
- $entries .= sprintf("=%s%s%s", $entries, $updateMode, (float)$values);
- } else {
+ $entries = sprintf("`%s`=`%s`%s%s", $entries, $entries, $updateMode, (float)$values);
+ } elseif (($values + 0) === $values) {
+ // Number detected
+ $entries = sprintf("`%s`=%s", $entries, (float)$values);
+
// Set it in config first
- setConfigEntry($entries, $values);
+ setConfigEntry($entries, (float)$values);
+ } elseif ($values == 'UNIX_TIMESTAMP()') {
+ // Function UNIX_TIMESTAMP() detected
+ $entries = sprintf("`%s`=UNIX_TIMESTAMP()", $entries);
+ // Set timestamp in array as well
+ setConfigEntry($entries, time());
+ } else {
// Regular entry to update
- $entries .= sprintf("='%s'", SQL_ESCAPE($values));
+ $entries = sprintf("`%s`='%s'", $entries, SQL_ESCAPE($values));
+
+ // Set it in config as well
+ setConfigEntry($entries, SQL_ESCAPE($values));
}
// Run database update
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "entries={$entries}");
- SQL_QUERY("UPDATE `{?_MYSQL_PREFIX?}_config` SET ".$entries." WHERE `config`=0 LIMIT 1", __FUNCTION__, __LINE__);
+ SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_config` SET ".$entries." WHERE `config`=%s LIMIT 1",
+ array(bigintval($config)), __FUNCTION__, __LINE__);
//* DEBUG: */ outputHtml(__FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>):entries={$entries},affectedRows={$affectedRows}<br />");
// Rebuild cache
}
// Filter for loading configuration
-function FILTER_LOAD_CONFIGURATION ($no = 0) {
+function FILTER_LOAD_CONFIGURATION ($no = '0') {
+ // Is the value null, fix it :(
+ if (is_null($no)) $no = '0';
+
// Check for cache extension, cache-array and if the requested configuration is in cache
if ((isset($GLOBALS['cache_array']['config'][$no])) && (is_array($GLOBALS['cache_array']['config'][$no]))) {
// Load config from cache
- //* DEBUG: */ outputHtml(gettype($GLOBALS['cache_array']['config'][$no])."<br />");
mergeConfig($GLOBALS['cache_array']['config'][$no]);
- //foreach ($GLOBALS['cache_array']['config'][$no] as $key => $value) {
- // setConfigEntry($key, $value);
- //} // END - foreach
// Count cache hits if exists
if ((isStatsEntrySet('cache_hits')) && (isExtensionActive('cache'))) {
} // END - if
} elseif ((!isExtensionActive('cache')) || (!isset($GLOBALS['cache_array']['config'][$no]))) {
// Load config from DB
- $result_config = SQL_QUERY_ESC("SELECT * FROM `{?_MYSQL_PREFIX?}_config` WHERE config=%d LIMIT 1",
+ $result_config = SQL_QUERY_ESC("SELECT * FROM `{?_MYSQL_PREFIX?}_config` WHERE `config`='%s' LIMIT 1",
array(bigintval($no)), __FUNCTION__, __LINE__);
// Is the config there?