我正在使用Silverstripe来显示产品项目,有时一个产品项目属于两个不同的类别/页面。是否可以将页面分配给两个父母?如果不是可以使用产品项的链接并将其链接到两个不同的类别/页面?这是这样的:
类别/页面:早餐
子页面: ----------------------的面包
------------------------------------谷物
类别/页面:午餐
子页面: -----------------------的面包
-------------------------------------面食
是否可以在Silverstripe的管理部分创建一个名为bread的页面,但它将在两页以下(例如早餐和午餐)。
如果将一个页面分配给两个不可能的父母,我可以使用页面面包链接到两页(早餐和午餐)吗?我该怎么做?任何教程或模块?
感谢任何帮助。
谢谢, 山姆:)
答案 0 :(得分:2)
如果我理解正确,你想拥有N(1 .. *)父母的页面。但是,页面只有一个父级(根页除外)。查看底层代码:所有页面都继承自sapphire/core/model/SiteTree.php
。在$extensions
中,您可以看到sapphire/core/model/Hierarchy.php
的链接,其中您为父页面定义了has_one
。虽然您可以扩展SiteTree,但CMS无法处理此问题,因此您还需要重新编写CMS的一部分。我认为这不是你想要的。
我认为你要找的是DataObjects作为页面。看一下描述这一点的http://www.ssbits.com/tutorials/2010/dataobjects-as-pages-part-1-keeping-it-simple/。您需要在“网页”上添加many_many
关系以及您需要的所有其他内容,但您将拥有所需的所有灵活性。
随意发布任何后续问题。