Jump to content

Edit History

Janett

Janett

Surtout pas d'override sinon vous allez êtes embêté pour faire vos mises à jour, c'est une très mauvaise pratique. A n'utilisez que lorsqu'aucun hook n'est disponible pour y greffer un module.

Vous pouvez faire un module pour ajouter autant de colonne que vous souhaitez mais il faut connaitre la version de prestashop que vous utilisez.

Module pour prestashop 1.6, à mettre ici : modules/displayproductean/displayproductean.php

<?php

if (!defined('_PS_VERSION_')) {
    exit;
}

class DisplayProductEan extends Module
{
    /**
     * @var array list of hooks used
     */
    public $hooks = [
        'actionAdminProductsListingFieldsModifier',
        'actionAdminProductsListingResultsModifier',
    ];

    /**
     * Constructor.
     */
    public function __construct()
    {
        $this->name = 'displayproductean';
        $this->tab = 'administration';
        $this->version = '1.0.0';
        $this->author = 'Janett';
        $this->need_instance = 0;
        $this->ps_versions_compliancy = [
            'min' => '1.6.1.0',
            'max' => '1.6.1.99',
        ];

        parent::__construct();

        $this->displayName = $this->l('Display EAN13 on Product list');
        $this->description = $this->l('Adds EAN13 on Product list');
    }

    /**
     * Install Module.
     *
     * @return bool
     */
    public function install()
    {
        return parent::install()
            && $this->registerHook($this->hooks);
    }

    /**
     * Append custom fields.
     *
     * @param array $params
     */
    public function hookActionAdminProductsListingFieldsModifier(array $params)
    {
        // If hook is called in AdminController::processFilter() we have to check existence
        if (isset($params['select'])) {
            $params['select'] .= ', a.ean13';
        }

        $params['fields']['ean13'] = [
            'title' => $this->l('Barcode'),
            'align' => 'text-center',
            'class' => 'fixed-width-xs',
        ];
    }

    /**
     * Set additional data.
     *
     * @param array $params
     */
    public function hookActionAdminProductsListingResultsModifier(array $params)
    {
        foreach ($params['list'] as $key => $fields) {
            if (isset($fields['ean13'])) {
                $params['list'][$key]['ean13'] = empty($fields['ean13']) ? '-' : $fields['ean13'];
            }
        }
    }
}

Pour prestashop 1.7, il faut procéder différemment.

La prochaine fois, préciser votre version !

Janett

Janett

Surtout pas d'override sinon vous allez êtes embêté pour faire vos mises à jour, c'est une très mauvaise pratique. A n'utilisez que lorsqu'aucun hook n'est disponible pour y greffer un module.

Vous pouvez faire un module pour ajouter autant de colonne que vous souhaitez mais il faut connaitre la version de prestashop que vous utilisez.

 

×
×
  • Create New...