使用renderWith()以自定义布局呈现核心模板

时间:2016-10-25 01:24:25

标签: php templates silverstripe

我有一个班级

class ModuleController extends Controller {

    private static $allowed_actions = array( 
        'index'
    );

    public function index(SS_HTTPRequest $request) {
        return $this->renderWith(array("Module/HomePage", "Page"));
    }
}

两个模板,一个是Page.ss,另一个是Layout/Module/Homepage.ss。在Page.ss我有一堆html和$Layout。通过在线查看其他区域,我希望页面可以根据Page.ss呈现,而布局变量可以使用Layout/Module/HomePage.ss进行呈现,但只需使用Page.ss呈现。如何使用Page.ss的基本模板渲染我的页面,并使用我的控制器定义的布局渲染$Layout

修改

因此,如果我将Homepage.ss放在一个级别(即没有' Module'目录),则此代码有效。是否有可能在布局目录中有目录,因为我认为这个文件夹会在没有某些结构的情况下加班。设置模板而不是布局时,文件夹路径也很有用。

编辑2

Looks like这是一个核心问题,我刚刚发现了一种不同的方式,并且看起来要在SS4中解决,所以看起来这样做不能在SS3中完成。

0 个答案:

没有答案