Друзья. Опишу ситуацию.
Допустим есть контроллер администратора, который по сути нужен для того, чтобы переходить в админские части других контрллеров.
Допустим у нас есть контроллер Post.
Далее я опишу вид breadcrumbs, который ХОТЕЛОСЬ БЫ иметь в зависимоти от того ОТКУДА я пришел.
Состояния переходов.
1. Я нахожусь на индексе админа -breadcrumbs не отображаются.
2. Перехожу на список постов - breadcrumbs (Админка->Посты->Список постов).
3. Перехожу на Посты, т.е. на уровень выше - breadcrumbs (Админка->Посты) (Ссылка на админку сохранилась).
4. Перехожу на страницу создания поста - breadcrumbs (Админка->Посты->Создать пост).
Теперь я, как пользователь, простматриваю посты:
1. Я нахожусь на индексе постов -breadcrumbs не отображаются.
2. Перехожу на создание поста - (Посты->Создать пост).
Т.е. У одного и того же представления breadcrumbs могут изменятся в зависимости от маршрута переходов.
Такая вот канитель. Может быть передавать breadcrumbs как параметр? Спасибо
И снова CBreadcrumbs
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: И снова CBreadcrumbs
а такой вид представления не подходит?
Код: Выделить всё
if(Yii::app()->user->isAdmin)
{
breadcrumbs=array(
'adminHome'
);
}
else
{
breadcrumbs=array(
'userHome'
);
}
Жду Yii 3!
Re: И снова CBreadcrumbs
Это зависимость от пользователя. Боюсь, что она не подходит. Нужна зависимость от "предыдущего" места.
Re: И снова CBreadcrumbs
Предлагаю такую реализацию, работает как вы и описали, но с зависимостью от пользователя, т.к. не понятно, как определить зависимость от места
Попробуем строить зависимость от места, тогда вместо Yii::app()->user->admin провереям наличие куки
то при первом входе на 'post/index' breadcrumbs не отображются
при посещении 'admin/index' ставим кукис, переходим на 'post/index' breadcrumbs = Админка->Посты->Список постов
Тут лично мне не понятно, когда сбросить куку? При логауте? Тогда почему не использовать Yii::app()->user->admin?
Если отслеживать по refferer, то тоже будут косяки...
Код: Выделить всё
$home_url = (Yii::app()->user->admin) ? CHtml::link('Админка', array('admin/index')) : false;
if(count($this->breadcrumbs)>1 OR $home_url !== false) {
$this->widget('zii.widgets.CBreadcrumbs', array(
'links' => $this->breadcrumbs,
'homeLink' => $home_url,
));
}
Попробуем строить зависимость от места, тогда вместо Yii::app()->user->admin провереям наличие куки
то при первом входе на 'post/index' breadcrumbs не отображются
при посещении 'admin/index' ставим кукис, переходим на 'post/index' breadcrumbs = Админка->Посты->Список постов
Тут лично мне не понятно, когда сбросить куку? При логауте? Тогда почему не использовать Yii::app()->user->admin?
Если отслеживать по refferer, то тоже будут косяки...
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: И снова CBreadcrumbs
В оригинальном компоненте такого не предусмотрено. Поэтому два выходы или каждый раз запоминать в сессию пользователя на какой странице он находится, чтоб после перехода использовать эту инфу, сделать например через setFlash() или парсить Yii::app()->request->urlReferrer.isergey писал(а):Это зависимость от пользователя. Боюсь, что она не подходит. Нужна зависимость от "предыдущего" места.
Жду Yii 3!
Re: И снова CBreadcrumbs
Спасибо за информацию!