Переопределение класса больше не работает в Prestashop 1.7.6?

Переопределение класса больше не работает в Prestashop 1.7.6?

13.08.2019 04:05:23 Просмотров 45 Источник

Мне просто нужно добавить пользовательское поле с именем "цвет" в категории администратора. Я всегда использовал этот метод в предыдущей версии, но кажется, что это больше не работает в 1.7.6 :

переопределить/классы/категории.РНР

    /**
     * Class CategoryCore
     */
    class Category extends CategoryCore
    {   
        public $color;    

        public function __construct($id_category = null, $id_lang = null, $id_shop = null){

            self::$definition['fields']['color'] = array('type' => self::TYPE_HTML, 'lang' => true, 'validate' => 'isCleanHtml');

            parent::__construct($id_category, $id_lang, $id_shop);

        }
    }

переопределить/контроллеры/администратора/AdminCategoriesController.РНР

class AdminCategoriesController extends AdminCategoriesControllerCore
    {
        public function renderForm()
        {
            $this->fields_form_override =array(
                array(
                    'type' => 'text',
                    'label' => $this->trans('Color', array(), 'Admin.Global'),
                    'name' => 'color',
                    'maxlength' => 70,
                    'maxchar' => 70,
                    'lang' => true,
                    'rows' => 5,
                    'cols' => 100,
                    'hint' => $this->trans('Forbidden characters:', array(), 'Admin.Notifications.Info').' <>;=#{}'
                ),
            );

            return parent::renderForm();
        }
    }

Наконец, я добавил текстовое поле в базу данных (ps_category_lang) и удалил весь кэш.

Поле не отображается. У кого-то есть эта проблема? Нужно ли использовать модуль вместо этого метода?

Спасибо!

У вопроса есть решение - Посмотреть?

Ответы - Переопределение класса больше не работает в Prestashop 1.7.6? / Class override doesn't work anymore in Prestashop 1.7.6?

Paul-Emile

13.08.2019 07:36:58

Вам не нужен модуль. Я попробовал ваш код и он работает для меня Попробуйте очистить кэш в интерфейсе backoffice и куда вы помещаете каждый файл ?

Muamar Ali

14.08.2019 10:15:17

То же самое здесь, я не знаю, почему это не работает. Я следую всем инструкциям. Я использую Prestashop 1.7.6, возможно, эта процедура не работает с последней версией prestashop. Потому что, основываясь на том, что я читал, они используют prestashop v1.6 старше.

Является ответом!
spiNOops

19.08.2019 11:24:06

Похоже, что этот процесс больше не поддерживается в версии 1.7.6. Нам также нужно создать модуль с новой моделью Symfony .

Есть французский источник, который объясняет, как это сделать. Вот ссылка.

Я создал новый пост с моим собственным кодом и новой процедурой. Я застрял в сохранении поля в базе данных. Вот ссылка.

Закрыть X