【问题标题】:concrete5 loop child pages of parent父的concrete5循环子页面
【发布时间】:2014-05-04 00:16:43
【问题描述】:

我是concrete5的新手,需要循环出父级的子页面(父级不一定是当前页面,因此可能需要父级slug作为参数传递)。

我希望这很简单,但我在上面找到的所有内容都与自动导航有关。由于网站导航采用非标准格式,我无法使用自动导航。

该解决方案不一定需要打印任何标记 - 只需生成一个 PHP 数组和标题就可以了,然后我可以循环进入一些标记。但我会采取任何一种方式:-) 提前致谢!

【问题讨论】:

  • 实际考虑一下……循环出当前页面的子页面就可以了。

标签: navigation parent concrete5


【解决方案1】:

如果您想要 一些 标记,并且希望它显示在某种页面上,请查看页面列表块:http://www.concrete5.org/documentation/editors-guide/in-page-editing/block-areas/add-block/page-list/

如果您以编程方式需要页面,那么有一个 PageList 模型,您可以将父页面传递给该模型并将所有子页面作为Page 对象的数组获取。https://github.com/concrete5/concrete5/blob/master/web/concrete/core/models/page_list.php

【讨论】:

    【解决方案2】:

    我刚开始使用具体的 5,我可以看出这不是最佳代码。但它有效,也许它会帮助你,因为其他文章对我没有太大帮助。

    也就是说,如果您有要为其获取子页面的页面的 ID,则可以执行以下操作:

    $page = Page::getByID("page_id_here");
    $sub_page_ids = $page->getCollectionChildrenArray(1);
    foreach ($sub_page_ids as $id) {
        $page = Page::getByID($id);
        $pages_array[$page->getCollectionName()] = DIR_REL . $page->getCollectionPath();
    }
    

    这将输出一个看起来像这样的数组

    $pages_array["page-url-here"] = "Title of Page Here"
    

    显然,根据您的需要,您需要修改代码,但这是我最终在我的网站上使用的。如果有人有关于如何一次抓取所有子页面而不是一个一个抓取所有子页面的建议,我认为那会好得多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-12
      • 1970-01-01
      相关资源
      最近更新 更多