Форум → Сообщество → Флейм → Максимально гибкая навигация
Максимально гибкая навигация
Страницы: ← Предыдущая страница →
-
-
22 июля 2011 г. 18:18, спустя 15 минут 15 секунд
а урлы какие у них будут?
так и будет–планируемые
–прошедшие
или там будут даты?не всё полезно, что в swap полезло -
22 июля 2011 г. 18:28, спустя 10 минут 25 секунд
даты
/meets/2011/06/05/999 - встреча 999
/meets/2011/06/05/999/photos - фотки с этой встречи
/meets/2011/06/05/999/photos/999 - конкретная фотка
И это все еще нужно в тайтл добавлять
фотки / тайтл встречи / встречи за такое-то число
основываться на урлах - это не есть гуд, они могут быть разные же. -
22 июля 2011 г. 18:57, спустя 28 минут 26 секунд
Не понял, что должно быть в меню? пункты "планируемые", "прошедшие" или пункты конкретно по каждому событию?
главная => /
места => /places
события => /meets
–планируемые => /meets/future
–прошедшие => /meets/complete
так?
или
главная => /
места => /places
события => /meets
–встреча 1 => /meets/2011/06/05/1 - встреча 1
–встреча 2 => /meets/2011/06/05/2 - встреча 2
…
–встреча 999 => /meets/2011/06/05/999 - встреча 999основываться на урлах - это не есть гуд, они могут быть разные же.
в основе всего лежат урлы, т.е. роуты. роуты можно структурировать (на основе сегментов или произвольно). на каждый роут вешается пара контроллер-вью. каждому роуту прописываются свойства - http-код ответа, content-type и т.д.Спустя 109 сек.собственно говоря, структурирование урлов нужно только для меню. идеологически правильная схема - это создать плоский массив с роутами, и отдельно меню, это позволит использовать в пределах одного и того же сайта любые меню на какие хватит фантазии. но поскольку в обычном среднестатистическом сайте требуется только одна структура меню, то можно всё упростить - редактировать роуты сразу в древовидном видене всё полезно, что в swap полезло -
22 июля 2011 г. 19:04, спустя 7 минут 23 секунды
второй вариант, я же написал выше.
ну сейчас похоже сделано
<?php
class ProjectMenu extends Menu
{
protected static $controllersToMenuItems = array(
'NewsfeedBundle:Newsfeed:view' => 'home',
'MeetsBundle:Meet:view' => 'groups', // встречи в группах происходят
);
public function __construct(ContainerInterface $container)
{
parent::__construct();
$this->addChild('home', '/')->setLabel('Главная');
$this->addChild('users', '/rides/')->setLabel('Катальцы');
$this->addChild('rides', '/riders/')->setLabel('Катушки');
$this->addChild('places', '/district/')->setLabel('Места');
$this->addChild('groups', '/groups/')->setLabel('Группы');
$this->addChild('topics', '/blog/')->setLabel('Темы');
$this->addChild('encyclopedia', '/encyclopedia/')->setLabel('Энциклопедия');
$this->addChild('market', '/board/sell/')->setLabel('Барахолка');
$controller = $container->get('request')->get('_controller');
if (!empty(self::$controllersToMenuItems[$controller])) {
$this->getChild(self::$controllersToMenuItems[$controller])->setIsCurrent(true);
}
}
} -
22 июля 2011 г. 19:23, спустя 19 минут 8 секунд
значит нужно привязать к роуту действие, расширяющее его, добавляющее в структуру меню подпунктыне всё полезно, что в swap полезло -
22 июля 2011 г. 19:34, спустя 10 минут 54 секунды
как быть если у нас страницы с контентом?
страница
–подстраница
контроллер-экшн один и тот же -
-
22 июля 2011 г. 19:54, спустя 11 минут 15 секунд
контроллер-экшн один и тот же
нет. к роутам привязываем контроллер-вью
НО кроме этого к каждому роуту привязываем (опционально)
- колбэк для изменения названия страницы в хлебных крошках
- колбэк для добавления урлов в sitemap
и (в твоём случае)
- колбэк для добавления подстраниц в меню
теперь когда обходим меню мы можем для каждого его пункта вызвать колбэки и по их результатам как-либо изменить этот пункт менюне всё полезно, что в swap полезло
Страницы: ← Предыдущая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!