将 class 添加到 prestashop 1.7 中的 formField
Add a class to a formField in prestashop 1.7
在 prestashop 1.7 中,FormField class 用于定义注册和地址表单的表单字段,如下所示:
$format['firstname'] = (new FormField)
->setName('firstname')
->setLabel(
$this->translator->trans(
'First name',
[],
'Shop.Forms.Labels'
)
)
->setRequired(true);
现在使用旧的辅助表单可以在表单字段上设置 class,这样就可以在 CSS 中设置表单的样式。
FormField class 似乎没有任何与此相关的属性
private $name = '';
private $type = 'text';
private $required = false;
private $label = '';
private $value = null;
private $availableValues = [];
private $maxLength = null;
private $errors = [];
private $constraints = [];
fieldFormatter 实现了核心中定义的渲染方法。
回答我的问题,是否可以在不修改核心的情况下向 FormField 添加属性?
似乎解决方案在于 formField 和表单的附加值-fields.tpl
->addAvailableValue('class', 'left')
并且在表格中-fields.tpl
{block name='form_field_item_other'}
<label {if $field.required and isset($field.availableValues.class)}
class="required {$field.availableValues.class}"
{elseif $field.required} class="required"{/if} >
<span>{$field.label}</span>
<input name="{$field.name}" type="{$field.type}" value="{$field.value}" {if $field.required}required{/if}>
</label>
{/block}
通过这种方式,您还可以添加表单组、ID 和其他有趣的东西。
在 prestashop 1.7 中,FormField class 用于定义注册和地址表单的表单字段,如下所示:
$format['firstname'] = (new FormField)
->setName('firstname')
->setLabel(
$this->translator->trans(
'First name',
[],
'Shop.Forms.Labels'
)
)
->setRequired(true);
现在使用旧的辅助表单可以在表单字段上设置 class,这样就可以在 CSS 中设置表单的样式。
FormField class 似乎没有任何与此相关的属性
private $name = '';
private $type = 'text';
private $required = false;
private $label = '';
private $value = null;
private $availableValues = [];
private $maxLength = null;
private $errors = [];
private $constraints = [];
fieldFormatter 实现了核心中定义的渲染方法。
回答我的问题,是否可以在不修改核心的情况下向 FormField 添加属性?
似乎解决方案在于 formField 和表单的附加值-fields.tpl
->addAvailableValue('class', 'left')
并且在表格中-fields.tpl
{block name='form_field_item_other'}
<label {if $field.required and isset($field.availableValues.class)}
class="required {$field.availableValues.class}"
{elseif $field.required} class="required"{/if} >
<span>{$field.label}</span>
<input name="{$field.name}" type="{$field.type}" value="{$field.value}" {if $field.required}required{/if}>
</label>
{/block}
通过这种方式,您还可以添加表单组、ID 和其他有趣的东西。