添加第二个字段类别 Prestashop 1.7

Add a second field category Prestashop 1.7

我正在尝试在 Prestashop 1.7 中为类别添加一个可编辑字段

我已经这样做了:

在数据库中插入 text_SEO

override/classes/Category.php

<?php
class Category extends CategoryCore
{

public $text_SEO; // My Custom field

public static $definition = array(
    'table' => 'category',
    'primary' => 'id_category',
    'multilang' => true,
    'multilang_shop' => true,
    'fields' => array(
        'nleft' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt'),
        'nright' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt'),
        'level_depth' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt'),
        'active' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'required' => true),
        'id_parent' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt'),
        'id_shop_default' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId'),
        'is_root_category' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool'),
        'position' => array('type' => self::TYPE_INT),
        'date_add' => array('type' => self::TYPE_DATE, 'validate' => 'isDate'),
        'date_upd' => array('type' => self::TYPE_DATE, 'validate' => 'isDate'),

        // Lang fields
        'name' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isCatalogName', 'required' => true, 'size' => 64),
        'link_rewrite' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isLinkRewrite', 'required' => true, 'size' => 64),
        'description' => array('type' => self::TYPE_HTML, 'lang' => true, 'validate' => 'isString'),
        'text_SEO' => array('type' => self::TYPE_HTML, 'lang' => true, 'validate' => 'isString'),
        'meta_title' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'size' => 128),
        'meta_description' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'size' => 255),
        'meta_keywords' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'size' => 255),
    ),
);
}

override/controllers/admin/AdminCategoriesController.php

    class AdminCategoriesController extends AdminCategoriesControllerCore
{
    public function renderForm()
    {
        $this->fields_form_override =array(
            array(
                'type' => 'textarea',
                'label' => $this->l('Text SEO'),
                'name' => 'text_SEO',
                'lang' => true,
                'autoload_rte' => true,
                'hint' => $this->l('Invalid characters:').' <>;=#{}',
            ),
        );
        return parent::renderForm();
    }
}

如何显示区域文本?

谢谢! :D

您的代码是正确的。这应该有效。

您是否在 table category_lang 而不是 category 的数据库中添加了 text_SEO
在重新加载类别页面之前,您是否清空了 PrestaShop 的缓存?您可以在“高级参数”>“性能”页面上执行此操作