X-Git-Url: http://git.roojs.org/?p=Pman.Core;a=blobdiff_plain;f=DataObjects%2FI18n.php;fp=DataObjects%2FI18n.php;h=4d9ab616b3abb6cb521a8b4fb86614cd5c94ba2d;hp=739c80b318a4b8901a1d2e12fbfa67c708bd7cf2;hb=ca4761f3d6530b562525feec940a63c82cf45dc9;hpb=443623f47935eb52acd65a3ff0d84eab1fd5a98b diff --git a/DataObjects/I18n.php b/DataObjects/I18n.php index 739c80b3..4d9ab616 100644 --- a/DataObjects/I18n.php +++ b/DataObjects/I18n.php @@ -220,10 +220,36 @@ class Pman_Core_DataObjects_I18n extends DB_DataObject } + // 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,$ltype,$kval));