Yii Framework Forum: Отдельный Шаблон Для Модуля (Не Получается) - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Отдельный Шаблон Для Модуля (Не Получается) Rate Topic: -----

#1 User is offline   kowapos 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 2
  • Joined: 08-June 14
  • Location:Ukraune

Posted 09 June 2014 - 03:08 AM

Всем привет))
Вообщем создал модуль administrator. скопировал шаблон из /protected/views/layouts в /protected/modules/administrator/views/layouts.
в config/main.php прописал такое:

        'administrator'=>array(
            'defaultController' => 'index',
            'layoutPath' => 'protected/modules/administrator/views/layouts',
            'layout' => 'main'
            ),


но ничего не изменилось, модуль использует основной шаблон. что не так?
0

#2 User is offline   ineersa 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 270
  • Joined: 15-April 13
  • Location:Ukraine

Posted 09 June 2014 - 03:17 AM

В самом модуле (AdministratorModule.php) добавьте
public $layout = 'administrator.views.layouts.main';

В инит контроллеров модуля:
public function init()
{
    $this->layout = $this->module->layout;
}

Если не хотите писать в каждом контроллере модуля init() и везде layout одинаковый, создайте общий контроллер для модуля и используйте его, например в components модуля:
class AController extends Controller
{
    public function init()
    {
        $this->layout = $this->module->layout;
    }
}

...

class MyController extends AController
{
}

Таким образом все будет работать и в конфиге можно будет задавать layout:
'administrator'=>array(
            'layout' => 'administrator.views.layouts.main'
),

0

#3 User is offline   kowapos 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 2
  • Joined: 08-June 14
  • Location:Ukraune

Posted 09 June 2014 - 03:28 AM

View Postineersa, on 09 June 2014 - 03:17 AM, said:

В самом модуле (AdministratorModule.php) добавьте
public $layout = 'administrator.views.layouts.main';

В инит контроллеров модуля:
public function init()
{
    $this->layout = $this->module->layout;
}

Если не хотите писать в каждом контроллере модуля init() и везде layout одинаковый, создайте общий контроллер для модуля и используйте его, например в components модуля:
class AController extends Controller
{
    public function init()
    {
        $this->layout = $this->module->layout;
    }
}

...

class MyController extends AController
{
}

Таким образом все будет работать и в конфиге можно будет задавать layout:
'administrator'=>array(
            'layout' => 'administrator.views.layouts.main'
),



Спаибо вам, добрый человек!! очень помогли
0

#4 User is offline   ineersa 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 270
  • Joined: 15-April 13
  • Location:Ukraine

Posted 09 June 2014 - 03:30 AM

Пожалуйста. Обращайтесь, чем сможем - поможем, как говорится. :rolleyes:
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users