Esempio n. 1
0
 /**
  * Get a config value in a format ready for output
  * 
  * @return	string
  */
 function &getConfValueForOutput()
 {
     switch ($this->getVar('conf_valuetype')) {
         case 'int':
             $ret = (int) $this->getVar('conf_value', 'N');
             return $ret;
         case 'array':
             $ret = unserialize($this->getVar('conf_value', 'N'));
             return $ret;
         case 'float':
             $ret = (double) $this->getVar('conf_value', 'N');
             return $ret;
         case 'textarea':
             return $this->getVar('conf_value');
         case 'encrypt':
             $ret = XCube_Utils::decrypt($this->getVar('conf_value', 'N'));
             return $ret;
         default:
             return $this->getVar('conf_value', 'N');
     }
     $ret = null;
     return $ret;
 }
Esempio n. 2
0
 /**
  * Get configs from a certain category
  * 
  * @param	int $category   ID of a category
  * @param	int $module     ID of a module
  * 
  * @return	array   array of {@link XoopsConfig}s 
  * @todo This method keeps cache for categories. This may be problem...
  */
 function &getConfigsByCat($category, $module = 0)
 {
     static $_cachedConfigs = array();
     if (!empty($_cachedConfigs[$module][$category])) {
         return $_cachedConfigs[$module][$category];
     } else {
         $ret = array();
         $criteria = new CriteriaCompo(new Criteria('conf_modid', (int) $module));
         if (!empty($category)) {
             $criteria->add(new Criteria('conf_catid', (int) $category));
         }
         // get config values
         $configs = array();
         $db = $this->_cHandler->db;
         $result = $db->query('SELECT conf_name,conf_value,conf_valuetype FROM ' . $db->prefix('config') . ' ' . $criteria->renderWhere() . ' ORDER BY conf_order ASC');
         if ($result) {
             while (list($name, $value, $type) = $db->fetchRow($result)) {
                 switch ($type) {
                     case 'array':
                         $ret[$name] = unserialize($value);
                         break;
                     case 'encrypt':
                         $ret[$name] = XCube_Utils::decrypt($value);
                         break;
                     default:
                         $ret[$name] = $value;
                 }
             }
             $_cachedConfigs[$module][$category] =& $ret;
         }
         return $ret;
     }
 }
 function prepare()
 {
     //
     // Set form properties
     //
     $configArr = array();
     if (func_num_args()) {
         $configArr = func_get_arg(0);
     }
     foreach ($configArr as $config) {
         switch ($config->get('conf_valuetype')) {
             case 'text':
             case 'string':
                 if ($config->get('conf_formtype') == 'textarea') {
                     $this->mFormProperties[$config->get('conf_name')] = new XCube_TextProperty($config->get('conf_name'));
                 } else {
                     $this->mFormProperties[$config->get('conf_name')] = new XCube_StringProperty($config->get('conf_name'));
                 }
                 $this->set($config->get('conf_name'), $config->get('conf_value'));
                 break;
             case 'float':
                 $this->mFormProperties[$config->get('conf_name')] = new XCube_FloatProperty($config->get('conf_name'));
                 $this->set($config->get('conf_name'), $config->get('conf_value'));
                 $this->mFieldProperties[$config->get('conf_name')] = new XCube_FieldProperty($this);
                 $this->mFieldProperties[$config->get('conf_name')]->setDependsByArray(array('required'));
                 $this->mFieldProperties[$config->get('conf_name')]->addMessage('required', _MD_LEGACY_ERROR_REQUIRED, $config->get('conf_title'));
                 break;
             case 'int':
                 $this->mFormProperties[$config->get('conf_name')] = new XCube_IntProperty($config->get('conf_name'));
                 $this->set($config->get('conf_name'), $config->get('conf_value'));
                 $this->mFieldProperties[$config->get('conf_name')] = new XCube_FieldProperty($this);
                 $this->mFieldProperties[$config->get('conf_name')]->setDependsByArray(array('required'));
                 $this->mFieldProperties[$config->get('conf_name')]->addMessage('required', _MD_LEGACY_ERROR_REQUIRED, $config->get('conf_title'));
                 break;
             case 'other':
                 $this->mFormProperties[$config->get('conf_name')] = new XCube_StringProperty($config->get('conf_name'));
                 $this->set($config->get('conf_name'), $config->get('conf_value'));
                 break;
             case 'array':
                 if ($config->get('conf_formtype') == 'textarea') {
                     $this->mFormProperties[$config->get('conf_name')] = new XCube_StringProperty($config->get('conf_name'));
                     $this->set($config->get('conf_name'), implode("|", unserialize($config->get('conf_value'))));
                 } else {
                     $this->mFormProperties[$config->get('conf_name')] = new XCube_StringArrayProperty($config->get('conf_name'));
                     $t_arr = unserialize($config->get('conf_value'));
                     if (is_array($t_arr)) {
                         foreach ($t_arr as $_key => $_value) {
                             $this->set($config->get('conf_name'), $_key, $_value);
                         }
                     }
                 }
                 break;
             case 'encrypt':
                 if ($config->get('conf_formtype') == 'textarea') {
                     $this->mFormProperties[$config->get('conf_name')] = new XCube_TextProperty($config->get('conf_name'));
                 } else {
                     $this->mFormProperties[$config->get('conf_name')] = new XCube_StringProperty($config->get('conf_name'));
                 }
                 $this->set($config->get('conf_name'), XCube_Utils::decrypt($config->get('conf_value')));
                 break;
         }
     }
 }