Добавлять поле в существующую базу данных Prestashop только при установленном модуле - PullRequest
0 голосов
/ 30 мая 2018

Я бы добавил поле в таблицу клиентов моей базы данных Prestashop, но только когда я установил модуль.

Я сделал это в своем определении модуля:

public function install()
{
    Db::getInstance()->execute('ALTER TABLE '. _DB_PREFIX_.'_customer ADD id_field VARCHAR(60) DEFAULT NULL');

    return parent::install();
}

public function uninstall()
{
    Db::getInstance()->execute('ALTER TABLE '. _DB_PREFIX_.'_customer DROM COLUMN id_field');

    return parent::uninstall();
}

Теперь,Я вижу, что мы можем переопределить класс, но я не могу найти, как переопределить его в папке моего модуля.Я бы добавил, например, новое поле в классе «Клиенты», чтобы иметь возможность управлять им в моем модуле.

Как мне поступить?

1 Ответ

0 голосов
/ 30 мая 2018

В папке вашего модуля добавьте override/classes/Customer.php с кодом:

<?php
class Customer extends CustomerCore
{
    // the method etc. i. e.:
    public function __construct($id = null)
    {
        parent::__construct($id);

        if (Module::isInstalled('yourmodule') && Module::isEnabled('yourmodule'))
        {
             // your code
        }
    }
}

и перезагрузите модуль.

...