Jump to content
Maxence de Flotte

Outil d'administration en ligne de commande

Recommended Posts

Bonjour à tous.

 

Introduction

 

Depuis quelques mois, je maintiens un module d'administration en ligne de commande.

 

Cet outil permet entre autres :

  • l'installation, la mise à jour, l'activation, la désactivation ou encore la désinstallation de modules
  • la création/modification de variable configuration (classe Configuration)
  • la création d'employé ou de profil dans le back office
  • la création d'entité (produits, commandes, ...)

 

En plus de cela, le module peut être étendu facilement.

 

 

L’intérêt de ce module, est de vous offrir la possibilité de livrer de façon automatisé (sans intervention humaine) un site. Personnellement je l'utilise pour mes sites de démo couplé avec un ansible.

 

 

Sources et Installation

 

Vous pouvez retrouver le projet du module ici : https://github.com/madef/ps-admin-tools

Une archive est disponible ici : https://github.com/madef/ps-admin-tools/archive/master.zip

 

Contrairement aux autres modules de PrestaShop, ce dernier n'est pas à placer dans le dossier module mais à la racine de votre PrestaShop. Pour l'installer vous pouvez procéder de la manière suivante avec git :

git clone git@github.com:madef/ps-admin-tools.git admin-tools

Utilisation

 

L'utilisation du module ressemble à celle de la console Symfony. Voici un exemple :

php admin-tools/console.php help -c module:install

Cette commande permet d'obtenir l'aide de la commande « install ».

 

Si vous souhaitez activer le SSL sur toutes les pages vous devez lancer les commandes suivantes :

php admin-tools/console.php configuration:set -k PS_SSL_ENABLED -v 1
php admin-tools/console.php configuration:set -k PS_SSL_ENABLED_EVERYWHERE -v 1

Pour installer un module vous exécuterez :

php admin-tools/console.php module:install -m monmodule

Pour créer un employé avec un rôle et ajout des droits de lecture, d'ajout, d'édition, et de suppression sur les onglets du module :

php admin-tools/console.php profile:create -n demo
php admin-tools/console.php employee:create -l demo -f demo -p demodemo -e demo@demo.fr -P demo -L fr
php admin-tools/console.php profile:access -p demo -t AdminMonmodule% -d -a -e -r

Création d'une commande

 

Les commandes sont de simple classes PHP. Voici un exemple de commande affichant de texte passé en paramètre :

<?php

class AT_Company_Hello extends AT_Command_Abstract
{
    public function getCommand()
    {
        return 'company:hello';
    }

    public function getDescription()
    {
        return 'Say hello';
    }

    public function getParams()
    {
        return array(
            array(
                'string',
                's',
                AT_PARAMS::OPTIONAL_PARAM | AT_Params::REQUIRED_VALUE,
                'String to display instead of hello',
            ),
        );
    }


    public function run($params)
    {
        $string = 'Hello!';
        if (isset($params->string)) {
            $string = $params->string;
        }

        $this->normal($string);
    }
}

Le fichier hello.php doit être placé dans le dossier « command/company/ ».

 

On utilisera la commande de la manière suivante :

php admin-tools/console.php company:hello -s 'An other message' 

 J'espère que cet outil sera utile à certains. N'hésitez pas à me faire des retours.

  • Like 2

Share this post


Link to post
Share on other sites

C'est un outil intéressant, j'ai fait un projet similaire : https://github.com/nenes25/prestashop_console

Mais la possibilité de gérer en ligne de commande ne semble pas finalement pas intéresser grand monde, j'avais eu très peu de retours.
Pour ma part je suis totalement convaincu du gain de temps que cela apporte :)

Share this post


Link to post
Share on other sites

@hhennes héhé tu tombes sur un des seuls qui t'as fait des retours :) 

Spoted ^_^ 

Je suis d'accord pour le gain de temps, ce qui serait vraiment un plus dans ce genre de << module >> serait une ligne de commande genre "cleanpresta"

Désactiver toutes les merdes possibles, bloquer les api etc etc 

En tout cas bravo pour votre travail !

 

Share this post


Link to post
Share on other sites

@okom3pom Effectivement tu fait même partie des contributeurs du module :-)
Pour info j'ai rajouté une partie de ces possibilité dans la version 1.2  https://github.com/nenes25/prestashop_console/blob/master/COMMANDS.md#clean 
( Utilise le module PsCleaner  )
Mais c'est sur qu'il y'a pas mal de points encore optimisables, en général j'implémente des fonctionnalités dès que je rencontre le problème ^^

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More