Я в настоящее время использую Silverstripe модуль Silvershop (https://github.com/silvershop/silvershop-core) и настройку процесса оформления заказа с помощью многошаговой «пошаговой» проверки. Мой вопрос заключается в том, как визуализировать каждый список полей формы, такой как форма contactdetails, адрес биллинга, в пользовательский шаблон, чтобы я мог лучше контролировать стиль форм.
Я пытался следовать документам Silverstripe (https://docs.silverstripe.org/en/3.4/developer_guides/forms/form_templates/) создать шаблон формы, но он не заработал. Пользовательские поля формы не выводятся на внешний интерфейс.
Некоторый код в сайте / mysite / code / CheckoutStep_ContactDetailsCustom.php
public function ContactDetailsForm()
{
.....
$form->setTemplate('CustomContactForm');
$this->owner->extend('updateContactDetailsForm', $form);
return $form;
}
Некоторый код в сайте / themes / custom / templates / Includes / CustomContactForm.ss
<form $AttributesHTML>
<fieldset>
<% with Fields %>
<% with FieldByName(FirstName) %>
<div>
{$Field}
</div>
<% end_with %>
<% with FieldByName(Surname) %>
<div>
{$Field}
</div>
<% end_with %>
<% end_with %>
</fieldset>
</form>
Во-первых, вы хотите визуализировать {$ FieldHolder}, а не {$ Field}, так как шаблон держателя содержит $ Message, который будет отображать сообщения проверки.
(Отказ от рендеринга может вызвать удивление, почему форма не работает часами)
Во-вторых, у вас? Flush = all после добавления шаблона? Я не могу придумать другую причину, по которой это не сработает.
Других решений пока нет …