Added config storage method
- Use it like $app->conf('yourpluginname', 'config-key', 'value')
- omit the value to read the config value, provide it to set the value
3 files modified
1 files added
New file |
| | |
| | | ALTER TABLE `sys_config` DROP `config_id`, |
| | | ADD PRIMARY KEY (`group`, `name`); |
| | |
| | | -- |
| | | |
| | | CREATE TABLE `sys_config` ( |
| | | `config_id` int(11) unsigned NOT NULL, |
| | | `group` varchar(64) NOT NULL, |
| | | `name` varchar(64) NOT NULL, |
| | | `value` varchar(255) NOT NULL |
| | | `value` varchar(255) NOT NULL, |
| | | PRIMARY KEY (`group`, `name`) |
| | | ) ENGINE=MyISAM DEFAULT CHARSET=utf8; |
| | | |
| | | |
| | |
| | | -- Dumping data for table `sys_config` |
| | | -- |
| | | |
| | | INSERT INTO sys_config VALUES ('1','db','db_version','3.0.5.3'); |
| | | INSERT INTO sys_config VALUES ('2','interface','session_timeout','0'); |
| | | INSERT INTO sys_config VALUES ('db','db_version','3.0.5.3'); |
| | | INSERT INTO sys_config VALUES ('interface','session_timeout','0'); |
| | | |
| | | SET FOREIGN_KEY_CHECKS = 1; |
| | |
| | | if($this->_conf['start_session'] == true) { |
| | | |
| | | $this->uses('session'); |
| | | $tmp = $this->db->queryOneRecord("SELECT `value` FROM sys_config WHERE `config_id` = 2 AND `group` = 'interface' AND `name` = 'session_timeout'"); |
| | | if($tmp && $tmp['value'] > 0) { |
| | | $sess_timeout = $this->conf('interface', 'session_timeout'); |
| | | if($sess_timeout) { |
| | | /* check if user wants to stay logged in */ |
| | | if(isset($_POST['s_mod']) && isset($_POST['s_pg']) && $_POST['s_mod'] == 'login' && $_POST['s_pg'] == 'index' && isset($_POST['stay']) && $_POST['stay'] == '1') { |
| | | /* check if staying logged in is allowed */ |
| | |
| | | $tmp = $this->db->queryOneRecord('SELECT config FROM sys_ini WHERE sysini_id = 1'); |
| | | $tmp = $this->ini_parser->parse_ini_string(stripslashes($tmp['config'])); |
| | | if(!isset($tmp['misc']['session_allow_endless']) || $tmp['misc']['session_allow_endless'] != 'y') { |
| | | $this->session->set_timeout($tmp['value']); |
| | | session_set_cookie_params(($tmp['value'] * 60) + 300); // make the cookie live 5 minutes longer |
| | | $this->session->set_timeout($sess_timeout); |
| | | session_set_cookie_params(($sess_timeout * 60) + 300); // make the cookie live 5 minutes longer |
| | | } else { |
| | | // we are doing login here, so we need to set the session data |
| | | $this->session->set_permanent(true); |
| | |
| | | session_set_cookie_params(365 * 24 * 3600); // make the cookie live 5 minutes longer |
| | | } |
| | | } else { |
| | | $this->session->set_timeout($tmp['value']); |
| | | session_set_cookie_params(($tmp['value'] * 60) + 300); // make the cookie live 5 minutes longer |
| | | $this->session->set_timeout($sess_timeout); |
| | | session_set_cookie_params(($sess_timeout * 60) + 300); // make the cookie live 5 minutes longer |
| | | } |
| | | } else { |
| | | session_set_cookie_params(0); // until browser is closed |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | public function conf($plugin, $key, $value = null) { |
| | | if(is_null($value)) { |
| | | $tmpconf = $this->db->queryOneRecord("SELECT `value` FROM `sys_config` WHERE `group` = '" . $this->db->quote($plugin) . "' AND `name` = '" . $this->db->quote($key) . "'"); |
| | | if($tmpconf) return $tmpconf['value']; |
| | | else return null; |
| | | } else { |
| | | if($value === false) { |
| | | $this->db->query("DELETE FROM `sys_config` WHERE `group` = '" . $this->db->quote($plugin) . "' AND `name` = '" . $this->db->quote($key) . "'"); |
| | | return null; |
| | | } else { |
| | | $this->db->query("REPLACE INTO `sys_config` (`group`, `name`, `value`) VALUES ('" . $this->db->quote($plugin) . "', '" . $this->db->quote($key) . "', '" . $this->db->quote($value) . "')"); |
| | | return $value; |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** Priority values are: 0 = DEBUG, 1 = WARNING, 2 = ERROR */ |
| | | |
| | |
| | | } elseif($section == 'mail') { |
| | | if($new_config['smtp_pass'] == '') $new_config['smtp_pass'] = $server_config_array['mail']['smtp_pass']; |
| | | } elseif($section == 'misc' && $new_config['session_timeout'] != $server_config_array['misc']['session_timeout']) { |
| | | $app->db->query("DELETE FROM sys_config WHERE `config_id` = 2 AND `group` = 'interface' AND `name` = 'session_timeout'"); |
| | | $app->db->query("INSERT INTO sys_config (`config_id`, `group`, `name`, `value`) VALUES (2, 'interface', 'session_timeout', '" . intval($new_config['session_timeout']) . "')"); |
| | | $app->conf('interface', 'session_timeout', intval($new_config['session_timeout'])); |
| | | } |
| | | $server_config_array[$section] = $new_config; |
| | | $server_config_str = $app->ini_parser->get_ini_string($server_config_array); |