在prestashop 1.7中向classField添加一个类

时间:2017-05-31 07:52:39

标签: php prestashop prestashop-1.7

在prestashop 1.7中,FormField类用于定义注册和地址表单的表单字段,如下所示:

$format['firstname'] = (new FormField)
        ->setName('firstname')
        ->setLabel(
            $this->translator->trans(
                'First name',
                [],
                'Shop.Forms.Labels'
            )
        )
        ->setRequired(true);

现在使用旧的帮助器表单可以在表单字段上设置一个类,以便可以在CSS中设置表单的样式。

FormField类似乎没有任何与此相关的属性

private $name               = '';
private $type               = 'text';
private $required           = false;
private $label              = '';
private $value              = null;
private $availableValues    = [];
private $maxLength          = null;
private $errors             = [];
private $constraints        = [];

fieldFormatter实现核心中定义的render方法。

要回答我的问题,是否可以在不修改核心的情况下向FormField添加属性?

1 个答案:

答案 0 :(得分:0)

看起来像在formField和form-fields.tpl

的附加值中的解决方案
->addAvailableValue('class', 'left')

在form-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和其他有趣的内容。