如何覆盖SivlerStripe用户定义表单的模板/视图

时间:2019-05-20 20:20:36

标签: silverstripe silverstripe-4

我正在出于学习目的开发一个简单的SilverStripe项目。我正在使用SilverStripe用户定义的表单模块defined as a constant创建表单页面。用户定义的表单模块在模板/视图中呈现表单的方式是使用content字段中的$ UserDefinedForm变量。现在,我需要对内置的“用户定义的表单”模板进行一些自定义。因此,我决定覆盖控制器和页面。

这是我的EventPage

<?php

namespace {

    use SilverStripe\UserForms\Model\UserDefinedForm;

    class EventPage extends UserDefinedForm
    {

    }
}

这是我的EventPageController

<?php

namespace {

    use SilverStripe\UserForms\Control\UserDefinedFormController;

    class EventPageController extends UserDefinedFormController
    {

    }
}

这是我的EventPage.ss

<h1>Event Page</h1>

$UserDefinedForm

此页面被覆盖,但未呈现该表单。请问我该如何呈现表格?

1 个答案:

答案 0 :(得分:0)

完整的答案可能会有所帮助。 ContactPage.php

命名空间InsiteApps \ CMS \ Model {

use SilverStripe\UserForms\Control\UserDefinedFormController;
use SilverStripe\UserForms\Model\UserDefinedForm;

class ContactPage extends UserDefinedForm
{
    private static $table_name = 'ContactPage';

}


class ContactPageController extends UserDefinedFormController
{

}

}

在您的主题中,templates文件夹(文件夹结构取决于您的命名空间)

模板/ InsiteApps / CMS /模型/布局/ContactPage.ss

<div class="contact-page-form"> $Form </div>