【问题标题】:How to override template/view of SilverStripe's User Defined Form如何覆盖 SilverStripe 的用户定义表单的模板/视图
【发布时间】:2019-05-20 20:20:35
【问题描述】:

我正在开发一个用于学习目的的简单 SilverStripe 项目。我正在使用SilverStripe User Defined Form module 创建表单页面。

用户定义表单模块在模板/视图中呈现表单的方式是在内容字段中使用 $UserDefinedForm 变量。现在,我需要对内置的用户定义表单模板进行一些自定义。所以我决定重写控制器和页面。

这是我的活动页面

<?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

此页面已被覆盖,但未呈现表单。如何呈现表单?

【问题讨论】:

  • 你试过只用$Form
  • 我试过了。不工作

标签: silverstripe silverstripe-4


【解决方案1】:

完整的答案可能会有所帮助。 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/Model/Layout/ContactPage.ss

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-13
    • 1970-01-01
    • 2019-11-23
    相关资源
    最近更新 更多