之前我已经研究过如何将内容区域和autonav块硬编码到我的模板中。我正在尝试对page_list执行相同的操作,该页面显示具有特定页面类型news entry
的页面,使用分页并显示标题。
这是我走了多远:
<?php
$archive = BlockType::getByHandle("page_list");
$archive->controller->orderBy = "chrono_desc";
$archive->controller->ctID = "news";
$archive->controller->paginate = true;
$archive->render("view");
?>
但这似乎没有在网站上显示任何页面。我做错了什么?
答案 0 :(得分:1)
看起来您正在向ctID提供页面类型句柄而不是页面类型ID。
您应该可以这样做:
$sweetPageType = PageType::getByHandle('news');
if(is_object($sweetPageType)) { // let's be extra safe, eh?
$sweetPageTypeID = $sweetPageType->getPageTypeID();
}
然后,在你的硬编码块(你可以测试你有一个ID,虽然我认为如果它是null它只会没有效果):
$archive->controller->ctID = $sweetpageTypeID;
Dunno如果您使用的是5.6或5.7,但我相信两者都应该相同。以下是c5 API的相关链接: http://concrete5.org/api/class-Concrete.Core.Page.Type.Type.html