X-Git-Url: http://git.roojs.org/?p=Pman.Core;a=blobdiff_plain;f=DataObjects%2FI18n.php;h=cae6e3bc24127a598049c408d7426eab2d3b7730;hp=f972efa5037a41fd6e71f5f5163c1795bdd08a86;hb=5d4ac076dc4f620fbb91944eead3e0af66216a03;hpb=8a29a1a5125f4b17e61ac4b35ecfcfa9684a5d87 diff --git a/DataObjects/I18n.php b/DataObjects/I18n.php index f972efa5..cae6e3bc 100644 --- a/DataObjects/I18n.php +++ b/DataObjects/I18n.php @@ -7,7 +7,7 @@ * It should eventually replace most of that.. * */ -require_once 'DB/DataObject.php'; +class_exists('DB_DataObject') ? '' : require_once 'DB/DataObject.php'; class Pman_Core_DataObjects_I18n extends DB_DataObject { @@ -52,9 +52,11 @@ class Pman_Core_DataObjects_I18n extends DB_DataObject 'm' => array( 'USD', 'HKD', 'GBP', 'CNY', 'SGD', 'JPY' ), + 'p' => '*', 'add_l'=> array(), // key -> value additional languages... 'add_c'=> array(), // additional countries...(eg. '-R' => 'Regional' ) 'add_m'=> array(), // additional currencies... + 'add_p'=> array(), // additional currencies... ); @@ -68,34 +70,45 @@ class Pman_Core_DataObjects_I18n extends DB_DataObject if ($loaded) { return self::$cfg; } + $loaded =true; $ff= HTML_FlexyFramework::get(); // BC compatible.. if any of these are set, then we use them as the settings.. $opts = array(); - foreach(array('Pman_Core_I18N', 'Pman_I18N','Pman_I18n') as $pk) { + foreach(array('Pman_Core_I18n', 'Pman_Core_I18N', 'Pman_I18N','Pman_I18n') as $pk) { if (isset($ff->$pk)) { //var_dump($pk); - $opts= $ff->$pk; + $opts = $ff->$pk; break; } } - //print_R($opts); + //echo '
';print_R($opts);//exit; - // var_dump($opts);exit; + // var_dump($opts);exit; $i = DB_DataObject::Factory('I18n'); // load the cofiguration foreach($opts as $k=>$v) { if ($v == '*') { // everything.. - self::$cfg[$k] = $i->availableCodes($k, false); + // self::$cfg[$k] = $i->availableCodes($k, false); continue; } + self::$cfg[$k] = is_array($v) ? $v : explode(',', $v); } - //print_R(self::$cfg); + // available codes recursively calls this... -- so the above has to be set first.. + foreach($opts as $k=>$v) { + + if ($v == '*') { // everything.. + self::$cfg[$k] = '*'; //$i->availableCodes($k, false); + continue; + } + + } + return self::$cfg; @@ -127,8 +140,9 @@ class Pman_Core_DataObjects_I18n extends DB_DataObject if (!empty($q['_filtered']) && !empty($this->ltype)) { $cfg = $this->cfg(); $filter = $cfg[$this->ltype]; - $this->whereAddIn('lkey', $filter, 'string'); - + if(is_array($filter)){ + $this->whereAddIn('lkey', $filter, 'string'); + } } } @@ -188,7 +202,7 @@ class Pman_Core_DataObjects_I18n extends DB_DataObject { $ret = array(); $cfg = $this->cfg(); - + //echo '';print_r($cfg); switch ($t) { case 'c': require_once 'I18Nv2/Country.php'; @@ -203,7 +217,7 @@ class Pman_Core_DataObjects_I18n extends DB_DataObject $ret[] = '**'; - echo '';print_R($cfg); print_r($ret); exit; + //echo '';print_R($cfg); print_r($ret); exit; break; case 'l': @@ -237,6 +251,15 @@ class Pman_Core_DataObjects_I18n extends DB_DataObject } $ret[] = '**'; break; + case 'p': + require_once 'I18Nv2/PhonePrefix.php'; + $c = new I18Nv2_PhonePrefix('en'); + $ret = array_keys($c->codes); + if (!empty($cfg['add_p'])) { + $ret = array_merge($ret, array_keys($cfg['add_p'])); + } + $ret[] = '**'; + break; } @@ -261,13 +284,13 @@ class Pman_Core_DataObjects_I18n extends DB_DataObject { $cfg = $this->cfg(); - //print_r($cfg); if ($ltype === false) { // trigger all builds. //DB_DataObject::debugLevel(1); $this->buildDB('c'); $this->buildDB('l'); $this->buildDB('m'); + $this->buildDB('p', 'en'); return; } @@ -296,7 +319,6 @@ class Pman_Core_DataObjects_I18n extends DB_DataObject $complete = $x->fetchAll('lkey'); $list = $this->availableCodes($ltype); - echo ''; print_r($list); foreach($list as $lkey) { // skip ones we know we have done... @@ -350,10 +372,12 @@ class Pman_Core_DataObjects_I18n extends DB_DataObject require_once 'I18Nv2/Country.php'; require_once 'I18Nv2/Language.php'; require_once 'I18Nv2/Currency.php'; + require_once 'I18Nv2/PhonePrefix.php'; $cache[$lang] = array( 'l' => new I18Nv2_Language($lang, 'UTF-8'), 'c' => new I18Nv2_Country($lang, 'UTF-8'), - 'm' => new I18Nv2_Currency($lang, 'UTF-8') + 'm' => new I18Nv2_Currency($lang, 'UTF-8'), + 'p' => new I18Nv2_PhonePrefix($lang, 'UTF-8') ); //echo '';print_r(array($lang, $cache[$lang]['c'])); }