Navigation concrete5循环父级的子页

Navigation concrete5循环父级的子页,navigation,parent,concrete5,Navigation,Parent,Concrete5,我是concrete5新手,需要循环出父页面的子页面(父页面不一定是当前页面,因此可能需要将父段塞作为参数传递) 我希望这是简单的,但我在上面找到的一切都与自动导航有关。我无法使用自动导航,因为站点导航采用非标准格式 该解决方案不需要打印任何必要的标记,只需生成一个包含段塞和标题的PHP数组就可以了,然后我可以循环到一些标记中。但我会采取任何一种方式:-)提前谢谢 如果您想要一些标记,并且希望它显示在某种页面上,请查看页面列表块: 如果您需要以编程方式使用页面,那么有一个PageList模型,您

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

我希望这是简单的,但我在上面找到的一切都与自动导航有关。我无法使用自动导航,因为站点导航采用非标准格式

该解决方案不需要打印任何必要的标记,只需生成一个包含段塞和标题的PHP数组就可以了,然后我可以循环到一些标记中。但我会采取任何一种方式:-)提前谢谢

如果您想要一些标记,并且希望它显示在某种页面上,请查看页面列表块:


如果您需要以编程方式使用页面,那么有一个
PageList
模型,您可以将父页面传递给它,并将所有子页面作为
page
对象数组获取。

我刚刚开始使用concrete 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"

显然,根据您的需要,您需要修改代码,但这就是我在我的站点上最终使用的代码。如果有人建议如何一次抓取(比如)所有子页面,而不是一个接一个地抓取,我想那会好得多。

仔细想想。。。只要循环出当前页面的子页面就可以了。