/** * Get a list of configs * * @param int $conf_modid ID of the modules * @param int $conf_catid ID of the category * * @return array Associative array of name=>value pairs. */ public function getConfigList($conf_modid, $conf_catid = 0) { if (!empty($this->_cachedConfigs[$conf_modid][$conf_catid])) { return $this->_cachedConfigs[$conf_modid][$conf_catid]; } else { $criteria = new CriteriaCompo(new Criteria('conf_modid', $conf_modid)); if (empty($conf_catid)) { $criteria->add(new Criteria('conf_catid', $conf_catid)); } $criteria->setSort('conf_order'); $criteria->setOrder('ASC'); $configs = $this->_cHandler->getObjects($criteria); $confcount = count($configs); $ret = array(); for ($i = 0; $i < $confcount; ++$i) { $ret[$configs[$i]->getVar('conf_name')] = $configs[$i]->getConfValueForOutput(); } $this->_cachedConfigs[$conf_modid][$conf_catid] = $ret; return $ret; } }
/** * 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; }