Как использовать zend_navigation для заполнения zend_feed?

В файле начальной загрузки каждого из моих модулей я заполняю свой экземпляр Zend_Navigation, чтобы я мог создавать карты сайта html/xml, боковую панель навигации, административную навигацию, а теперь я хочу создать rss-канал.

Вместо того, чтобы дублировать код и добавлять страницы в Zend_Feed, есть ли способ использовать Zend_Navigation для заполнения Zend_Feed?


person Richard Parnaby-King    schedule 27.01.2011    source источник


Ответы (2)


Каналы представляют собой линейные записи и не поддерживают вложенные структуры, такие как навигация.

Тем не менее, контейнеры навигации реализуют интерфейсы итераторов SPL, поэтому вы можете легко итерировать их через foreach, чтобы передавать страницы как записи ленты.

Но я думаю, что лучшим подходом было бы добавление новых записей фида, когда вы добавляете свои страницы в контейнеры навигации, таким же образом.

person takeshin    schedule 27.01.2011
comment
Меня не очень интересует структура навигации, я просто хочу поместить все свои страницы из навигации в rss-канал. Однако, предвидя этот ответ, я расширил Zend_View_Helper_Navigation (вместо Zend_Navigation, потому что я торопился и не смотрел, что делаю), чтобы взять навигацию, создать массив элементов, которые Zend_Feed принял бы, и вернуть массив. - person Richard Parnaby-King; 28.01.2011

Я расширил Zend_View_Helper_Navigation, чтобы взять навигацию, создать массив ($feed) элементов, которые Zend_Feed примет, и вернуть Zend_Feed::importBuilder(new Zend_Feed_Builder($feed), 'rss')->saveXML();

person Richard Parnaby-King    schedule 26.09.2011