summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorspider@app1 <spiderr@bitweaver.org>2016-07-07 23:27:46 -0400
committerspider@app1 <spiderr@bitweaver.org>2016-07-07 23:27:46 -0400
commit20fe82e426e095ce178d818d2e693da25410b200 (patch)
tree5b8ef3409e0ef7424c434b713f7697ba3dbdbdc2
parent1294b1fea508211a5e6a2c49e41399a69f68ebb5 (diff)
downloadlanguages-20fe82e426e095ce178d818d2e693da25410b200.tar.gz
languages-20fe82e426e095ce178d818d2e693da25410b200.tar.bz2
languages-20fe82e426e095ce178d818d2e693da25410b200.zip
make BitLanguage cacheable
-rw-r--r--BitLanguage.php32
1 files changed, 27 insertions, 5 deletions
diff --git a/BitLanguage.php b/BitLanguage.php
index fe3ff5f..2804d3d 100644
--- a/BitLanguage.php
+++ b/BitLanguage.php
@@ -24,10 +24,18 @@ class BitLanguage extends BitSingleton {
*/
function __construct() {
parent::__construct();
- global $gBitSystem;
+ $this->load();
+ }
- # TODO - put '@' here due to beta1->beta2 upgrades - wolff_borg
- $this->mLanguageList = $this->listLanguages();
+ protected function load() {
+ if( parent::load() ) {
+ $this->mLanguageList = $this->listLanguages();
+ $this->autoSetLanguage();
+ }
+ }
+
+ protected function autoSetLanguage() {
+ global $gBitSystem;
if (isset($_SESSION['bitlanguage'])) {
// users not logged that change the preference
@@ -54,6 +62,21 @@ class BitLanguage extends BitSingleton {
}
}
+ function isCacheableObject() {
+ return !empty( $this->mLanguageList );
+ }
+
+ public function __wakeup() {
+ parent::__wakeup();
+ if( empty( $this->mLanguageList ) ) {
+ $this->load();
+ }
+ }
+
+ public function __sleep() {
+ return array_merge( parent::__sleep(), array( 'mLanguageList' ) );
+ }
+
/**
* getLanguage get acvtive language
*
@@ -73,11 +96,10 @@ class BitLanguage extends BitSingleton {
*/
function setLanguage( $pLangCode ) {
$this->mLanguage = $pLangCode;
- $this->mLanguageInfo = $this->mDb->getRow( "SELECT il.* FROM `".BIT_DB_PREFIX."i18n_languages` il WHERE `lang_code` = ?", array( $pLangCode ) );
}
function isLanguageRTL () {
- return( !empty( $this->mLanguageInfo['right_to_left'] ) );
+ return( !empty( $this->mLanguageList[$this->mLanguage]['right_to_left'] ) );
}
/**