silverstripe 4 - Визуализация UserDefinedForm на пользовательских шаблонах страниц

Мне нужна помощь с преобразованием SS3 в SS4. Я хотел бы разместить свою контактную форму на другой странице, а также на странице контактов по умолчанию. Мне удалось заставить его работать в SS3, но в SS4 все немного по-другому, и я не уверен, как написать функцию или куда ее поместить. Я перепробовал несколько комбинаций и локаций, но мне нужна помощь.

В SS3 я создал свою страницу UserDefineForm с ее полями. Затем я добавил следующее к пользовательской странице, которую я хотел, чтобы форма тоже отображала:

Класс IndexPage_Controller extends Page_Controller {

// Sign up form
public function SignupForm(){
    $get = DataObject::get_one('SiteTree', "URLSegment = 'contact-me'");
   return new UserDefinedForm_Controller($get);
}

}

Что / Где я могу поместить функцию в SS4, чтобы получить поля формы для отображения на шаблоне пользовательской страницы, как это делается на странице "Свяжитесь с нами"?

Заранее спасибо.

1 ответ

Код ниже должен работать.

public function getSignupForm()
    {
        $page = \SilverStripe\UserForms\Model\UserDefinedForm::get()->filter('URLSegment', 'contact-me')->first();
        $controller = \SilverStripe\UserForms\Control\UserDefinedFormController::create($page);
        return $controller->Form();
    }
Другие вопросы по тегам