За последние 24 часа нас посетил 46271 программист и 1268 роботов. Сейчас ищут 1079 программистов ...

Активные пункты меню

Тема в разделе "Прочие вопросы по PHP", создана пользователем d1gi, 5 фев 2012.

  1. d1gi

    d1gi Активный пользователь

    С нами с:
    24 май 2009
    Сообщения:
    326
    Симпатии:
    0
    Предположим есть 2-х колоночный макет: контент и меню с навигацией следующего содержания:

    1. главная
    2. о компании
    2.1. история
    2.2. руководство
    3. новости
    3.1. акции компании
    3.2. в мире
    4. контакты

    Если рассматривать паттерн MVC, то например при запросе /about/history/ допустим роутер должен выполнить класс About и метод historyAction, в прицнипе он должен вернуть только текстовку и поместить её в макет в блок контента, вроде всё хорошо, но как заставить при этом меню с навигацией на пунктах «о компании» и «история» установить css классы «selected»?

    Вообще подход «виджетов» мне ненравится... мне ближе, когда сначала генерируются ВСЕ данные, а потом они только отображается т.е. применить метод запуска контроллера менюшки прямо из шаблона имхо некрасиво :(

    Посоветуйте какие еще есть варианты решения? в идеале меню должен генерировать специально обученный для этих целей класс ;) но тогда как настроить роутинг приложения, чтобы он вызывал 2 экшена и получал 2 ответа для 2-х блоков макете? вводить какой-нить «управляющий контроллер»?
     
  2. yuri

    yuri Активный пользователь

    С нами с:
    16 янв 2012
    Сообщения:
    288
    Симпатии:
    2
    Ни кто не заставляет пользоваться виджетами. :)
    Сгенери массив меню, передай его в вид и там простым foreach выведи меню как тебе надо.
     
  3. d1gi

    d1gi Активный пользователь

    С нами с:
    24 май 2009
    Сообщения:
    326
    Симпатии:
    0
    можете в кратце описать как должен выглядеть роутинг, который выполняет 2 котроллера и передаёт оба результата в вид для разных блоков?

    притом так, что бы котроллер статей и конроллер меню были достаточно абстрагированы и пригодны для повторного использования.
     
  4. yuri

    yuri Активный пользователь

    С нами с:
    16 янв 2012
    Сообщения:
    288
    Симпатии:
    2
    сама идея
    уже ошибочна
    контроллер это не функция, которую можно(нужно) вызывать из другого контроллера и передавать туда данные :)

    http://ru.wikipedia.org/wiki/Model-view ... 0.BA.D0.B8

    Видимо вы перепутали контроллер и компонент :)