как сделать разные шаблоны для сайта и модуля

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
ISP
Сообщения: 38
Зарегистрирован: 2011.03.18, 03:03

как сделать разные шаблоны для сайта и модуля

Сообщение ISP »

есть сайт с темой classic соответственно там есть layouts-main.php
тема грузится отлично все работает
создал модуль module1
в нем контроллер PostController.php

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

<?php

class PostController extends CController
{
    public function actionIndex()
    {
            $this->render('index');
    }
} 
в папке с модулем создал папки views-layouts-main.php (тут другой шаблон для всего модуля)
и views-post-index.php

когда обращаюсь к модулю, то содержимое файла views-post-index.php грузиться в шаблон основной темы, а не в шаблон модуля views-layouts-main.php
как это изменить?
Спасибо за помощь, я лишь учусь, поэтому и вопросы такие)
ISP
Сообщения: 38
Зарегистрирован: 2011.03.18, 03:03

Re: как сделать разные шаблоны для сайта и модуля

Сообщение ISP »

проблему решил, кому интересно, достаточно в
MyModule.php
добавить переменную
public $layout = 'main2';
со значением отличным от лайоута общей темы
Спасибо за помощь, я лишь учусь, поэтому и вопросы такие)
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: как сделать разные шаблоны для сайта и модуля

Сообщение slavcodev »

http://www.yiiframework.com/doc/api/1.1 ... out-detail
Т.е модулю можно из конфига, указывать шаблон.
Жду Yii 3!
Аватара пользователя
greatdane
Сообщения: 408
Зарегистрирован: 2010.10.20, 14:05
Откуда: Электросталь
Контактная информация:

Re: как сделать разные шаблоны для сайта и модуля

Сообщение greatdane »

Что-то не получается у меня...
В конфиге прописываю:

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

'modules'=>array(
        'eng'=>array(
            'layout'=>'application.modules.eng.views.layouts.english',
        ),
    ), 
Соответственно, шаблон лежит внутри папки модуля, в /protected/modules/eng/views/layouts, и называется english.php

Однако применяется все равно основной шаблон приложения, который /protected/views/layouts/main.php

Что у меня неправильно?
Аватара пользователя
MOTORIST
Сообщения: 245
Зарегистрирован: 2010.06.24, 10:04

Re: как сделать разные шаблоны для сайта и модуля

Сообщение MOTORIST »

Шаблоны лежат в папке themes
В сознании новичка много возможностей, в сознании эксперта — лишь несколько.
kostyan
Сообщения: 66
Зарегистрирован: 2011.08.23, 11:46

Re: как сделать разные шаблоны для сайта и модуля

Сообщение kostyan »

greatdane писал(а):Что-то не получается у меня...
В конфиге прописываю:

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

'modules'=>array(
        'eng'=>array(
            'layout'=>'application.modules.eng.views.layouts.english',
        ),
    ), 
Соответственно, шаблон лежит внутри папки модуля, в /protected/modules/eng/views/layouts, и называется english.php

Однако применяется все равно основной шаблон приложения, который /protected/views/layouts/main.php

Что у меня неправильно?
Такая же фигня…
Целый день убил, так и не понял что не так…
В настройка передаю полный путь к layout, а он все равно выводит базовый.
'administrator'=>array(
'layout'=>'application.modules.administrator.views.layouts.main'
),

Спасибо.
kostyan
Сообщения: 66
Зарегистрирован: 2011.08.23, 11:46

Re: как сделать разные шаблоны для сайта и модуля

Сообщение kostyan »

Разобрался, нах…
При создании через gii контролер создается путем
class DefaultController extends Controller….
А в Controller идет переопределение
public $layout='//layouts/column1'; …
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: как сделать разные шаблоны для сайта и модуля

Сообщение slavcodev »

так может в контроллерах модуля явно указан шаблон? тогда он перекрывает настройки модуля
еще можно попробовать указать модулю путь к шаблонам layoutPath
Жду Yii 3!
lilicbush
Сообщения: 32
Зарегистрирован: 2011.04.17, 18:55

Re: как сделать разные шаблоны для сайта и модуля

Сообщение lilicbush »

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

<?php

class AdminModule extends CWebModule {

    public function init() {
        // this method is called when the module is being created
        // you may place code here to customize the module or the application
        // import the module-level models and components
        //Yii::app()->getComponent("bootstrap");
        // set the layout path
        $this->setImport(array(
            'admin.models.*',
            'admin.components.*',
        ));
    }

    public function beforeControllerAction($controller, $action) {

        // set the layout
        $controller->layout = 'admin.views.layouts.default';

        if (parent::beforeControllerAction($controller, $action)) {
            // this method is called before any module controller action is performed
            // you may place customized code here
            return true;
        }
        else
            return false;
    }

}

Аватара пользователя
TranceSmile
Сообщения: 562
Зарегистрирован: 2011.06.27, 19:04
Откуда: Украина
Контактная информация:

Re: как сделать разные шаблоны для сайта и модуля

Сообщение TranceSmile »

погуглите dlayoutbehavior
Изображение
Ответить