25 июля 2007 г.

Разные шаблоны для сайта и админской части

Наиболее изящное решение для подключения отдельного шаблона админской части.

Для Cake 1.1:
В каталоге app создаем (если его там нет) файл app_controller.php и добавляем туда такие строчки:


class AppController extends Controller { 

    function beforeRender() { 
        if(isset($this->params[CAKE_ADMIN])) { 
           $this->layout = 'admin'; 
        } 
    }

Теперь для админской части будет загружаться шаблон admin.thtml
Респект gwoo :)

Upd: 18 декабря 2007

Для Cake 1.2
В версии 1.2 указанное решение работать не будет. Хотя бы потому, что нет константы CAKE_ADMIN. Но решение похожее. Во-первых app_controller.php, от которого наследуются все контроллеры, переехал из корня в папку с контроллерами :-), теперь его надо создавать в /app/controllers. А метод beforeRender должен выглядеть так:


function beforeRender()
{
 if(isset($this->params['admin'])) {
  $this->layout = 'admin';
 }
}

Надо обратить внимание, что шаблоны в версии 1.2 по умолчанию с расширением сtp, а не thtml, как в 1.1.