X-Git-Url: http://git.roojs.org/?p=Pman.Core;a=blobdiff_plain;f=DataObjects%2FI18n.php;h=4d9ab616b3abb6cb521a8b4fb86614cd5c94ba2d;hp=fce1fc41173dee92c93d7f85780b6e7a39c0cb93;hb=HEAD;hpb=fab418ff161d2ca5b290937bf8af221b9cf7b2ce diff --git a/DataObjects/I18n.php b/DataObjects/I18n.php index fce1fc41..ba3386f7 100644 --- a/DataObjects/I18n.php +++ b/DataObjects/I18n.php @@ -220,13 +220,47 @@ class Pman_Core_DataObjects_I18n extends DB_DataObject } + function codeExists($ltype, $key) + { + $x = DB_DataObject::factory('i18n'); + $x->ltype = $ltype; + $x->lkey = $key; + return $x->count() ? true : false; + } + + // load all all to reduce future queries.. + function translateCache($inlang, $ltype, $build) + { + static $cache; + $key = "{$inlang} {$ltype}"; + if (isset($cache[$key])) { + return $cache[$key]; + } + if (!$build) { + return false; + } + + $x = DB_DataObject::factory('i18n'); + $x->ltype = $ltype; + + $x->inlang= $inlang; + $cache[$key] = $x->fetchAll('lkey', 'lval'); + + return $cache[$key] ; + + } + function translate($inlang,$ltype,$kval) { + $tc = $this->translateCache($inlang, $ltype, false); + if ($tc !== false && isset($tc[$kval])) { + return $tc[$kval]; + } static $cache = array(); - $cache_key = implode(' ', array($inlang,$ltime,$kval)); + $cache_key = implode(' ', array($inlang,$ltype,$kval)); if (isset($cache[$cache_key ])) { return $cache[$cache_key]; }