Zend Framework: Как разрешить пользователям cms создавать меню и ссылки на соответствующие страницы из панели администратора?

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

Теперь я подошел к моменту, когда я должен позволить пользователям (будущим клиентам) управлять сайтом, создавая свои menus, routes и т. Д., И указывать его на реальную страницу, хранящуюся в базе данных.

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

Таким образом, страница сохраняется в таблице (с тегами html) и вводится в представление. Поскольку есть задействованные маршруты, я начал путаться в том, как связать меню, созданные с помощью Zend_Navigation, и фактическую страницу в базе данных. например, меню вроде:

about us           products           contact us
the team           productname 1      local
mission statement  productname 2      international

с разными маршрутами, такими как

/about-us          /products/list            /contact-us
/about-us/team     /products/productname1    /contact-us/local
/about-us/mission  /products/productname2    /contact-us/international

Имея в виду, что все страницы взяты из одной таблицы и отображаются в одном представлении PageController?

где конкретные вопросы:

Вопрос 1. Может ли этот подход вообще работать?
Вопрос 1.1, если нет, то какой дизайн лучше?
Вопрос 2, где Zend_Navigation сохранена? поскольку должен быть интерфейс, позволяющий пользователям изменять маршруты и меню.
Вопрос 2.1 Можно ли использовать Zend_Config_Xml_Writer?
Вопрос 2.2, если да, то лучшая практика?


person black sensei    schedule 18.10.2011    source источник


Ответы (1)


По моему опыту, разделение вашей навигации и страниц / статей и т. Д. Часто намного проще для понимания и управления конечными пользователями.

Хотя вы могли бы создать более сложную систему, которая взаимодействует с zend_navigation, сохраняет в файл конфигурации и т. Д., Это добавит уровень сложности, который, вероятно, не нужен, когда вы можете моделировать свою навигацию в отдельной таблице, то есть в шаблоне дерева, по одной строке на item - установить текст, заголовок, маршрут, целевое окно и т. д.

Что касается CMS, вы можете предоставить элементы управления, чтобы «помочь» пользователям найти маршруты для ваших страниц, продуктов и т. Д.

Затем это может быть визуализировано вашим приложением с помощью помощника представления или общего партиала, преобразуя ваши данные в объект zend_navigation, если это необходимо на этом этапе.

TL; DR; резюме:

Используйте zend_navigation на уровне приложения для целей презентации, а не для моделирования ваших данных.

Я знаю

person Alex Osborn    schedule 18.10.2011
comment
Судя по тому, что я прочитал, я на правильном пути. Меня беспокоят противоречивые маршруты для метода единого представления. Не могли бы вы дать мне больше информации о том, как бы вы справились с этим? Спасибо за ответы - person black sensei; 18.10.2011