как отобразить каждый список полей формы, например форму контактных данных, форму адреса биллинга, в пользовательский шаблон в многоэтапной проверке Silvershop

Я в настоящее время использую 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>

Это макет формы по умолчанию:
введите описание изображения здесь

1

Решение

Во-первых, вы хотите визуализировать {$ FieldHolder}, а не {$ Field}, так как шаблон держателя содержит $ Message, который будет отображать сообщения проверки.
(Отказ от рендеринга может вызвать удивление, почему форма не работает часами)

Во-вторых, у вас? Flush = all после добавления шаблона? Я не могу придумать другую причину, по которой это не сработает.

1

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

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

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