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; }
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; }