Редактирование html кода формы оформления заказа
Здравствуйте! Есть ли возможность отредактировать html код вывода формы при оформлении заказа, выводимой с помощью
{$checkout_contact_form->html(null, false, true)}
В частности, все поля для доставки обернуты в один div http://joxi.ru/p27BBzjc0QRg1m Мне же нужно, чтобы каждое поле было в отдельном div'е
14 ответов
С помощью js или Smarty replace можно.
Но приготовьтесь к тому, что отвалятся плагины дополнения адреса, расчета доставки и прочие, которые рассчитывают на совершенно определенную верстку. И не только на классы, но и на взаимное расположение элементов
$checkout_contact_form это объект waContactForm|shopContactForm т.ч. все несколько проще
мы ведь не будем советовать изменять код движка, да? :)
Вы вроде адекватный человек, но временами такую чушь несете. Чтобы не облажаться как сейчас, смотрите вначале код, а потом пишите.
при чем тут этот код?
public $fields позволяет получить поля формы и вывести их в любом виде.
Если все данные формы доступны, то необходимости в том что J. B. diGriz называет "изменять код движка" (видимо он считает наследование классов чем-то порочным вроде инцеста) нет.
Хорошая попытка, но нет.
Если вы посмотрите код метода html() у указанных классов, то увидите, что там не просто сборка html по списку полей.
Я года четыре назад пробовал
1. он не требуется, о чем я km'у и поведал
2.даже если бы требовался, то весь код представленный в нем может быть выполнен в smarty
минусов наставили, а в коде не разобрались?
поле "Адрес" (shipping_address) это одно поле. В массиве $fields вы его и найдете. Там не будет отдельных полей "страна", "регион" и т.д.
Это, в терминах фреймворка, композитный control
И нет. Не весь код. Поля, конечно, вы с помощью $form->fields() получите. Но вот waContactForm::validateFields -- вам будет недоступна, ибо protected.
А он и не нужен т.к. есть public waContactField::validate().
Задрал уже спорить, я реализовывал данную кастомизацию форм - пишу потихоньку плагин для магазина аналогичный site/ensotemplate.
public waContactCompositeField::getFields()
Вы похоже вообще не поняли о чем я до этого писал?