Jump to content

Override not working on prestashop Category class


mampionona

Recommended Posts

Hi everyone,

Why is prestashop don't save my modification into database? 
I've done an override on the Category.php (prestashop 1.7) class file, here is my code:

 

/override/classes/Category.php
 

class Category extends CategoryCore
{
    /**
    * afficher/masquer les produits
    */
    public $show_products = 1;
    public $andrana;
 
    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 extends 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: I've added "show_products" on ps_category table and "andrana" in ps_category_lang table

 

Please help me :(

Edited by mampionona (see edit history)
Link to comment
Share on other sites

  • 9 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...