Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Хлебные крошки (breadcrumbs)
Форумы портала PHP.SU » » Объектно-ориентированное программирование » Хлебные крошки (breadcrumbs)

Страниц (1): [1]
 

1. digi - 17 Января, 2012 - 10:04:40 - перейти к сообщению
где лучше собирать данные для сабжа?

теретически ури может выглядеть так:
http://loc/site/news/first[dot]html

при этом сабж может быть таким:

Главная » Новости » Первая

а может быть и таким, даже при том же самом запросе:

Главная » Новости » 2012 » Январь » Первая

т.е. как мне кажется наиболее правильным местом где будут собираться ХК, это роутер, именно он раpбирая шаблоны УРИ может сгенерить данные для ХК.

но допустим пускай будет так Улыбка а после того как роутер отработал, куда эти данные лучше заснуть? хранить в каком-то общедоступном пространстве? но как его лучше назвать? ;) мне пока приходит на ум что-то типа:
PHP:
скопировать код в буфер обмена
  1. $this->Html->addBreadCrumb(array(
  2.        'uri' => 'relative/path/to/,
  3.       'title' => 'Заголовок',
  4.       'descr' => 'Описание',
  5.       ));


а если короче, то:
PHP:
скопировать код в буфер обмена
  1. $this->Html->addBreadCrumb('relative/path/to/, 'Заголовок', 'Описание');


где $this->Html это просто объект доступный из контроллера и допустим роутер или экшен туда всё сложит, а вызывающий контроллер должен будет забрать все данные и прилепить их в общую картину...

или роутер вообще не должен генерить никаких данных, кроме как инструкции по запуску классов и экшенов?
2. Viper - 17 Января, 2012 - 10:17:36 - перейти к сообщению
digi пишет:
или роутер вообще не должен генерить никаких данных, кроме как инструкции по запуску классов и экшенов?
а у вас что роутер занимается разруливанием какой класс загружать?

Насколько я знаю(хотя могу ошибаться) обычно таким занимается как раз таки контроллер. А роутер занимается только обработкой частей url(что-то наподобие mod_rewrite) и возвратом результата.

Хотя идея у вас в правильном направлении.
3. digi - 17 Января, 2012 - 10:37:01 - перейти к сообщению
Viper пишет:
а у вас что роутер занимается разруливанием какой класс загружать?


ну как бы да Улыбка т.е. роутер возвращает:
- статус отбработки запроса.
- имя класса контроллера
- имя экшена этого контроллера
- аргументы которые надо передать экшену

 

Powered by ExBB FM 1.0 RC1