Archives de novembre, 2017

Prestashop 1.7 : Gérer les menus dans l’administration

Dernièrement j’ai souhaité désactiver l’affichage d’un élément de menu dans le back-office de prestashop 1.7 .
Pour un utilisateur standard c’est relativement simple puisqu’il suffit de jouer avec les permissions pour afficher / masquer les différents menu, mais ce n’est pas le cas dans un rôle d’administrateur.

La page de gestion des menus qui existait dans les anciennes versions n’est plus accessible, via des liens existants ( ou alors je ne l’ai pas trouvée ).
La bonne nouvelle par contre c’est que le controlleur existe toujours.

Pour (re)faire fonctionner la gestion des menus, nous allons donc créer un nouveau module hh_adminmenu
Avec le contenu suivant :

class Hh_AdminMenu extends Module {
 
    public function __construct() {
 
        $this->name = 'hh_adminmenu';
        $this->displayName = 'HH admin menu';
        $this->tab = '';
        $this->version = '0.1.0';
        $this->author = 'hhhennes';
 
        parent::__construct();
 
        $this->displayName = $this->l('Hh Admin menu');
        $this->description = $this->l('Display again admin menu management');
        $this->ps_versions_compliancy = array('min' => '1.7.1', 'max' => _PS_VERSION_);
    }
 
    /**
     * Install Module
     * @return boolean
     */
    public function install() {
 
        if (!
8 commentaires

Prestashop 1.7 : Ajouter des champs dans le listing produit admin

A la suite de mon précédent article sur comment ajouter des champs produits dans l’administration de prestashop 1.7 : https://www.h-hennes.fr/blog/2017/10/19/prestashop-1-7-ajouter-des-champs-produit/ , nous allons à présent voir comment ajouter des champs dans le listing des produits de l’administration.

Cette page est gérée via les nouveaux controllers symfony et leur fonctionnement est donc différents des autres listing de l’administration.

 

Je ne détaille pas la base de la création du module qui pourra reprendre celle de l’article sur la création des champs produits.

Le module devra implémenter les hooks suivants :

  • actionAdminProductsListingFieldsModifier (hook natif )
  • displayAdminCatalogTwigListingProductFields ( hook custom)
  • displayAdminCatalogTwigProductFilter ( hook custom )
  • displayAdminCatalogTwigProductHeader ( hook custom )

Pour l’exemple nous allons ajouter un filtre sur les marques des produits, mais la logique s’applique à n’importe quel champ.

Modification des fichiers twigs pour la création des nouveaux hooks

Prestashop 1.7.2.x et inférieurs :

Avec les versions 1.7.2.x et inférieures il n’est pas possible de réaliser cette modification sans toucher à des fichiers “coeur” puisque la surcharge des templates symfony n’est pas encore gérée via les modules.…

15 commentaires

Magento 2 : Commande console pour supprimer les fichiers de logs et les reports

Lors de la phase de développement sous magento 2, les dossiers contenants les fichiers de logs et de reports ont tendance à augmenter rapidement et il devient difficile de s’y retrouver.
Il est possible de supprimer facilement le contenu des ces dossiers via l’explorateur de fichier ou via des commandes shell, mais cela peut être rébarbatif ou source d’erreurs ( rm -rf sur un mauvais dossier entre autre … )

Pour simplifier ces actions nous allons donc créer 2 nouvelles commandes dans la console Magento.
Ceci nous permets de constater qu’ajouter des commandes consoles sur magento 2 c’est très simple 🙂

Le module s’appellera Hhennes_Tools et sera situé dans app/code/Hhennes/Tools/

Pour initialiser le module créer le fichier etc/module.xml avec le contenu suivant

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
    <module name="Hhennes_Tools" setup_version="0.1.0">
    </module>
</config>

Et le fichier de registration registration.php avec le contenu suivant :

<?php
\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    'Hhennes_Tools',
    __DIR__
);

Dans le fichier Hhennes/Tools/etc/di.xml ajoutez le contenu suivant :

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <type name="Magento\Framework\Console\CommandList">
        <arguments>
            <argument name="commands" xsi:type="array">
                <item name="hhennes_tools_cleanreports" xsi:type="object">Hhennes\Tools\Console\Command\CleanReportsCommand</item>
                <item name="hhennes_tools_cleanlogs" xsi:type="object">Hhennes\Tools\Console\Command\CleanLogsCommand</item>
            </argument>
        </arguments>
    </type>
</config>

La logique d’ajout des commandes est situé dans ce fichier, nous ajoutons nos commandes à la liste des commandes disponible lors de l’initialisation de la classe Magento\Framework\Console\CommandList

Il ne reste plus qu’a créer les fichiers php des commandes :
Hhennes/Tools/Console/Command/CleanLogsCommand.php

<?php
 
namespace Hhennes\Tools\Console\Command;
 
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Magento\Framework\App\Filesystem\DirectoryList;
 
class CleanLogsCommand extends Command
{
 
    /** @var DirectoryList  */
    protected $_directoryList;
 
    /**
     * CleanLogsCommand constructor.
Pas de commentaires


Compte Github