Completed
Push — work-fleets ( da4c88...99e92e )
by SuperNova.WS
05:42
created
includes/classes/classLocale.php 1 patch
Spacing   +64 added lines, -64 removed lines patch added patch discarded remove patch
@@ -35,13 +35,13 @@  discard block
 block discarded – undo
35 35
 
36 36
     $this->container = array();
37 37
 
38
-    if(classSupernova::$cache->_MODE != CACHER_NO_CACHE && !classSupernova::$config->locale_cache_disable) {
38
+    if (classSupernova::$cache->_MODE != CACHER_NO_CACHE && !classSupernova::$config->locale_cache_disable) {
39 39
       $this->cache = classSupernova::$cache;
40 40
       classSupernova::log_file('locale.__constructor: Cache is present');
41 41
 //$this->cache->unset_by_prefix($this->cache_prefix); // TODO - remove? 'cause debug!
42 42
     }
43 43
 
44
-    if($enable_stat_usage && empty($this->stat_usage)) {
44
+    if ($enable_stat_usage && empty($this->stat_usage)) {
45 45
       $this->enable_stat_usage = $enable_stat_usage;
46 46
       $this->usage_stat_load();
47 47
       // TODO shutdown function
@@ -67,18 +67,18 @@  discard block
 block discarded – undo
67 67
     unset($fallback[$this->active]);
68 68
 
69 69
     // Проходим по оставшимся локалям
70
-    foreach($fallback as $try_language) {
70
+    foreach ($fallback as $try_language) {
71 71
       // Если нет такой строки - пытаемся вытащить из кэша
72
-      if(!isset($this->container[$try_language][$offset]) && $this->cache) {
73
-        $this->container[$try_language][$offset] = $this->cache->__get($this->cache_prefix . $try_language . '_' . $offset);
72
+      if (!isset($this->container[$try_language][$offset]) && $this->cache) {
73
+        $this->container[$try_language][$offset] = $this->cache->__get($this->cache_prefix.$try_language.'_'.$offset);
74 74
 // Записываем результат работы кэша
75 75
 $locale_cache_statistic['queries']++;
76 76
 isset($this->container[$try_language][$offset]) ? $locale_cache_statistic['hits']++ : $locale_cache_statistic['misses']++;
77
-!isset($this->container[$try_language][$offset]) ? $locale_cache_statistic['missed_str'][] = $this->cache_prefix . $try_language . '_' . $offset : false;
77
+!isset($this->container[$try_language][$offset]) ? $locale_cache_statistic['missed_str'][] = $this->cache_prefix.$try_language.'_'.$offset : false;
78 78
       }
79 79
 
80 80
       // Если мы как-то где-то нашли строку...
81
-      if(isset($this->container[$try_language][$offset])) {
81
+      if (isset($this->container[$try_language][$offset])) {
82 82
         // ...значит она получена в результате фоллбэка и записываем её в кэш и контейнер
83 83
         $this[$offset] = $this->container[$try_language][$offset];
84 84
         $locale_cache_statistic['fallbacks']++;
@@ -94,16 +94,16 @@  discard block
 block discarded – undo
94 94
       $this->container[$this->active][] = $value;
95 95
     } else {
96 96
       $this->container[$this->active][$offset] = $value;
97
-      if($this->cache) {
98
-        $this->cache->__set($this->cache_prefix_lang . $offset, $value);
97
+      if ($this->cache) {
98
+        $this->cache->__set($this->cache_prefix_lang.$offset, $value);
99 99
       }
100 100
     }
101 101
   }
102 102
   public function offsetExists($offset) {
103 103
     // Шорткат если у нас уже есть строка в памяти PHP
104
-    if(!isset($this->container[$this->active][$offset])) {
104
+    if (!isset($this->container[$this->active][$offset])) {
105 105
 //        pdump($this->cache_prefix_lang . $offset);
106
-      if(!$this->cache || !($this->container[$this->active][$offset] = $this->cache->__get($this->cache_prefix_lang . $offset))) {
106
+      if (!$this->cache || !($this->container[$this->active][$offset] = $this->cache->__get($this->cache_prefix_lang.$offset))) {
107 107
 //        pdump($this->cache_prefix_lang . $offset);
108 108
         // Если нету такой строки - делаем фоллбэк
109 109
         $this->locale_string_fallback($offset);
@@ -119,7 +119,7 @@  discard block
 block discarded – undo
119 119
   }
120 120
   public function offsetGet($offset) {
121 121
     $value = $this->offsetExists($offset) ? $this->container[$this->active][$offset] : null;
122
-    if($this->enable_stat_usage) {
122
+    if ($this->enable_stat_usage) {
123 123
       $this->usage_stat_log($offset, $value);
124 124
     }
125 125
     return $value;
@@ -134,25 +134,25 @@  discard block
 block discarded – undo
134 134
 
135 135
 
136 136
   public function usage_stat_load() {
137
-    $this->stat_usage = classSupernova::$cache->lng_stat_usage  = array(); // TODO for debug
138
-    if(empty($this->stat_usage)) {
137
+    $this->stat_usage = classSupernova::$cache->lng_stat_usage = array(); // TODO for debug
138
+    if (empty($this->stat_usage)) {
139 139
       $query = doquery("SELECT * FROM {{lng_usage_stat}}");
140
-      while($row = db_fetch($query)) {
141
-        $this->stat_usage[$row['lang_code'] . ':' . $row['string_id'] . ':' . $row['file'] . ':' . $row['line']] = $row['is_empty'];
140
+      while ($row = db_fetch($query)) {
141
+        $this->stat_usage[$row['lang_code'].':'.$row['string_id'].':'.$row['file'].':'.$row['line']] = $row['is_empty'];
142 142
       }
143 143
     }
144 144
   }
145 145
   public function usage_stat_save() {
146
-    if(!empty($this->stat_usage_new)) {
146
+    if (!empty($this->stat_usage_new)) {
147 147
       classSupernova::$cache->lng_stat_usage = $this->stat_usage;
148 148
       doquery("SELECT 1 FROM {{lng_usage_stat}} LIMIT 1");
149
-      foreach($this->stat_usage_new as &$value) {
150
-        foreach($value as &$value2) {
151
-          $value2 = '"' . db_escape($value2) . '"';
149
+      foreach ($this->stat_usage_new as &$value) {
150
+        foreach ($value as &$value2) {
151
+          $value2 = '"'.db_escape($value2).'"';
152 152
         }
153
-        $value = '(' . implode(',', $value) .')';
153
+        $value = '('.implode(',', $value).')';
154 154
       }
155
-      doquery("REPLACE INTO {{lng_usage_stat}} (lang_code,string_id,`file`,line,is_empty,locale) VALUES " . implode(',', $this->stat_usage_new));
155
+      doquery("REPLACE INTO {{lng_usage_stat}} (lang_code,string_id,`file`,line,is_empty,locale) VALUES ".implode(',', $this->stat_usage_new));
156 156
     }
157 157
   }
158 158
   public function usage_stat_log(&$offset, &$value) {
@@ -162,8 +162,8 @@  discard block
 block discarded – undo
162 162
 
163 163
     $file = str_replace('\\', '/', substr($trace[1]['file'], strlen(SN_ROOT_PHYSICAL) - 1));
164 164
 
165
-    $string_id = $this->active . ':' . $offset . ':' . $file . ':' . $trace[1]['line'];
166
-    if(!isset($this->stat_usage[$string_id]) || $this->stat_usage[$string_id] != empty($value)) {
165
+    $string_id = $this->active.':'.$offset.':'.$file.':'.$trace[1]['line'];
166
+    if (!isset($this->stat_usage[$string_id]) || $this->stat_usage[$string_id] != empty($value)) {
167 167
       $this->stat_usage[$string_id] = empty($value);
168 168
       $this->stat_usage_new[] = array(
169 169
         'lang_code' => $this->active,
@@ -171,14 +171,14 @@  discard block
 block discarded – undo
171 171
         'file' => $file,
172 172
         'line' => $trace[1]['line'],
173 173
         'is_empty' => intval(empty($value)),
174
-        'locale' => '' . $value,
174
+        'locale' => ''.$value,
175 175
       );
176 176
     }
177 177
   }
178 178
 
179 179
 
180 180
   protected function lng_try_filepath($path, $file_path_relative) {
181
-    $file_path = SN_ROOT_PHYSICAL . ($path && file_exists(SN_ROOT_PHYSICAL . $path . $file_path_relative) ? $path : '') . $file_path_relative;
181
+    $file_path = SN_ROOT_PHYSICAL.($path && file_exists(SN_ROOT_PHYSICAL.$path.$file_path_relative) ? $path : '').$file_path_relative;
182 182
     return file_exists($file_path) ? $file_path : false;
183 183
   }
184 184
 
@@ -200,14 +200,14 @@  discard block
 block discarded – undo
200 200
 
201 201
     classSupernova::log_file("locale.include: Loading data from domain '{$filename}'", 1);
202 202
 
203
-    $cache_file_key = $this->cache_prefix_lang . '__' . $filename;
203
+    $cache_file_key = $this->cache_prefix_lang.'__'.$filename;
204 204
 
205 205
     // Подключен ли внешний кэш?
206
-    if($this->cache) {
206
+    if ($this->cache) {
207 207
       // Загружен ли уже данный файл?
208 208
       $cache_file_status = $this->cache->__get($cache_file_key);
209
-      classSupernova::log_file("locale.include: Cache - '{$filename}' has key '{$cache_file_key}' and is " . ($cache_file_status ? 'already loaded - EXIT' : 'EMPTY'), $cache_file_status ? -1 : 0);
210
-      if($cache_file_status) {
209
+      classSupernova::log_file("locale.include: Cache - '{$filename}' has key '{$cache_file_key}' and is ".($cache_file_status ? 'already loaded - EXIT' : 'EMPTY'), $cache_file_status ? -1 : 0);
210
+      if ($cache_file_status) {
211 211
         // Если да - повторять загрузку нет смысла
212 212
         return null;
213 213
       }
@@ -221,47 +221,47 @@  discard block
 block discarded – undo
221 221
     $this->make_fallback($language);
222 222
 
223 223
     $file_path = '';
224
-    foreach($this->fallback as $lang_try) {
225
-      if(!$lang_try /* || isset($language_tried[$lang_try]) */) {
224
+    foreach ($this->fallback as $lang_try) {
225
+      if (!$lang_try /* || isset($language_tried[$lang_try]) */) {
226 226
         continue;
227 227
       }
228 228
 
229
-      if($file_path = $this->lng_try_filepath($path, "language/{$lang_try}/{$filename_ext}")) {
229
+      if ($file_path = $this->lng_try_filepath($path, "language/{$lang_try}/{$filename_ext}")) {
230 230
         break;
231 231
       }
232 232
 
233
-      if($file_path = $this->lng_try_filepath($path, "language/{$filename}_{$lang_try}{$ext}")) {
233
+      if ($file_path = $this->lng_try_filepath($path, "language/{$filename}_{$lang_try}{$ext}")) {
234 234
         break;
235 235
       }
236 236
 
237 237
       $file_path = '';
238 238
     }
239 239
 
240
-    if($file_path) {
240
+    if ($file_path) {
241 241
       $a_lang_array = array();
242 242
       include($file_path);
243 243
 
244
-      if(!empty($a_lang_array)) {
244
+      if (!empty($a_lang_array)) {
245 245
         $this->merge($a_lang_array);
246 246
 
247 247
         // Загрузка данных из файла в кэш
248
-        if($this->cache) {
248
+        if ($this->cache) {
249 249
           classSupernova::log_file("Locale: loading '{$filename}' into cache");
250
-          foreach($a_lang_array as $key => $value) {
251
-            $value_cache_key = $this->cache_prefix_lang . $key;
252
-            if($this->cache->__isset($value_cache_key)) {
253
-              if(is_array($value)) {
250
+          foreach ($a_lang_array as $key => $value) {
251
+            $value_cache_key = $this->cache_prefix_lang.$key;
252
+            if ($this->cache->__isset($value_cache_key)) {
253
+              if (is_array($value)) {
254 254
                 $alt_value = $this->cache->__get($value_cache_key);
255 255
                 $value = array_replace_recursive($alt_value, $value);
256 256
                 // pdump($alt_value, $alt_value);
257 257
               }
258 258
             }
259
-            $this->cache->__set($this->cache_prefix_lang . $key, $value);
259
+            $this->cache->__set($this->cache_prefix_lang.$key, $value);
260 260
           }
261 261
         }
262 262
       }
263 263
 
264
-      if($this->cache) {
264
+      if ($this->cache) {
265 265
         $this->cache->__set($cache_file_key, true);
266 266
       }
267 267
 
@@ -274,14 +274,14 @@  discard block
 block discarded – undo
274 274
   }
275 275
 
276 276
   public function lng_load_i18n($i18n) {
277
-    if(!isset($i18n)) {
277
+    if (!isset($i18n)) {
278 278
       return;
279 279
     }
280 280
 
281
-    foreach($i18n as $i18n_data) {
282
-      if(is_string($i18n_data)) {
281
+    foreach ($i18n as $i18n_data) {
282
+      if (is_string($i18n_data)) {
283 283
         $this->lng_include($i18n_data);
284
-      } elseif(is_array($i18n_data)) {
284
+      } elseif (is_array($i18n_data)) {
285 285
         $this->lng_include($i18n_data['file'], $i18n_data['path']);
286 286
       }
287 287
     }
@@ -299,27 +299,27 @@  discard block
 block discarded – undo
299 299
 
300 300
     classSupernova::log_file("locale.switch: Trying to switch language to '{$language_new}'");
301 301
 
302
-    if($language_new == $this->active) {
302
+    if ($language_new == $this->active) {
303 303
       classSupernova::log_file("locale.switch: New language '{$language_new}' is equal to current language '{$this->active}' - EXIT", -1);
304 304
       return false;
305 305
     }
306 306
 
307 307
     $this->active = $language = $language_new;
308
-    $this->cache_prefix_lang = $this->cache_prefix . $this->active . '_';
308
+    $this->cache_prefix_lang = $this->cache_prefix.$this->active.'_';
309 309
 
310 310
     $this['LANG_INFO'] = $this->lng_get_info($this->active);
311 311
     $this->make_fallback($this->active);
312 312
 
313
-    if($this->cache) {
314
-      $cache_lang_init_status = $this->cache->__get($this->cache_prefix_lang . '__INIT');
315
-      classSupernova::log_file("locale.switch: Cache for '{$this->active}' prefixed '{$this->cache_prefix_lang}' is " . ($cache_lang_init_status ? 'already loaded. Doing nothing - EXIT' : 'EMPTY'), $cache_lang_init_status ? -1 : 0);
316
-      if($cache_lang_init_status) {
313
+    if ($this->cache) {
314
+      $cache_lang_init_status = $this->cache->__get($this->cache_prefix_lang.'__INIT');
315
+      classSupernova::log_file("locale.switch: Cache for '{$this->active}' prefixed '{$this->cache_prefix_lang}' is ".($cache_lang_init_status ? 'already loaded. Doing nothing - EXIT' : 'EMPTY'), $cache_lang_init_status ? -1 : 0);
316
+      if ($cache_lang_init_status) {
317 317
         return false;
318 318
       }
319 319
 
320 320
       // Чистим текущие локализации из кэша. Достаточно почистить только флаги инициализации языкового кэша и загрузки файлов - они начинаются с '__'
321 321
       classSupernova::log_file("locale.switch: Cache - invalidating data");
322
-      $this->cache->unset_by_prefix($this->cache_prefix_lang . '__');
322
+      $this->cache->unset_by_prefix($this->cache_prefix_lang.'__');
323 323
     }
324 324
 
325 325
     $this->lng_include('system');
@@ -329,9 +329,9 @@  discard block
 block discarded – undo
329 329
     // Loading global language files
330 330
     $this->lng_load_i18n(classSupernova::$sn_mvc['i18n']['']);
331 331
 
332
-    if($this->cache) {
333
-      classSupernova::log_file("locale.switch: Cache - setting flag " . $this->cache_prefix_lang . '__INIT');
334
-      $this->cache->__set($this->cache_prefix_lang . '__INIT', true);
332
+    if ($this->cache) {
333
+      classSupernova::log_file("locale.switch: Cache - setting flag ".$this->cache_prefix_lang.'__INIT');
334
+      $this->cache->__set($this->cache_prefix_lang.'__INIT', true);
335 335
     }
336 336
 
337 337
     classSupernova::log_file("locale.switch: Complete - EXIT");
@@ -341,9 +341,9 @@  discard block
 block discarded – undo
341 341
 
342 342
 
343 343
   public function lng_get_info($entry) {
344
-    $file_name = SN_ROOT_PHYSICAL . 'language/' . $entry . '/language.mo.php';
344
+    $file_name = SN_ROOT_PHYSICAL.'language/'.$entry.'/language.mo.php';
345 345
     $lang_info = array();
346
-    if(file_exists($file_name)) {
346
+    if (file_exists($file_name)) {
347 347
       include($file_name);
348 348
     }
349 349
 
@@ -351,15 +351,15 @@  discard block
 block discarded – undo
351 351
   }
352 352
 
353 353
   public function lng_get_list() {
354
-    if(empty($this->lang_list)) {
354
+    if (empty($this->lang_list)) {
355 355
       $this->lang_list = array();
356 356
 
357
-      $path = SN_ROOT_PHYSICAL . 'language/';
357
+      $path = SN_ROOT_PHYSICAL.'language/';
358 358
       $dir = dir($path);
359
-      while(false !== ($entry = $dir->read())) {
360
-        if(is_dir($path . $entry) && $entry[0] != '.') {
359
+      while (false !== ($entry = $dir->read())) {
360
+        if (is_dir($path.$entry) && $entry[0] != '.') {
361 361
           $lang_info = $this->lng_get_info($entry);
362
-          if($lang_info['LANG_NAME_ISO2'] == $entry) {
362
+          if ($lang_info['LANG_NAME_ISO2'] == $entry) {
363 363
             $this->lang_list[$lang_info['LANG_NAME_ISO2']] = $lang_info;
364 364
           }
365 365
         }
Please login to merge, or discard this patch.