Загрузить элемент макета на основе представления в CakePHP - PullRequest
0 голосов
/ 22 января 2012

В моем основном макете определена боковая панель, в которой большую часть времени будет отображаться форма входа.После того, как пользователь вошел в систему, мне нужно удалить эту форму и заменить ее данными пользователя.Мне также нужно изменить эту боковую панель при просмотре раздела поддержки, чтобы показать подразделы.

Нужно ли перемещать загрузку элемента для каждого вида или есть другой способ?

Спасибо зазаранее, Денис

1 Ответ

1 голос
/ 22 января 2012

В итоге вам понадобится блок if($supportpage){} elseif($loggedin){} else{}. Если вы не хотите помещать его в файл макета, вы можете создать элемент для каждой опции, а затем set() правильный из app_controller:

if ($supportpage) $sidebar = 'support';
elseif ($loggedin) $sidebar = 'loggedin';
else $sidebar = 'notloggedin';

$this->set(compact($sidebar));

А затем вставьте $this->element($sidebar) в свой макет.

...