function fs_install_impl(&$fsdb, $upgrade_if_needed = false) { $db_status_arr = fs_get_db_status($fsdb); $db_status = $db_status_arr['status']; $db_version = $db_status_arr['ver']; $msg = fs_get_database_status_message($db_status_arr); if ($db_status == FS_DB_VALID) { return true; } else { if ($db_status == FS_DB_NOT_CONFIGURED || $db_status == FS_DB_IS_NEWER_THAN_CODE) { echo $msg; return false; } else { if ($db_status == FS_DB_GENERAL_ERROR || $db_status == FS_DB_CONNECTION_ERROR) { echo $msg . " : " . $fsdb->debug(); return false; } else { if ($db_status == FS_DB_NOT_INSTALLED) { if (!fs_db_install($fsdb)) { return false; } } else { if ($db_status == FS_DB_NEED_UPGRADE && $upgrade_if_needed) { if (!fs_db_upgrade($fsdb, $db_version)) { return false; } fs_do_action("db_upgraded"); // after a db upgrade (major releases only) reset donation status for users that didn't donate $donation = fs_get_option('donation_status'); if ($donation != 'donated') { fs_update_option('donation_status', ''); fs_update_option('last_nag_time', time()); } } } } } } return true; }
function fs_start_user_session($user) { require_once FS_ABS_PATH . '/php/session.php'; $ok = fs_session_start(); if ($ok !== true) { $msg = "Error starting session"; if (is_string($ok)) { $msg .= " :{$ok}"; } $msg .= "<br/>"; echo $msg; return false; } global $FS_SESSION; $FS_SESSION['user'] = $user; fs_store_session(); // user is null for dummy sessions (may be needed before login) if ($user != null) { // raise authenticated event. // some initialization code may only happen after the user is authenticated. fs_do_action("authenticated"); } return true; }