Prestashop добавляет новую ошибку в поле регистрации

Я использую Prestashop 1.4 и хочу добавить новое поле в файл authentication.tpl. Я добавляю правильное поле ввода html, в файле /classes/Customer.php это поле не требуется, и я не добавил его в $fieldsRequired в переменной $fieldsSize я добавил его размером 132 символа и в проверке строки $fieldsValidate.

Хорошо. но поле не вставлено в базу данных (поле уже вставлено в таблицу #_customer).

В функции getFields() я добавил это поле, и если я добавлю это поле, я получу сообщение об ошибке, код поля:

$fields['amazonresellerid'] = pSQL($this->amazonresellerid);

И есть проблема, если я добавлю это, то я получаю сообщение об ошибке при отправке: «Произошла ошибка при создании вашей учетной записи.», все имена полей написаны точно, не могу понять, что я делаю здесь неправильно?


person Mark.M.    schedule 24.01.2014    source источник


Ответы (1)


Вот пример добавления поля в prestashop 1.4 с перегрузкой:

Добавить поле в базу данных:

ALTER TABLE `ps_customer` ADD `amazonresellerid` VARCHAR( 12 ) NOT NULL AFTER `date_upd` 

Создайте Customer.php в /override/classes/ и поместите этот код:

<?php

class Customer extends CustomerCore
{
    public $amazonresellerid;

    protected   $fieldsValidate = array(
        'secure_key' => 'isMd5',
        'lastname' => 'isName',
        'firstname' => 'isName',
        'email' => 'isEmail',
        'passwd' => 'isPasswd',
        'id_gender' => 'isUnsignedId',
        'birthday' => 'isBirthDate',
        'newsletter' => 'isBool',
        'optin' => 'isBool',
        'active' => 'isBool',
        'note' => 'isCleanHtml',
        'is_guest' => 'isBool',
        'amazonresellerid' => 'isString'
    );

    public function getFields()
    {
        $fields = parent::getFields();
        $fields['amazonresellerid'] = pSQL($this->amazonresellerid);
        return $fields;
    }

}

?>

И добавьте ввод в authentication.tpl :

<p class="text">
    <label for="amazonresellerid">{l s='Amazon reseller id'}</label>
    <input type="text" class="text" name="amazonresellerid" id="amazonresellerid" value="{if isset($smarty.post.amazonresellerid)}{$smarty.post.amazonresellerid}{/if}" />
</p>
person JulienB    schedule 24.01.2014