覆盖不适用于 prestashop 1.7 类别 class
Override not working on prestashop 1.7 Category class
为什么 prestashop 不将我的修改保存到数据库中?
我已经对 Category.php (prestashop 1.7) class 文件进行了覆盖,这是我的代码:
/override/classes/Category.php
class 类别扩展了 CategoryCore
{
/**
* afficher/masquer 产品
*/
public$show_products=1;
public$安德拉纳;
public function __construct($idCategory = null, $idLang = null, $idShop = null)
{
$definition = self::$definition;
$definition['fields']['show_products'] = array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'required' => true);
$definition['fields']['andrana'] = array(
'type' => self::TYPE_HTML,
'lang' => true,
'validate' => 'isCleanHtml'
);
parent::__construct($idCategory, $idLang, $idShop);
}
}
/override\controllers\admin\AdminCategoriesController.php
class AdminCategoriesController 扩展 AdminCategoriesControllerCore
{
public function renderForm()
{
$this->fields_form_override = array(
array(
'type' => 'switch',
'label' => $this->trans('Afficher les produits', array(), 'Admin.Global'),
'name' => 'show_products',
'required' => false,
'is_bool' => true,
'values' => array(
array(
'id' => 'active_on',
'value' => 1,
'label' => $this->trans('Enabled', array(), 'Admin.Global')
),
array(
'id' => 'active_off',
'value' => 0,
'label' => $this->trans('Disabled', array(), 'Admin.Global')
)
)
),
array(
'type' => 'textarea',
'label' => $this->trans('Andrana', array(), 'Admin.Global'),
'name' => 'andrana',
'autoload_rte' => true,
'lang' => true,
'hint' => $this->trans('Invalid characters:', array(), 'Admin.Notifications.Info').' <>;=#{}'
),
);
return parent::renderForm();
}
}
PS:我在 ps_category table 上添加了 "show_products",在 ps_category_lang table[ 中添加了 "andrana" =13=]
请帮帮我:(
将 __construct 更改为:
public function __construct($idCategory = null, $idLang = null, $idShop = null)
{
self::$definition['fields']['show_products'] = array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'required' => true);
self::$definition['fields']['andrana'] = array(
'type' => self::TYPE_HTML,
'lang' => true,
'validate' => 'isCleanHtml'
);
parent::__construct($idCategory, $idLang, $idShop);
}
为什么 prestashop 不将我的修改保存到数据库中? 我已经对 Category.php (prestashop 1.7) class 文件进行了覆盖,这是我的代码:
/override/classes/Category.php
class 类别扩展了 CategoryCore { /** * afficher/masquer 产品 */ public$show_products=1; public$安德拉纳;
public function __construct($idCategory = null, $idLang = null, $idShop = null)
{
$definition = self::$definition;
$definition['fields']['show_products'] = array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'required' => true);
$definition['fields']['andrana'] = array(
'type' => self::TYPE_HTML,
'lang' => true,
'validate' => 'isCleanHtml'
);
parent::__construct($idCategory, $idLang, $idShop);
}
}
/override\controllers\admin\AdminCategoriesController.php
class AdminCategoriesController 扩展 AdminCategoriesControllerCore {
public function renderForm()
{
$this->fields_form_override = array(
array(
'type' => 'switch',
'label' => $this->trans('Afficher les produits', array(), 'Admin.Global'),
'name' => 'show_products',
'required' => false,
'is_bool' => true,
'values' => array(
array(
'id' => 'active_on',
'value' => 1,
'label' => $this->trans('Enabled', array(), 'Admin.Global')
),
array(
'id' => 'active_off',
'value' => 0,
'label' => $this->trans('Disabled', array(), 'Admin.Global')
)
)
),
array(
'type' => 'textarea',
'label' => $this->trans('Andrana', array(), 'Admin.Global'),
'name' => 'andrana',
'autoload_rte' => true,
'lang' => true,
'hint' => $this->trans('Invalid characters:', array(), 'Admin.Notifications.Info').' <>;=#{}'
),
);
return parent::renderForm();
}
}
PS:我在 ps_category table 上添加了 "show_products",在 ps_category_lang table[ 中添加了 "andrana" =13=]
请帮帮我:(
将 __construct 更改为:
public function __construct($idCategory = null, $idLang = null, $idShop = null)
{
self::$definition['fields']['show_products'] = array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'required' => true);
self::$definition['fields']['andrana'] = array(
'type' => self::TYPE_HTML,
'lang' => true,
'validate' => 'isCleanHtml'
);
parent::__construct($idCategory, $idLang, $idShop);
}