在Prestashop 1.7.6中,类重写不再起作用了吗?

时间:2019-08-13 13:05:23

标签: prestashop prestashop-1.7

我只需要在Category admin中添加一个名为“ color”的自定义字段。我一直在以前的版本中使用过此方法,但在1.7.6中似乎不再起作用:

override / classes / Category.php

    /**
     * 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);

        }
    }

override / controllers / admin / AdminCategoriesController.php

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)中添加了一个文本字段,并删除了所有缓存。

该字段没有出现。有人有这个问题吗?我需要使用模块代替这种方法吗?

谢谢!

3 个答案:

答案 0 :(得分:2)

1.7.6版本似乎不再支持此过程。我们还需要使用新的Symfony模型创建模块

有一个法语来源解释了如何做。 Here is the link

我用自己的代码和新过程创建了一个新帖子。我被困在数据库中该字段的保存中。 Here is the link

答案 1 :(得分:1)

在这里,我不知道为什么它不起作用。我遵循所有指示。 我正在使用Prestashop 1.7.6,也许此过程不适用于最新的prestashop版本。因为根据我的读物,他们使用的是prestashop v1.6或更早的版本。

答案 2 :(得分:0)

您不需要模块。 我尝试了您的代码,它对我有用 尝试清除后台办公室界面中的缓存,并将每个文件放在哪里?