Forums / National / Russian / Тех. поддержка / Видимость $L

dJemon
#1 2016-10-14 14:04

Подскажите, в что-не так сделал: на одной странице видно языковые переменные модуля размещенного в header, а на другой странице не видно?

Macik
#2 2016-10-14 20:49

Вариантов уйма...

  1. может быть вы пытаетесь обратиться к $L из тела какой-либо функции, не объявив переменную глобальной?
  2. может текущий код отрабатывает раньше подключения исходногго модуля? 
  3. может честь данных перекрывается другим расширением? 

Надо смотреть следующее:

  • как подключается эти «переменные в header»
  • какой модуль и по какому хуку работает на другой странице

 

Для начала — попробуйте проверить доступность переменных через фасад: cot::$L['something'].

Обратите внимание, что с версии 0.9.15 все наиболее востребованные глобальные переменные ($cfg, $usr, $db, $id, $strucutre и пр.) доступны через специальный «фасад»-класс cot. Таким образом нет необходимости использовать явное указание переменных в списке global, а можно обратиться к ним напрямую через свойство объекта: cot::$cfg (например). Полный список переменных доступных через «фасад» следующий: $cache, $cfg, $cot_extrafields, $db, $db_x, $env, $L, $out, $R, $structure, $sys, $usr.

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
dJemon
#3 2016-10-17 07:39

Через фасад cot::$L['modulname'] проверил, не видна переменная.

Добавлено 3 часа спустя:

Разобрался, оказалаось надо создать файл modulname.global.php с соответствующих кодом внутри.

This post was edited by dJemon (2016-10-17 10:56, 7 years ago)