ФорумСообществоФлейм → Максимально гибкая навигация

Максимально гибкая навигация

  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 22 июля 2011 г. 18:03, спустя 3 минуты 56 секунд

    да

    главная
    места
    события
    –планируемые
    –прошедшие
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 22 июля 2011 г. 18:18, спустя 15 минут 15 секунд

    а урлы какие у них будут?

    так и будет
    –планируемые
    –прошедшие

    или там будут даты?
    не всё полезно, что в swap полезло
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 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 - конкретная фотка

    И это все еще нужно в тайтл добавлять

    фотки / тайтл встречи / встречи за такое-то число


    основываться на урлах - это не есть гуд, они могут быть разные же.
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 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 полезло
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 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);
    }
    }
    }
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 22 июля 2011 г. 19:23, спустя 19 минут 8 секунд

    значит нужно привязать к роуту действие, расширяющее его, добавляющее в структуру меню подпункты
    не всё полезно, что в swap полезло
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 22 июля 2011 г. 19:34, спустя 10 минут 54 секунды

    как быть если у нас страницы с контентом?

    страница
    –подстраница

    контроллер-экшн один и тот же
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 22 июля 2011 г. 19:42, спустя 8 минут 11 секунд

    да уже бы нарисовал протомодель :D
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 22 июля 2011 г. 19:54, спустя 11 минут 15 секунд

    контроллер-экшн один и тот же

    нет. к роутам привязываем контроллер-вью
    НО кроме этого к каждому роуту привязываем (опционально)
    - колбэк для изменения названия страницы в хлебных крошках
    - колбэк для добавления урлов в sitemap
    и (в твоём случае)
    - колбэк для добавления подстраниц в меню

    теперь когда обходим меню мы можем для каждого его пункта вызвать колбэки и по их результатам как-либо изменить этот пункт меню
    не всё полезно, что в swap полезло

Пожалуйста, авторизуйтесь, чтобы написать комментарий!