Zend Framework: Как разрешить пользователям cms создавать меню и ссылаться на соответствующие страницы из панели администратора? - PullRequest
0 голосов
/ 18 октября 2011

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

Теперь я подошел к точке, где я должен позволить пользователям (будущим клиентам) управлять сайтом, создавая их 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 Если да, то это лучшая практика?

1 Ответ

1 голос
/ 18 октября 2011

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

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

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

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

TLDR; Резюме:

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

Я знаю

...