在页面类型中设置自定义模板会覆盖concrete5中的包

时间:2015-01-12 19:45:36

标签: concrete5

在Concrete5.6.3.2中,我创建了一个自定义包,其中我覆盖了核心块类型“page_list”。 在同一个包中的自定义页面类型中,我定义了一个新区域:

$a = new Area('main');

我希望在我的自定义页面类型中添加到该区域时为page_list块设置自定义模板(视图)。我已经阅读了类似主题的许多其他答案,但我认为这对我不起作用的原因是1)因为我在一个自定义包中工作或2)在那个包中我覆盖了核心混凝土5块类型。

以下是我在上面的代码行下方所做的事情:

$a->setCustomTemplate('page_list', 'templates/events.php'); // I have also tried without the .php
$a->display($c);

events.php视图位于root / packages / my_package / blocks / page_list / templates / events.php

但是,尽可能尝试,当我将page_type块添加到该区域时,自定义模板不是默认模板。我的假设是为什么这不正确?如何解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:0)

我相信setCustomTemplate()只是让模板可供使用,但不会使其成为默认模板。在5.6中我认为唯一的方法是覆盖块的view.php,这似乎不适用于包。

在5.7中,他们解决了这个问题,你可以从主题PageTheme class

设置默认的块模板