подгрузить разные визуальные темы для сайта.
В корне сайта есть директория themes, в ней 2 папки (default, admin_test), и в них файлы шаблонов/чанков + стили и скрипты.
В каждой из папок с темой лежит файлик theme.config.php. В нем массив с системными настройками.
В плагине на событие OnMODXInit получаю файлик из нужной директории (в зависимости от ID пользователя), и переопределяю системную настройку. Она пока одна - pdotools_elements_path (путь до папки с файловыми элементами).
Настройка вроде переопределяется. И если вызвать на странице
{'pdotools_elements_path'|config}
то для пользователя с ID 1 показывает
/var/www/site.ru/themes/admin_test/
а для неавторизованного пользователя показывает
/var/www/site.ru/themes/default/
Директория с темой правильно подставляется в путь.
Но по факту, всегда рендарятся шаблоны из того пути, который указан в pdotools_elements_path в админке. Получается, сис.настройка изменяется, но не применяется.
Вопросики: Почему? Как исправить? Нужно как-то реинициализировать fenom?
покажи свой плагин на onmodxinit
<?php switch ($modx->event->name) { //OnHandleRequest case 'OnMODXInit': $user = $modx->getUser(); $user_id = $user->get('id'); switch ($user_id) { case '1': $theme = 'admin_test'; break; default: $theme = 'default'; break; }; $file = MODX_BASE_PATH.'themes/'.$theme.'/theme.config.php'; $response = require($file); if (is_array($response)) $modx->config = array_merge($modx->config, $response); //$modx->cacheManager->refresh(array('system_settings' => array())); break; }
Обсуждают сегодня