Виктор |
|
---|---|
Как получит значение системной переменной $env (нужен $env['location']) в файле шаблона шаблон.rc.php? в файлах модулей module.list.php прописано $env['location'] = 'module.list' и тд; или вернее вопрос будет правильней как сделать переменную $env "видимой" в файле шаблона шаблон.rc.php? |
|
This post was edited by Виктор (2020-09-13 07:39, 4 years ago) |
Roffun |
|
---|---|
В своём расширении (модуле/плагине) нужно её объявить в зависимости от того где нужна видимость. $env['location'] = 'mymodule.mylocation'
Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
|
jCube Group |
|
---|---|
global $env; Если это не поможет значит ее там нет, возможно она обьявлена выше этого файла, в такос случаи ищите другой путь, попробуйте print_r($_REQUEST) или $_GET посостите что есть что вам может помочь. но на сколько я помню в шаблоне можно получить эту переменную. Сделал группу в телеге https://t.me/Cotonti_help если что помогу с вопросами.
|
Виктор |
|
---|---|
#45076 Roffun: ну так и есть, переменные обьявлены в модулях и плагинах для каждого свое значение, для разделов modname.main, modname.list, modname.test и тд каждая "локация" своя, и это очень удобно Здесь же задача выводить дополнительные скрипты js, css в зависимости где находимся, и так скажем хотелось бы чтобы редактировать все это в одном файле шаблона .rc.php, но $env не видна в этом файле, возможно лучше будет сделать небольшой плагин по хуках footer и header Додано 2 хвилини потому: #45077 jCube Group: ее там нет однозначно, print_r($_REQUEST) или $_GET не то они возвращают сам модуль по хуку header.tags $env видна по footer.tags тоже видна, проще сделать плагин
|
|
This post was edited by Виктор (2020-09-13 18:18, 4 years ago) |
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 будут нужные значения в зависимости от локации. Условий может быть и больше. Или же сделать плагин на нужный хук в котором переменная уже видна. Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
|
|
This post was edited by Roffun (2020-09-14 00:01, 4 years ago) |