/** * Sets a config value * */ public function set_config($key, $val) { if (!is_null(self::$content)) { // $pattern = '%(config\[\''.$key.'\'\] = \')(.*)(\';)%'; // self::$content = preg_replace($pattern, '$1'.$val. '$3', self::$content ); $pattern = '%(config\\[\'' . $key . '\'\\] = )(\'?.*\'?)(;)%'; $type = gettype($val); if ($type == 'string') { $val = "'" . $val . "'"; } elseif ($type === 'boolean') { $val = $val ? TRUE : (int) FALSE; } self::$content = preg_replace($pattern, '${1}' . $val . '${3}', self::$content); return TRUE; } return FALSE; }
/** * Saves the website settings * */ function _save_settings() { // Config library require_once './class/Config.php'; // Check if data are empty if (empty($_POST['lang_code'])) { $this->_send_error('settings', lang('settings_error_missing_lang_code'), $_POST); } if (empty($_POST['lang_name'])) { $this->_send_error('settings', lang('settings_error_missing_lang_name'), $_POST); } // Lang code must be on 2 or 3 chars if (strlen($_POST['lang_code']) > 8) { $this->_send_error('settings', lang('settings_error_lang_code_8_chars'), $_POST); } // Check if admin URL is correct if (!preg_match("/^([a-z0-9])+\$/i", $_POST['admin_url']) or empty($_POST['admin_url'])) { $this->_send_error('settings', lang('settings_error_admin_url'), $_POST); } // Save the Admin URL $conf = new ION_Config(APPPATH . 'config/', 'config.php'); $conf->set_config('admin_url', $_POST['admin_url']); if ($conf->save() == FALSE) { $this->_send_error('settings', lang('settings_error_write_rights_config'), $_POST); } $lang_code = strtolower($_POST['lang_code']); // DB save $this->db_connect(); $data = array('lang' => $lang_code, 'name' => $_POST['lang_name'], 'online' => '1', 'def' => '1', 'ordering' => '1'); // Check if the lang exists $this->db->where('lang', $lang_code); $query = $this->db->get('lang'); if ($query->num_rows() > 0) { // updates the lang $this->db->where('lang', $lang_code); $this->db->update('lang', $data); } else { // insert the lang $this->db->insert('lang', $data); } $data = array(0 => $data); return $this->_save_language_config_file($data); }