cotonti.com : Как получит значение системной переменной $env ? https://www.cotonti.com Last topic posts Cotonti en Wed, 03 Dec 2025 04:44:46 -0000 Roffun Дело в том что в шаблон.rc.php переменная $env есть, но она пуста. Если нужно именно в этом месте получить значения, то можно взять из переменной $_GET значения 'e', 'c', 'al', 'id' и разобрать их, например так:

$myEnv = array_filter(array(
   'e' => isset($_GET['e']) ? cot_import('e', 'G', 'ALP') : false,
   'c' => isset($_GET['c']) ? cot_import('c', 'G', 'TXT') : false,
   'al' => isset($_GET['al']) ? cot_import('al', 'G', 'TXT') : false,
   'id' => isset($_GET['id']) ? cot_import('id', 'G', 'INT') : false
), function ($v) {
    return $v !== false;
});

if (isset($myEnv['id']) || $myEnv['al']) {
    $myEnv['location'] = 'main';
} elseif (!empty($myEnv['c'])) {
    $myEnv['location'] = 'list';
} elseif (!empty($myEnv['e'])) {
    $myEnv['location'] = $myEnv['e'];
} else {
    $myEnv['location'] = 'home';
}

Теперь в переменной $myEnv будут нужные значения в зависимости от локации. Условий может быть и больше. Или же сделать плагин на нужный хук в котором переменная уже видна.

]]>
Sun, 13 Sep 2020 22:19:23 -0000
Виктор #45076 Roffun:

В своём расширении (модуле/плагине) нужно её объявить в зависимости от того где нужна видимость.

$env['location'] = 'mymodule.mylocation'

 

ну так и есть,  переменные обьявлены в модулях и плагинах для каждого свое значение, для разделов modname.main, modname.list, modname.test и тд каждая "локация" своя, и это очень удобно

Здесь же  задача выводить дополнительные скрипты js, css в зависимости где находимся, и так скажем хотелось бы чтобы редактировать все это в одном файле шаблона .rc.php, но $env не видна в этом файле, возможно лучше будет сделать небольшой плагин по хуках footer и header

Додано 2 хвилини потому:

#45077 jCube Group:

global $env; 
это до кода где нужно ее применять (один раз на фаил).

Если это не поможет значит ее там нет, возможно она обьявлена выше этого файла, в такос случаи ищите другой путь, попробуйте print_r($_REQUEST) или $_GET посостите что есть что вам может помочь.  но на сколько я помню в шаблоне можно получить эту переменную.

ее там нет однозначно, print_r($_REQUEST) или $_GET не то они возвращают сам модуль

по хуку header.tags $env видна

по footer.tags тоже видна, проще сделать плагин

 

]]>
Sun, 13 Sep 2020 17:36:57 -0000
jCube Group global $env; 
это до кода где нужно ее применять (один раз на фаил).

Если это не поможет значит ее там нет, возможно она обьявлена выше этого файла, в такос случаи ищите другой путь, попробуйте print_r($_REQUEST) или $_GET посостите что есть что вам может помочь.  но на сколько я помню в шаблоне можно получить эту переменную.

]]>
Sun, 13 Sep 2020 17:29:35 -0000
Roffun В своём расширении (модуле/плагине) нужно её объявить в зависимости от того где нужна видимость.

$env['location'] = 'mymodule.mylocation'

 

]]>
Sun, 13 Sep 2020 17:01:34 -0000
Виктор Как получит значение системной переменной $env (нужен $env['location']) в файле шаблона шаблон.rc.php?

в файлах модулей module.list.php прописано $env['location'] = 'module.list' и тд;

или вернее вопрос будет правильней как сделать переменную $env "видимой" в файле шаблона шаблон.rc.php?

]]>
Sun, 13 Sep 2020 07:30:26 -0000