ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
class.ilCachedLanguage.php
Go to the documentation of this file.
1 <?php
2 require_once('./Services/GlobalCache/classes/class.ilGlobalCache.php');
3 
11 {
12  protected $global_cache;
16  protected $loaded = false;
20  protected $language_key = 'en';
24  protected $translations = array();
28  protected static $instances = array();
29 
30 
34  protected function __construct($language_key)
35  {
42  $this->readFromCache();
43  if (!$this->getLoaded()) {
44  $this->readFromDB();
45  $this->writeToCache();
46  $this->setLoaded(true);
47  }
48  }
49 
50 
54  public function isActive()
55  {
56  return $this->global_cache->isActive();
57  }
58 
59 
60  protected function readFromCache()
61  {
62  if ($this->global_cache->isActive()) {
63  $translations = $this->global_cache->get('translations_' . $this->getLanguageKey());
64  if (is_array($translations)) {
66  $this->setLoaded(true);
67  }
68  }
69  }
70 
71 
72  public function writeToCache()
73  {
74  if ($this->global_cache->isActive()) {
75  $this->global_cache->set('translations_' . $this->getLanguageKey(), $this->getTranslations());
76  }
77  }
78 
79 
80  protected function readFromDB()
81  {
82  global $ilDB;
86  $q = 'SELECT module, lang_array FROM lng_modules WHERE lang_key = %s';
87  $res = $ilDB->queryF($q, array( 'text' ), array( $this->getLanguageKey() ));
88  $translations = array();
89  while ($set = $ilDB->fetchObject($res)) {
90  $lang_array = unserialize($set->lang_array);
91  if (is_array($lang_array)) {
92  $translations[$set->module] = $lang_array;
93  }
94  }
96  }
97 
98 
104  public static function getInstance($key)
105  {
106  if (!isset(self::$instances[$key])) {
107  self::$instances[$key] = new self($key);
108  }
109 
110  return self::$instances[$key];
111  }
112 
113 
114  public function flush()
115  {
116  if ($this->global_cache->isActive()) {
117  $this->global_cache->flush();
118  }
119  $this->readFromDB();
120  $this->writeToCache();
121  }
122 
123 
127  public function setLanguageKey($language_key)
128  {
129  $this->language_key = $language_key;
130  }
131 
132 
136  public function getLanguageKey()
137  {
138  return $this->language_key;
139  }
140 
141 
145  public function setLoaded($loaded)
146  {
147  $this->loaded = $loaded;
148  }
149 
150 
154  public function getLoaded()
155  {
156  return $this->loaded;
157  }
158 
159 
164  {
165  $this->translations = $translations;
166  }
167 
168 
172  public function getTranslations()
173  {
174  return $this->translations;
175  }
176 }
static getInstance($component)
setTranslations($translations)
foreach($_POST as $key=> $value) $res
Create styles array
The data for the language used.
setLanguageKey($language_key)
global $ilDB
Class ilCachedLanguage.
$key
Definition: croninfo.php:18