Ejemplo n.º 1
0
 /**
  * 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;
 }