Темизация в Yii2
Темизация в Yii2
Насколько сейчас готова система темизации (поддержка тем)?
Мне это кажется или она действительно не готова? Сейчас я вижу, что в классе yii\base\Theme определена переменная Theme::pathMap, где содержится соответствие путей одного выбранного файла к другому, который есть в данной теме. Мне кажется, что это какая-то заглушка, поэтому хотел бы узнать у разработчиков, на каком этапе находятся Темы в Yii2?
Также могу предложить свою идею, как организовать систему файлов в Темах.
Я думаю, что лучше где-нибудь в директории веб-приложения (@app) выделить директорию с именем подобным view_{theme-name}, внутри которой будут размещены файлы с видами и лейаутами. Это удобно, так как а) темизация ограничена только файлами внутри это директории б) можно легко создавать новые темы, а потом их подключать.
Мне это кажется или она действительно не готова? Сейчас я вижу, что в классе yii\base\Theme определена переменная Theme::pathMap, где содержится соответствие путей одного выбранного файла к другому, который есть в данной теме. Мне кажется, что это какая-то заглушка, поэтому хотел бы узнать у разработчиков, на каком этапе находятся Темы в Yii2?
Также могу предложить свою идею, как организовать систему файлов в Темах.
Я думаю, что лучше где-нибудь в директории веб-приложения (@app) выделить директорию с именем подобным view_{theme-name}, внутри которой будут размещены файлы с видами и лейаутами. Это удобно, так как а) темизация ограничена только файлами внутри это директории б) можно легко создавать новые темы, а потом их подключать.
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Темизация в Yii2
Вроде как готова, но делал её Qiang и я не следил. Как работает не знаю.
Нравится Yii? Давайте сделаем его лучше!.
Re: Темизация в Yii2
В данный момент нельзя разместить тему в @web/themes
Не знаю почему, но работает только если настройки такие:
Если папку с темами из @app переместить в @web и настройки прописать вот так
То тема не подхватывается. Почему?
Не знаю почему, но работает только если настройки такие:
Код: Выделить всё
'view' => [
'theme' => [
'pathMap' => [
'@app/views' => '@app/themes/basic',
'@app/modules' => '@app/themes/basic/modules'
],
],
]
Код: Выделить всё
'view' => [
'theme' => [
'pathMap' => [
'@app/views' => '@web/themes/basic',
'@app/modules' => '@web/themes/basic/modules'
],
],
]
Ищу разработчика или команду разработчиков для поддержки проекта.
Детальнее узнай по ссылке https://goo.gl/YU8uTS.
Детальнее узнай по ссылке https://goo.gl/YU8uTS.
-
- Сообщения: 1268
- Зарегистрирован: 2013.07.17, 17:37
Re: Темизация в Yii2
webroot
web указывает на урл
web указывает на урл
Код: Выделить всё
Yii::setAlias('@webroot', dirname($request->getScriptFile()));
Yii::setAlias('@web', $request->getBaseUrl());
Re: Темизация в Yii2
Подскажите пожалуйста, можно ли как-то убрать из пути к файлу темы "views"?
Конфиг:
Приходится файлы модуля класть в
Конфиг:
Код: Выделить всё
'view' => [
'theme' => [
'pathMap' => [
'@backend/views' => '@backend/themes/default',
'@backend/views/layouts' => '@backend/themes/default/layouts',
'@backend/modules' => '@backend/themes/default',
'baseUrl' => '@backend/themes/default',
],
],
],
Хотелось бы, что бы они лежали в@backend/themes/default/user/views/default/index.php
@backend/themes/default/user/default/index.php
Re: Темизация в Yii2
Та же проблема, может кто нибудь нашел решение?MrArthur писал(а):Подскажите пожалуйста, можно ли как-то убрать из пути к файлу темы "views"?
Конфиг:Приходится файлы модуля класть вКод: Выделить всё
'view' => [ 'theme' => [ 'pathMap' => [ '@backend/views' => '@backend/themes/default', '@backend/views/layouts' => '@backend/themes/default/layouts', '@backend/modules' => '@backend/themes/default', 'baseUrl' => '@backend/themes/default', ], ], ],
Хотелось бы, что бы они лежали в@backend/themes/default/user/views/default/index.php@backend/themes/default/user/default/index.php
Re: Темизация в Yii2
Не совсем тот случай, но у виджетов переопределялmarmura писал(а):Та же проблема, может кто нибудь нашел решение?MrArthur писал(а):Подскажите пожалуйста, можно ли как-то убрать из пути к файлу темы "views"?
Конфиг:Приходится файлы модуля класть вКод: Выделить всё
'view' => [ 'theme' => [ 'pathMap' => [ '@backend/views' => '@backend/themes/default', '@backend/views/layouts' => '@backend/themes/default/layouts', '@backend/modules' => '@backend/themes/default', 'baseUrl' => '@backend/themes/default', ], ], ],
Хотелось бы, что бы они лежали в@backend/themes/default/user/views/default/index.php@backend/themes/default/user/default/index.php
public function getViewPath()
{
$class = new \ReflectionClass($this);
return dirname($class->getFileName()) . DIRECTORY_SEPARATOR . 'minilots\views';
}
Re: Темизация в Yii2
а теперь отключите тему
Re: Темизация в Yii2
Подскажите, в Yii2, на сколько я понял, нормальная практика это разделение темы на две папки, файлы view хранятся в корне приложения, а все ресурсы складываются в директорию web.
Я настроил View следующим образом:
А как теперь в AssetBundle настроить, чтобы он работал относительно директории baseUrl из View?
Иначе получается, что мне и в каждом AssetBundle нужно прописывать теперь путь к mythemename, а если я потом захочу использовать тему mythemename2, то придётся переписывать все AssetBundle?
Я настроил View следующим образом:
Код: Выделить всё
'view' => [
'theme' => [
'pathMap' => ['@app/views' => '@app/themes/mythemename'],
'baseUrl' => '@web/themes/mythemename',
],
],
Иначе получается, что мне и в каждом AssetBundle нужно прописывать теперь путь к mythemename, а если я потом захочу использовать тему mythemename2, то придётся переписывать все AssetBundle?
-
- Сообщения: 12
- Зарегистрирован: 2015.03.22, 19:28
Re: Темизация в Yii2
Вот таким образом можно избавиться от папки views и складывать файлы темы модуля, в принципе наверное, куда угодноMrArthur писал(а):Подскажите пожалуйста, можно ли как-то убрать из пути к файлу темы "views"?
Конфиг:Приходится файлы модуля класть вКод: Выделить всё
'view' => [ 'theme' => [ 'pathMap' => [ '@backend/views' => '@backend/themes/default', '@backend/views/layouts' => '@backend/themes/default/layouts', '@backend/modules' => '@backend/themes/default', 'baseUrl' => '@backend/themes/default', ], ], ],
Хотелось бы, что бы они лежали в@backend/themes/default/user/views/default/index.php@backend/themes/default/user/default/index.php
Код: Выделить всё
'pathMap' => [
'@sergey144010/simpleBlog/views' => '@app/themes/simpleBlog',
],
@sergey144010/simpleBlog - ссылка на директорию модуля (она должна у вас создаваться в yiisoft/extensions.php),
/views - соответственно директория views вашего модуля,
Из неё мы копируем все и складываем в папку :
@app/themes/simpleBlog
где
@app - ссылка на директорию приложения,
/themes/simpleBlog - соответственно создаём данные подпапки,
И в папку simpleBlog копируем содержимое папки views с некоторыми изменениями.
Ещё для примера,
Код: Выделить всё
'pathMap' => [
'@sergey144010/simpleBlog/views' => '@app/folder1/folder2/folder3',
],
Re: Темизация в Yii2
Ребят, а как обстоят дела в Yii2 с переадресацией с - ../mytheme/layout/main.php на ../mytheme/index.php? Просто хочу привести стиль тем, к стандарту построения html тем, где индекстный файл лежит в корне а не где то в подпапках.
Я просто не нашёл не чего по этой теме, есть немного инфы из оф доков, но там только общие пути можно задать...
Два года назад, когда игрался с первым Yii, помню что я как то это сделал, кажись в контроллерах менял путь к layout, но проблема в том что те эксперименты потеряны, да и сейчас я не нашёл не в конроллерах, не ещё где пути к layout... :/
ПС. Нашёл кой чего, но меняет только путь до директории:
Я просто не нашёл не чего по этой теме, есть немного инфы из оф доков, но там только общие пути можно задать...
Код: Выделить всё
[[yii\base\Theme::basePath]]: specifies the base directory that contains the themed resources (CSS, JS, images, etc.)
[[yii\base\Theme::baseUrl]]: specifies the base URL of the themed resources.
[[yii\base\Theme::pathMap]]: specifies the replacement rules of view files. More details will be given in the following subsections.
ПС. Нашёл кой чего, но меняет только путь до директории:
Всё лучше чем не чего. :/$layoutPath public property
string getLayoutPath( )
void setLayoutPath( $path )
The root directory of layout files. Defaults to "$viewPath/layouts".