/** * insert a new config in the database * * @param XoopsConfigItem $config {@link XoopsConfigItem} * * @return bool */ public function insertConfig(XoopsConfigItem $config) { if (!$this->_cHandler->insert($config)) { return false; } $options = $config->getConfOptions(); $count = count($options); $conf_id = $config->getVar('conf_id'); for ($i = 0; $i < $count; ++$i) { $options[$i]->setVar('conf_id', $conf_id); if (!$this->_oHandler->insert($options[$i])) { foreach ($options[$i]->getErrors() as $msg) { $config->setErrors($msg); } } } if (!empty($this->_cachedConfigs[$config->getVar('conf_modid')][$config->getVar('conf_catid')])) { unset($this->_cachedConfigs[$config->getVar('conf_modid')][$config->getVar('conf_catid')]); } return true; }
/** * enable xoops notificaiton * * @access public * @param string $mid module id * @param string $category * @param string $event * @return bool false if failure */ function enableNotification($mid, $category, $event) { global $xoopsDB; $config_handler =& xoops_gethandler('config'); $criteria = new CriteriaCompo(); $criteria->add(new Criteria('conf_name', 'notification_events')); $criteria->add(new Criteria('conf_modid', $mid)); $criteria->add(new Criteria('conf_catid', 0)); $config_items = $config_handler->getConfigs($criteria); if (count($config_items) != 1) { return false; } else { $config_item = $config_items[0]; $option_value = $category . '-' . $event; $option_values = $config_item->getConfValueForOutput(); if (!in_array($option_value, $option_values)) { $option_values[] = $option_value; $config_item->setConfValueForInput($option_values); $config_item_handler = new XoopsConfigItemHandler($xoopsDB); $config_item_handler->insert($config_item); } } return true; }