Ejemplo n.º 1
0
 public static function load($useCache = true)
 {
     if (!self::$culture) {
         if (class_exists('dmContext', false) && dmContext::hasInstance() && ($user = dmContext::getInstance()->getUser())) {
             self::$culture = $user->getCulture();
         } else {
             self::$culture = sfConfig::get('sf_default_culture');
         }
     }
     try {
         if (self::$culture == sfConfig::get('sf_default_culture')) {
             $results = dmDb::pdo('SELECT s.name, t.value, t.lang FROM dm_setting s LEFT JOIN dm_setting_translation t ON t.id=s.id AND t.lang = ?', array(self::$culture))->fetchAll(PDO::FETCH_NUM);
         } else {
             $results = dmDb::pdo('SELECT s.name, t.value, t.lang FROM dm_setting s LEFT JOIN dm_setting_translation t ON t.id=s.id AND t.lang IN (?, ?)', array(self::$culture, sfConfig::get('sf_default_culture')))->fetchAll(PDO::FETCH_NUM);
         }
     } catch (PDOException $e) {
         $results = array();
     } catch (Doctrine_Connection_Exception $e) {
         $results = array();
     }
     self::$config = array();
     foreach ($results as $result) {
         if (!isset(self::$config[$result[0]]) || isset(self::$config[$result[0]]) && $result[2] == self::$culture) {
             self::$config[$result[0]] = $result[1];
         }
     }
     unset($results);
     self::$loaded = true;
 }
Ejemplo n.º 2
0
 public static function load($useCache = true)
 {
     if ($useCache && file_exists(self::getCacheFileName())) {
         require_once self::getCacheFileName();
     } else {
         if (sfConfig::has('dm_i18n_cultures')) {
             $cultures = sfConfig::get('dm_i18n_cultures');
         } else {
             $tmp = sfYaml::load(file_get_contents(dmOs::join(sfConfig::get('sf_config_dir'), 'dm/config.yml')));
             $cultures = $tmp['all']['i18n']['cultures'];
         }
         $results = dmDb::pdo(sprintf('SELECT s.name, s.type, t.value, t.default_value, t.lang FROM dm_setting s LEFT JOIN dm_setting_translation t ON t.id=s.id AND t.lang IN (\'%s\')', implode('\', \'', $cultures)))->fetchAll(PDO::FETCH_NUM);
         $config = array();
         foreach ($results as $result) {
             $value = $result[2] != '' ? $result[2] : $result[3];
             switch ($result[1]) {
                 case 'boolean':
                     if ($value == '1') {
                         $value = true;
                     } else {
                         $value = false;
                     }
                     break;
                 case 'number':
                     $value = floatval($value);
                     break;
                 case 'integer':
                     $value = intval($value);
                     break;
             }
             // sfConfig::set(sprintf('dm_dmConfig_cache_%s_%s', $result[4], $result[0]), $value);
             // $config[sprintf('dm_dmConfig_cache_%s_%s', $result[4], $result[0])] = $value;
             $config[$result[0]][$result[4]] = $value;
         }
         unset($results);
         self::toMemory($config, $cultures);
         self::dump();
     }
     self::$loaded = true;
 }