0

我从事个人 cms 项目已经有很长一段时间了,因为我厌倦了为每个项目从头开始创建新的数据库层和组件。所以我决定在 zend 框架中启动一个小型 cms。

现在我已经到了应该使用户(未来的客户)能够管理创建他们的网站menusroutes并将其指向存储在数据库中的真实页面的地步。

我有几个模块,如文章、内容、画廊等。在我的项目中,我将文章和页面分开。对于文章,我认为它非常简单。对于页面,它可能会很棘手。

所以一个页面被保存在一个表中(带有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如果是,这是最佳做法吗?

4

1 回答 1

1

根据我的经验,将导航和页面/文章等解耦对于最终用户来说通常更容易理解和管理。

虽然您可以构建一个与 zend_navigation 接口的更复杂的系统,保存到配置文件等,但这会增加一层可能不需要的复杂性,当您可以在单独的表中对导航进行建模时 - 即树模式,每行item - 设置文本、标题、路线、目标窗口等

CMS 方面,您可以提供控件以“帮助”用户找到您的页面、产品等的路线。

然后可以由您的应用程序使用视图助手或通用部分呈现 - 如果此时需要,将您的数据转换为 zend_navigation 对象。

TLDR;概括:

在应用程序级别使用 zend_navigation 用于演示目的,而不是用于建模数据。

我知道

于 2011-10-18T08:16:25.757 回答