Предложение по CMenu

Предварительное обсуждение найденных ошибок перед отправкой их авторам фреймворка, а также внесение новых предложений.
Ответить
Аватара пользователя
greatdane
Сообщения: 408
Зарегистрирован: 2010.10.20, 14:05
Откуда: Электросталь
Контактная информация:

Предложение по CMenu

Сообщение greatdane »

Есть предложение по CMenu - добавить в список опций, принимаемых свойством items, опцию activeFor - которая принимала бы массив URL'ов (controller/action), для которых этот пункт меню должен быть активен.
Поясню на примере: меню в лэйауте, в нем допустим есть пункт "Новости". Этот пункт будет активен, если мы находимся в списке новостей, но уже не будет активным на странице конкретной новости! Это же неудобно. А если бы мы добавили activeFor=>array('url'=>array('/news/view')) - пунктик автоматом бы активировался и в каждой новости. Кроме того, не все подразделы запихиваются в меню, но посетитель должен видеть, в каком разделе верхнего уровня он находится.
vtec
Сообщения: 49
Зарегистрирован: 2010.11.16, 10:28

Re: Предложение по CMenu

Сообщение vtec »

Поддерживаю.
Может уже есть какие то доработки?
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Предложение по CMenu

Сообщение slavcodev »

что-то странное, у меня стандартное меню, и в ситуации как в примере меню новости активное, даже когда я в конкрентной новости
Жду Yii 3!
Аватара пользователя
BuCeFaL
Сообщения: 447
Зарегистрирован: 2010.03.17, 21:22
Откуда: Kiev
Контактная информация:

Re: Предложение по CMenu

Сообщение BuCeFaL »

http://www.yiiframework.com/doc/api/1.1 ... ems-detail
active: boolean, optional, whether this menu item is in active state (currently selected). If a menu item is active and activeClass is not empty, its CSS class will be appended with activeClass. If this option is not set, the menu item will be set active automatically when the current request is triggered by url. Note that the GET parameters not specified in the 'url' option will be ignored.

Код: Выделить всё

//...
'active' => $this->_isActiveElement(),
//...


//  _isActiveElement()
return in_array($this->route,array('test/index','some/view'));
//...
 
vtec
Сообщения: 49
Зарегистрирован: 2010.11.16, 10:28

Re: Предложение по CMenu

Сообщение vtec »

Что то я не понял. Что нужно сделать чтобы заработало....
Понял, что если active выставляется в true то меню делается активным.
Если activeClass не пустой, то тоже работает.
Аватара пользователя
greatdane
Сообщения: 408
Зарегистрирован: 2010.10.20, 14:05
Откуда: Электросталь
Контактная информация:

Re: Предложение по CMenu

Сообщение greatdane »

У меня не работает в конкретной новости (urlManager стандартный, ничего не дописывалось и не менялось). Я устанавливаю класс "active" через jQuery, но это костыль. К тому же, как я написала выше, иногда бывает нужно отметить пункт самого верхнего уровня, не добавляя в Cmenu его "детей". Сейчас тоже делаю это через jQuery, однако хотелось бы стандартной опции.
Psih
Сообщения: 31
Зарегистрирован: 2010.05.12, 12:20

Re: Предложение по CMenu

Сообщение Psih »

Поддерживаю.

Типичный пример - админка с CRUD. Делаем пункт меню, заходим на список - всё ок. Тыкаем редактировать и всё - пункт меню уже не горит.
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Предложение по CMenu

Сообщение slavcodev »

BuCeFaL, верно подсказал
Жду Yii 3!
Ответить