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();
}