0

我正在使用 Silverstripe 显示产品项目,有时一个产品项目属于两个不同的类别/页面。是否可以将页面分配给两个父母?如果不是,是否可以使用产品项目的链接并将其链接到两个不同的类别/页面?那是这样的:

类别/页面:早餐

子页面: ----------------------面包

- - - - - - - - - - - - - - - - - - 谷物

类别/页面:午餐

子页面:------------面包

- - - - - - - - - - - - - - - - - - -意大利面

是否可以在 Silverstripe 的管理部分创建一个名为 bread 的页面,但它将位于两页之下(例如早餐和午餐)。

如果无法将一个页面分配给两个父母,我可以使用页面面包的链接到两个页面(早餐和午餐)吗?我该怎么办?有教程或模块吗?

任何帮助表示赞赏。

谢谢,山姆:)

4

1 回答 1

2

如果我理解正确,您希望拥有 N (1 .. *) 父母的页面。但是页面只有一个父页面(根页面除外)。看一下底层代码:所有页面都继承自sapphire/core/model/SiteTree.php. 在$extensions您可以看到sapphire/core/model/Hierarchy.phphas_one为父页面定义的链接。虽然您可以扩展 SiteTree,但 CMS 无法处理此问题,因此您还需要重新设计 CMS 的一部分。我不认为那是你想要的。

我认为您正在寻找的是作为页面的 DataObjects。看看http://www.ssbits.com/tutorials/2010/dataobjects-as-pages-part-1-keeping-it-simple/它描述了这一点。您需要在“页面”上添加many_many关系和您需要的所有其他内容,但您将拥有所需的所有灵活性。

随时发布任何后续问题。

于 2012-01-12T17:48:47.860 回答