Processwire Holder/Page 实现

Processwire Holder/Page implementation

如何在 Processwire 中实现 holder/page 模式。这个想法很简单。一种页面类型管理列表视图,并且通常包含非常少的本机内容。此页面的主要功能是提供其子页面的列表,为每个子页面提供一个简短的摘要,以及一个 link 到它的详细视图。第二种页面类型将代表任何给定子页面的详细信息视图,该页面通常具有构成其标识的自定义模板和内容字段。把它想象成新闻列表、图片库,甚至是 Twitter 时间线。

只需在父页面下创建页面,然后在子页面上迭代。 Processwire 虽然很慢,但最好使用 Silverstripe,它的响应速度更快。

我可以举出我最近使用 Processwire 构建的网站中两种不同方法的示例。

首先是新闻部分: 我有一个名为新闻的页面,它的模板是新闻列表。在新闻下,我有新闻页面,它们的模板是新闻详情。新闻列表模板只接受子页面的新闻详情和新闻列表。如果客户需要在新闻下创建子列表页面,我允许新闻列表下的新闻列表。

新闻列表模板基本上通过

获取新闻
<?php $news = $page->children('template=news-detail'); ?>

第二个是 Products 部分 网站有不同的部分用于目的。像女装、男装、童装等。产品不在这些主要分离之间共享。我的结构如下

  • 主要分离
    • 产品(产品列于下)
    • 类别(类别列在下方)

在产品详细信息页面上,您可以 select 多个类别。在类别页面上,产品是这样列出的。在主分离页面上,我列出了类别。这些页面类型中的每一种都有自己的模板。

$products = $page->rootParent->find("template=product-detail,category={$page->id}");

希望对您有所帮助