Вопрос про themeManager

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
garizlo
Сообщения: 11
Зарегистрирован: 2010.05.31, 18:34

Вопрос про themeManager

Сообщение garizlo »

В конфиге пишу так:

Код: Выделить всё

// application components
    'components'=>array(
        'themeManager' => array(
            //'class'    => 'CThemeManager',
            'basePath' => 'Z:/home/site.local/www/themes',
            'baseUrl'  => 'www/themes',
            'theme'    =>'default'
        ),
......
...
.. 
При таком конфиге темы все равно берутся из protected/view :cry: :cry: :cry:

Что не так делаю, подскажите пожалуйста...
Каким бы ни был результат, ты сам сделал выбор. Главное не жалей о нем.
vlastachu
Сообщения: 50
Зарегистрирован: 2010.03.01, 20:15

Re: Вопрос про themeManager

Сообщение vlastachu »

можно прописатьне в компонентах, а сразу в массиве конфигураций

Код: Выделить всё

return array(
'theme'=>'themename',
...
) 
При этом файлы темы будут браться из 'корневая папка/themes/themename/views/' (то есть layouts тоже будет браться оттуда из папки views).
vlastachu
Сообщения: 50
Зарегистрирован: 2010.03.01, 20:15

Re: Вопрос про themeManager

Сообщение vlastachu »

А делал ты скорей всего всё правильно, просто дефолтные настройки themeManagerа и так вполне нормальны.
garizlo
Сообщения: 11
Зарегистрирован: 2010.05.31, 18:34

Re: Вопрос про themeManager

Сообщение garizlo »

vlastachu писал(а):можно прописать не в компонентах, а сразу в массиве конфигураций

Код: Выделить всё

return array(
'theme'=>'themename',
...
) 
При этом файлы темы будут браться из 'корневая папка/themes/themename/views/' (то есть layouts тоже будет браться оттуда из папки views).
Пробовал так.
получается следующее примерно:

Код: Выделить всё

return array(
    'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
    'name'=>'My Web Application',    
        'theme'=>'default',
...
) 
получаю ошибку:
Fatal error: Call to a member function getTheme() on a non-object in Z:\home\site.local\www\framework\web\CWebApplication.php on line 233
Каким бы ни был результат, ты сам сделал выбор. Главное не жалей о нем.
vlastachu
Сообщения: 50
Зарегистрирован: 2010.03.01, 20:15

Re: Вопрос про themeManager

Сообщение vlastachu »

Код: Выделить всё

        'import'=>array(
                'application.models.*',
                'application.components.*',
        ),
        'theme'=>'classic',
 
Может быть в этом дело? (всмысле последовательность)
garizlo
Сообщения: 11
Зарегистрирован: 2010.05.31, 18:34

Re: Вопрос про themeManager

Сообщение garizlo »

Все, заработало. Спасибочки всем.

Код: Выделить всё

return array(
       'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
       'name'=>'My Web Application',
       'theme'=>'default', //!!!!!!!!!!!!!!!!!!!
       ...
    // application components
    'components'=>array(
        'themeManager' => array( //!!!!!!!!!!!!!!!!!!!!!!!!!
            'class'    => 'CThemeManager',
            'basePath' => 'Z:/home/site.local/www/themes',
            'baseUrl'  => 'www/themes'
        ),
         ),
         ...    
) 
То есть пути прописываем в компонентах -> themeManager
А какой шаблон будет использоваться в основном массиве конфигурации...

//////=))))))))))))))))))))))))
Каким бы ни был результат, ты сам сделал выбор. Главное не жалей о нем.
garizlo
Сообщения: 11
Зарегистрирован: 2010.05.31, 18:34

Re: Вопрос про themeManager

Сообщение garizlo »

Радовался, да рано.

Темы берет отсюда: Z:/home/site.local/www/themes',
А стили из protected/views/layouts

но при этом,

Код: Выделить всё

<?php echo $this->getLayoutFile('main'); ?>
выдает правильный путь к стилю... Z:/home/site.local/www/themes/layouts/main.php',

В момент вызова метода render или renderPartial для отображения представления происходит обращение к соответствующим файлам представлений и макетов активной темы. Если файлы найдены, начнется формирование странички, в противном случае, будут использоваться файлы оформления по умолчанию, месторасположение которых устанавливается свойствами viewPath и layoutPath.
то есть получается, что система не находит файл по пути (хотя он там есть):
Z:/home/site.local/www/themes/layouts/main.php
и лезет по адресу: protected/views/layouts


Для стилей тоже надо указывать путь что ли??? =)
Каким бы ни был результат, ты сам сделал выбор. Главное не жалей о нем.
garizlo
Сообщения: 11
Зарегистрирован: 2010.05.31, 18:34

Re: Вопрос про themeManager

Сообщение garizlo »

Разобрался.

Компонент Controller

Код: Выделить всё

class Controller extends CController
{
    public $layout='application.views.layouts.column1';
...
}
 
Каким бы ни был результат, ты сам сделал выбор. Главное не жалей о нем.
Ответить