Привет, я относительно новичок в prestashop и думаю, не может ли кто-нибудь направить меня в нужное место.
Обычно я добавляю новое настраиваемое поле на страницу create_account.
Я изначально пытался исправить проблему, но я знаю, что после обновления prestashop все изменения в основных файлах будут перезаписаны.
Я начал вносить изменения в AdminCustomerController.php
как показано ниже. (Также поле, которое я пытаюсь добавить, это Природа бизнеса)
class AdminCustomersController extends AdminCustomersControllerCore {
public function renderForm($id = null)
{
$this->fields_form = array(
'legend' => array(
'title' => $this->trans('Customer', array(), 'Admin.Global'),
'icon' => 'icon-user'
),
'input' => array(
array(
'type' => 'text',
'prefix' => '',
'label' => $this->trans('Practice', array(), 'Admin.Global'),
'name' => 'practice',
'col' => '4',
'autocomplete' => false
),
array(
'type' => 'text',
'label' => $this->trans('Nature of Business', array(), 'Admin.Global'),
'name' => 'nature_enquiry',
'col' => '4',
),
)
);
return parent::renderForm();
}
}
Также отредактировал файл Customer.php в папке переопределения. как показано ниже:
class Customer extends CustomerCore {
public $practice_from;
/** nature of enquiry */
public $nature_enquiry;
protected $definition = array(
'table' => 'customer',
'primary' => 'id_customer',
'fields' => array(
'nature_enquiry' => array('type' => self::TYPE_HTML, 'validate' => 'isCleanHtml', 'required'=>false,'size' => 65000),
),
);
public function __construct($id = null)
{
parent::__construct($id);
parent::$definition['practice_from'] = ['type' => parent::TYPE_STRING];
}
}
наконец добавил мое новое поле в классы / Customer.php внизу массива определений, как показано ниже:
public static $definition = array(
'table' => 'customer',
'primary' => 'id_customer',
'fields' => array(
'secure_key' => array('type' => self::TYPE_STRING, 'validate' => 'isMd5', 'copy_post' => false),
'lastname' => array('type' => self::TYPE_STRING, 'validate' => 'isName', 'required' => true, 'size' => 255),
'firstname' => array('type' => self::TYPE_STRING, 'validate' => 'isName', 'required' => true, 'size' => 255),
'email' => array('type' => self::TYPE_STRING, 'validate' => 'isEmail', 'required' => true, 'size' => 128),
'passwd' => array('type' => self::TYPE_STRING, 'validate' => 'isPasswd', 'required' => true, 'size' => 60),
'last_passwd_gen' => array('type' => self::TYPE_STRING, 'copy_post' => false),
'id_gender' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId'),
'birthday' => array('type' => self::TYPE_DATE, 'validate' => 'isBirthDate'),
'newsletter' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool'),
'newsletter_date_add' => array('type' => self::TYPE_DATE, 'copy_post' => false),
'ip_registration_newsletter' => array('type' => self::TYPE_STRING, 'copy_post' => false),
'optin' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool'),
'website' => array('type' => self::TYPE_STRING, 'validate' => 'isUrl'),
'company' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName'),
'siret' => array('type' => self::TYPE_STRING, 'validate' => 'isSiret'),
'ape' => array('type' => self::TYPE_STRING, 'validate' => 'isApe'),
'outstanding_allow_amount' => array('type' => self::TYPE_FLOAT, 'validate' => 'isFloat', 'copy_post' => false),
'show_public_prices' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'copy_post' => false),
'id_risk' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt', 'copy_post' => false),
'max_payment_days' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt', 'copy_post' => false),
'active' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'copy_post' => false),
'deleted' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'copy_post' => false),
'note' => array('type' => self::TYPE_HTML, 'validate' => 'isCleanHtml', 'size' => 65000, 'copy_post' => false),
'is_guest' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'copy_post' => false),
'id_shop' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'copy_post' => false),
'id_shop_group' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'copy_post' => false),
'id_default_group' => array('type' => self::TYPE_INT, 'copy_post' => false),
'id_lang' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'copy_post' => false),
'date_add' => array('type' => self::TYPE_DATE, 'validate' => 'isDate', 'copy_post' => false),
'date_upd' => array('type' => self::TYPE_DATE, 'validate' => 'isDate', 'copy_post' => false),
'reset_password_token' => array('type' => self::TYPE_STRING, 'validate' => 'isSha1', 'size' => 40, 'copy_post' => false),
'reset_password_validity' => array('type' => self::TYPE_DATE, 'validate' => 'isDateOrNull', 'copy_post' => false),
'nature_enquiry' => array('type' => self::TYPE_HTML, 'validate' => 'isCleanHtml', 'required'=>false,'size' => 65000),
),
);
классы / форма / CustomerFormatter.php
$format['nature_enquiry'] = (new FormField)
->setName('nature_enquiry')
->setLabel(
$this->translator->trans(
'Nature of Business', [], 'Shop.Forms.Labels'
)
);
В идеале я хотел знать, что что-то пропустил, чтобы заставить это работать на живом сайте.
или любую документацию для добавления настраиваемого поля в форму регистрации.
PrestaShop - 1.7.0.6
Спасибо