17if (!defined(
'XOOPS_ROOT_PATH')) {
21require_once XOOPS_ROOT_PATH.
'/kernel/configoption.php';
22require_once XOOPS_ROOT_PATH.
'/kernel/configitem.php';
51 public $_cachedConfigs = [];
72 $ret =& $this->_cHandler->create();
83 public function &
getConfig($id, $withoptions =
false)
85 $config =& $this->_cHandler->get($id);
86 if (
true == $withoptions) {
100 if (!$this->_cHandler->insert($config)) {
103 $options =& $config->getConfOptions();
104 $count = is_countable($options) ? count($options) : 0;
105 $conf_id = $config->getVar(
'conf_id');
106 for ($i = 0; $i < $count; $i++) {
107 $options[$i]->setVar(
'conf_id', $conf_id);
108 if (!$this->_oHandler->insert($options[$i])) {
109 echo $options[$i]->getErrors();
112 if (!empty($this->_cachedConfigs[$config->getVar(
'conf_modid')][$config->getVar(
'conf_catid')])) {
113 unset($this->_cachedConfigs[$config->getVar(
'conf_modid')][$config->getVar(
'conf_catid')]);
126 if (!$this->_cHandler->delete($config)) {
129 $options =& $config->getConfOptions();
130 $count = is_countable($options) ? count($options) : 0;
133 $count = count($options);
135 if (is_array($options) && $count > 0) {
136 for ($i = 0; $i < $count; $i++) {
137 $this->_oHandler->delete($options[$i]);
140 if (!empty($this->_cachedConfigs[$config->getVar(
'conf_modid')][$config->getVar(
'conf_catid')])) {
141 unset($this->_cachedConfigs[$config->getVar(
'conf_modid')][$config->getVar(
'conf_catid')]);
155 public function &
getConfigs($criteria =
null, $id_as_key =
false, $with_options =
false)
157 $config =& $this->_cHandler->getObjects($criteria, $id_as_key);
169 return $this->_cHandler->getCount($criteria);
183 static $_cachedConfigs= [];
184 if (!empty($_cachedConfigs[$module][$category])) {
185 return $_cachedConfigs[$module][$category];
189 if (!empty($category)) {
190 $criteria->add(
new Criteria(
'conf_catid', (
int)$category));
195 $db = $this->_cHandler->db;
196 $result = $db->query(
'SELECT conf_name,conf_value,conf_valuetype FROM '.$db->prefix(
'config').
' '.$criteria->renderWhere().
' ORDER BY conf_order ASC');
198 while ([$name, $value, $type] = $db->fetchRow($result)) {
201 $ret[$name] = unserialize($value);
207 $ret[$name] = $value;
210 $_cachedConfigs[$module][$category] =& $ret;
227 $handler = xoops_gethandler(
'module');
229 $module =& $handler->getByDirname($dirname);
230 if (!is_object($module)) {
246 $ret =& $this->_oHandler->create();
259 $ret =& $this->_oHandler->get($id);
273 $ret =& $this->_oHandler->getObjects($criteria, $id_as_key);
286 return $this->_oHandler->getCount($criteria);
299 if (!empty($this->_cachedConfigs[$conf_modid][$conf_catid])) {
300 return $this->_cachedConfigs[$conf_modid][$conf_catid];
303 if (empty($conf_catid)) {
304 $criteria->add(
new Criteria(
'conf_catid', $conf_catid));
306 $configs =& $this->_cHandler->getObjects($criteria);
307 $confcount = is_countable($configs) ? count($configs) : 0;
309 for ($i = 0; $i < $confcount; $i++) {
310 $ret[$configs[$i]->getVar(
'conf_name')] = $configs[$i]->getConfValueForOutput();
312 $this->_cachedConfigs[$conf_modid][$conf_catid] =& $ret;
static decrypt(string $crypt_text, string $key=null)
[Static] To decrypt strings by "DES-ECB".
& getConfigList($conf_modid, $conf_catid=0)
getConfigOptionsCount($criteria=null)
& getConfigsByCat($category, $module=0)
& getConfig($id, $withoptions=false)
getConfigCount($criteria=null)
& getConfigOptions($criteria=null, $id_as_key=false)
& getConfigsByDirname($dirname, $category=0)
& getConfigs($criteria=null, $id_as_key=false, $with_options=false)