public function loadSettings()
    {
        $this->validateParameters();
        
        // user settings are loaded once per session and
        // maintained in the session.
        
        if (!empty($this->temp_settings["__loaded"])) {
            return true;
        }
        
        if (!$this->loadSettingsData($this->settings)) {
            return false;
        }
        
        $this->temp_settings = $this->settings;
        
        unset($this->temp_settings["__dirty"]);
        
        $this->temp_settings["__loaded"] = true;
        
        return true;
    }