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

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

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

2 ответа

Решение

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

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

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

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

Другие вопросы по тегам