Страница 1 из 1
Темизация в Yii2
Добавлено: 2013.10.16, 17:13
egorpromo
Насколько сейчас готова система темизации (поддержка тем)?
Мне это кажется или она действительно не готова? Сейчас я вижу, что в классе yii\base\Theme определена переменная Theme::pathMap, где содержится соответствие путей одного выбранного файла к другому, который есть в данной теме.
Мне кажется, что это какая-то заглушка, поэтому хотел бы узнать у разработчиков, на каком этапе находятся Темы в Yii2?
Также могу предложить свою идею, как организовать систему файлов в Темах.
Я думаю, что лучше где-нибудь в директории веб-приложения (@app) выделить директорию с именем подобным view_{theme-name}, внутри которой будут размещены файлы с видами и лейаутами. Это удобно, так как а) темизация ограничена только файлами внутри это директории б) можно легко создавать новые темы, а потом их подключать.
Re: Темизация в Yii2
Добавлено: 2013.10.16, 17:20
samdark
Вроде как готова, но делал её Qiang и я не следил. Как работает не знаю.
Re: Темизация в Yii2
Добавлено: 2014.05.19, 12:46
rafic
В данный момент нельзя разместить тему в @web/themes
Не знаю почему, но работает только если настройки такие:
Код: Выделить всё
'view' => [
'theme' => [
'pathMap' => [
'@app/views' => '@app/themes/basic',
'@app/modules' => '@app/themes/basic/modules'
],
],
]
Если папку с темами из @app переместить в @web и настройки прописать вот так
Код: Выделить всё
'view' => [
'theme' => [
'pathMap' => [
'@app/views' => '@web/themes/basic',
'@app/modules' => '@web/themes/basic/modules'
],
],
]
То тема не подхватывается. Почему?
Re: Темизация в Yii2
Добавлено: 2014.05.19, 13:08
lancedevnull
webroot
web указывает на урл
Код: Выделить всё
Yii::setAlias('@webroot', dirname($request->getScriptFile()));
Yii::setAlias('@web', $request->getBaseUrl());
Re: Темизация в Yii2
Добавлено: 2014.06.17, 09:59
Faenir
Подскажите пожалуйста, можно ли как-то убрать из пути к файлу темы "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
Добавлено: 2014.06.28, 23:07
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
Та же проблема, может кто нибудь нашел решение?
Re: Темизация в Yii2
Добавлено: 2014.06.29, 00:01
ptm
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
Добавлено: 2014.06.29, 00:26
lynicidn
а теперь отключите тему
Re: Темизация в Yii2
Добавлено: 2014.10.03, 06:44
Vodazar
Подскажите, в Yii2, на сколько я понял, нормальная практика это разделение темы на две папки, файлы view хранятся в корне приложения, а все ресурсы складываются в директорию web.
Я настроил View следующим образом:
Код: Выделить всё
'view' => [
'theme' => [
'pathMap' => ['@app/views' => '@app/themes/mythemename'],
'baseUrl' => '@web/themes/mythemename',
],
],
А как теперь в AssetBundle настроить, чтобы он работал относительно директории baseUrl из View?
Иначе получается, что мне и в каждом AssetBundle нужно прописывать теперь путь к mythemename, а если я потом захочу использовать тему mythemename2, то придётся переписывать все AssetBundle?
Re: Темизация в Yii2
Добавлено: 2015.05.31, 21:13
sergey144010
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
Вот таким образом можно избавиться от папки
views и складывать файлы темы модуля, в принципе наверное, куда угодно
Код: Выделить всё
'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
Добавлено: 2015.06.13, 12:41
SergV
Ребят, а как обстоят дела в Yii2 с переадресацией с -
../mytheme/layout/main.php на
../mytheme/index.php? Просто хочу привести стиль тем, к стандарту построения html тем, где индекстный файл лежит в корне а не где то в подпапках.
Я просто не нашёл не чего по этой теме, есть немного инфы из оф доков, но там только общие пути можно задать...
Код: Выделить всё
[[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.
Два года назад, когда игрался с первым Yii, помню что я как то это сделал, кажись в контроллерах менял путь к layout, но проблема в том что те эксперименты потеряны, да и сейчас я не нашёл не в конроллерах, не ещё где пути к layout... :/
ПС. Нашёл кой чего, но меняет только путь до директории:
$layoutPath public property
string getLayoutPath( )
void setLayoutPath( $path )
The root directory of layout files. Defaults to "$viewPath/layouts".
Всё лучше чем не чего. :/