SilverStripe MultiForm не работает

Я установил и настроил SilverStripe на моем сервере. Я установил MultiForm модуль и следовал инструкциям в документации модуля.

После следования инструкциям я все еще не вижу новый тип страницы в моем портале CMS.

Я тоже пробовал db/build?flush=1 & dev/build?flush=1 но это не имеет значения.

Я создал следующие файлы в mysite/code/ каталог

SponsorSignupForms.php

class SponsorSignupForms extends MultiForm{
protected static $start_step = 'CompanyDetailsStep';
}

CompanyDetailsStep.php

class CompanyDetailsStep extends MultiFormStep{
public static $next_steps = 'ContactDetailsStep';
function getFields()
{
$fields = singleton('Member')->getFrontendFields();
return $fields;
}
function getValidator()
{
return new Member_Validator('FirstName', 'Surname', 'Email', 'Password');
}
}

ContactDetailsStep.php

class ContactDetailsStep extends MultiFormStep{
public static $is_final_step = true;
function getFields()
{
$fields = singleton('Reference')->getFrontendFields();
return $fields;
}
}

Как мне заставить эти пользовательские мультиформаты работать и появляться как создаваемые страницы?

3

Решение

Конечно, вы не видите новых типов страниц в списке доступных страниц, вы увидите только подклассы SiteTree там, MultiFormStep «просто» подкласс DataObject,

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

class MyFormPage extends Page
{
}

class MyFormPageController extends Page_Controller
{
//
private static $allowed_actions = array(
'SponsorSignupForms',
'finished'
);

public function SponsorSignupForms() {
return new SponsorSignupForms($this, 'Form');
}

public function finished() {
return array(
'Title' => 'Thank you for your submission',
'Content' => '<p>You have successfully submitted the form!</p>'
);
}
}

В шаблон просто включите форму:

<% if $SponsorSignupForms %>
$SponsorSignupForms
<% end_if %>

и вы должны увидеть форму сейчас.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]