Concrete5中的硬编码page_list博客

时间:2015-03-12 15:48:58

标签: php content-management-system concrete5

之前我已经研究过如何将内容区域和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");
?>

但这似乎没有在网站上显示任何页面。我做错了什么?

1 个答案:

答案 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