$build = get_config('system','build');
if(! x($build)) {
set_config('system','build',DB_UPDATE_VERSION);
- $buid = DB_UPDATE_VERSION;
+ $build = DB_UPDATE_VERSION;
}
if($build != DB_UPDATE_VERSION)
proc_run('php', 'include/dbupdate.php');
-// Primarily involved with database upgrade, but also sets the
-// base url for use in cmdline programs which don't have
+// Sets the base url for use in cmdline programs which don't have
// $_SERVER variables
-
-if(! function_exists('check_config')) {
- function check_config(&$a) {
+if(! function_exists('check_url')) {
+ function check_url(&$a) {
$url = get_config('system','url');
if((! link_compare($url,$a->get_baseurl())) && (! preg_match("/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/",$a->get_hostname)))
$url = set_config('system','url',$a->get_baseurl());
+ return;
+ }
+}
+
+
+// Automatic database updates
+
+if(! function_exists('update_db')) {
+ function update_db(&$a) {
$build = get_config('system','build');
if(! x($build))
if(! function_exists('set_config')) {
function set_config($family,$key,$value) {
global $a;
+
+ // If $a->config[$family] has been previously set to '!<unset>!', then
+ // $a->config[$family][$key] will evaluate to $a->config[$family][0], and
+ // $a->config[$family][$key] = $value will be equivalent to
+ // $a->config[$family][0] = $value[0] (this causes infuriating bugs),
+ // so unset the family before assigning a value to a family's key
+ if($a->config[$family] === '!<unset>!')
+ unset($a->config[$family]);
+
// manage array value
$dbvalue = (is_array($value)?serialize($value):$value);
$dbvalue = (is_bool($dbvalue) ? intval($dbvalue) : $dbvalue);
require_once("include/session.php");
load_hooks();
call_hooks('init_1');
-}
-$maintenance = get_config('system', 'maintenance');
+ $maintenance = get_config('system', 'maintenance');
+}
/**
elseif($maintenance)
$a->module = 'maintenance';
else {
+ check_url($a);
check_db();
check_plugins($a);
}