В Yii Framework в качестве штатного средства для управления видимостью тех или иных визуальных объектов используется свойство visible.
Вот не большой пример из стандартного шаблона сайта, который включен в состав Yii. В нём реализовано управление показом кнопок главного меню для входа на сайт и выхода.
1 2 |
array('label'=>'Вход', 'url'=>array('/site/login'), 'visible'=>Yii::app()->user->isGuest), array('label'=>'Выйти ('.Yii::app()->user->name.')', 'url'=>array('/site/logout'), 'visible'=>!Yii::app()->user->isGuest) |
В таком случае на помощь приходит оператор PHP if. С помощью него можно просто и легко управлять видимостью любых визуальных объектов в зависимости от выполнения тех или иных условий.
В качестве примера, сделаем так, чтобы стандартное боковое меню «Operations» было доступно только авторизованным пользователям.
Для этого воспользуемся предыдущим примером. Возьмём из него код для определения, является ли пользователь авторизованным, и используем его в качестве условия для оператора if.
1 2 3 4 5 6 |
if (!Yii::app()->user->isGuest) { $this->beginWidget('zii.widgets.CPortlet', array('title'=>'Operations', )); $this->widget('zii.widgets.CMenu', array('items'=>$this->menu,'htmlOptions'=>array('class'=>'operations',),)); $this->endWidget(); } |
Теперь меню «Operations» доступно только авторизованным пользователям.
Данный приём можно использовать со всеми виджетами, у которых отсутствует свойство visible.
Добавить комментарий