From ca4761f3d6530b562525feec940a63c82cf45dc9 Mon Sep 17 00:00:00 2001 From: Alan Knowles Date: Wed, 2 Sep 2020 15:29:54 +0800 Subject: [PATCH] add support for aching all of the translations --- DataObjects/I18n.php | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) 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)); -- 2.39.2