Julien Breux sur Twitter
Tutoriel Prestashop – Utiliser la configuration

Tutoriel Prestashop – Utiliser la configuration

Introduction

La configuration est un élément clé de toutes solutions web.
C’est pour cette raison que je vais tenter de vous présenter ici le système de configuration de Prestashop.

Architecture

L’architecture pour la configuration dans Prestashop est très simple !
Celle-ci repose sur deux tables MySQL (configuration et configuration_lang) dans la base de données et d’un fichier situé dans classes/Configuration.php.
Ce fichier contient une classe Configuration héritant du modèle objet (prochain tutoriel) de Prestashop.

Configuration

Utilisation Simple

Nous allons voir maintenant comment utiliser la configuration.

Écriture d’une clé

Pour ceci, c’est très simple, nous utilisons la méthode statique updateValue qui prend deux paramètre (nom de la clé et valeur).

<?php
require_once dirname(__FILE__) . '/config/config.inc.php';
require_once dirname(__FILE__) . '/init.php';
 
// Enregistrement d'une clé
Configuration::updateValue('JBX_MY_FRIST_KEY', 'Hello Word !');

Lecture d’une clé

Pour lire cette clé, nous utilison la méthode statique get acceptant un seul paramètre (nom de la clé).

<?php
require_once dirname(__FILE__) . '/config/config.inc.php';
require_once dirname(__FILE__) . '/init.php';
 
// Lecture d'un clé
$valeur = Configuration::get('JBX_MY_FRIST_KEY');
echo $valeur; // Hello Word !

Lecture de plusieurs clés

Pour lire plusieurs clés, vous devez utiliser la méthode statique getMultiple qui accepte un paramètre (tableau de clés).

<?php
require_once dirname(__FILE__) . '/config/config.inc.php';
require_once dirname(__FILE__) . '/init.php';
 
// Lecture de plusieurs clés
$cles = array('JBX_MY_FRIST_KEY', 'JBX_MY_SECOND_KEY');
$valeurs = Configuration::getMultiple($cles);
echo implode(',', $valeurs); // Hello Word !, Hello Word 2 !

Suppression d’une clé

Pour supprimer une clé, encore une fois, c’est très simple

<?php
require_once dirname(__FILE__) . '/config/config.inc.php';
require_once dirname(__FILE__) . '/init.php';
 
// Suppression d'une clé
Configuration::deleteByName('JBX_MY_FRIST_KEY');

Utilisation avec traduction

L’utilisation avec la traduction est sensiblement la même que précédemment hormis un détail…

Écriture d’une clé avec traduction

<?php
require_once dirname(__FILE__) . '/config/config.inc.php';
require_once dirname(__FILE__) . '/init.php';
 
// Enregistrement d'une clé en Anglais (1) et en Français (2)
$valeurs = array(
  1 => 'Hello word !',
  2 => 'Bonjour le monde !',
);
Configuration::updateValue('JBX_MY_FRIST_KEY', $valeurs);

Lecture d’une clé avec traduction

Pour lire une clé dans une langue, utilisez le troisième paramètre (identifiant de la langue).

<?php
require_once dirname(__FILE__) . '/config/config.inc.php';
require_once dirname(__FILE__) . '/init.php';
 
// Lecture d'une clé en Anglais (1) et en Français (2)
$valeur_en = Configuration::get('JBX_MY_FRIST_KEY', 1);
echo $valeur_en; // Hello word !
$valeur_fr = Configuration::get('JBX_MY_FRIST_KEY', 2);
echo $valeur_fr; // Bonjour le monde !

Lecture de plusieurs clés avec traduction dans un seule langue

Pour lire plusieurs clés, vous devez utiliser la méthode statique getMultiple qui accepte deux paramètres (tableau de clés, identifiant de la langue).

<?php
require_once dirname(__FILE__) . '/config/config.inc.php';
require_once dirname(__FILE__) . '/init.php';
 
// Lecture de plusieurs clés
$id_lang = 2; // Français (2)
$cles = array('JBX_MY_FRIST_KEY', 'JBX_MY_SECOND_KEY');
$valeurs = Configuration::getMultiple($cles, $id_lang);
echo implode(',', $valeurs); // Bonjour le monde !, Bonjour le monde 2 !

Lecture de plusieurs clés avec traduction dans toutes les langues

Pour lire plusieurs clés, vous devez utiliser la méthode statique getMultipleInt qui accepte un paramètre (tableau de clés).

<?php
require_once dirname(__FILE__) . '/config/config.inc.php';
require_once dirname(__FILE__) . '/init.php';
 
// Lecture de plusieurs clés
$cles = array('JBX_MY_FRIST_KEY', 'JBX_MY_SECOND_KEY');
$valeurs = Configuration::getMultipleInt($cles);
echo $valeurs[1]['JBX_MY_FRIST_KEY']; // Hello World !
echo $valeurs[2]['JBX_MY_SECOND_KEY']; // Bonjour le monde 2 !

Astuces

La méthode statique updateValue acceptent un troisième paramètre (enregistrer du html ?)

<?php
require_once dirname(__FILE__) . '/config/config.inc.php';
require_once dirname(__FILE__) . '/init.php';
 
$valeur = '<b>Je suis en gras !</b>';
Configuration::updateValue('JBX_MY_HTML_KEY', $valeur, true);

La solution utilise une méthode statique nommée loadConfiguration() qui charge l’ensemble de la configuration en cache.

Conclusion

C’est à peu prêt tout ce qu’il faut savoir sur la configuration, normalement, on a fait le tour.
Amusez-vous bien….

Ha… si, juste un truc ! L’abus de configuration n’est pas dangereuse pour la santé… pour votre santé, mangez, bougez, configurez !!

8 Réponses à “Tutoriel Prestashop – Utiliser la configuration”

  1. yann dit :

    question a 10 cts:
    a quoi cela sert :-)

  2. Julien dit :

    Et bien pour les développeurs à agir avec le système de configuration de Prestashop.

  3. geococo dit :

    Bonjour,
    je sais que ce n’est pas le bon endroit, j’ai bien lu ton tuto (très intéressant pour moi).
    J’ai un soucis, je n’arrive pas a trouver la variable qui m’indique si mon panier est vide ou pas.
    Je voudrai récupérer cette variable et faire le test sur ma page product pour afficher des messages supplémentaire (voir enlever le bouton ajouter si le produit n’est pas du meme fournisseur).
    D’avance merci

  4. allison dit :

    un vrai pro ^^ manque plus qu un tuto pour s auto faire un logo

  5. Julien dit :

    ^^ Merci Allison, une demoiselle sur le blog, il me semble me rappeler que…. c’est rare. :-)

    Les tuto pour les logos, c’est plus du Prestashop

  6. Julien dit :

    Bonjour,

    Ce n’est pas une variable, mais un objet, dans PHP :
    global $cart;
    if ($cart->nbProducts()) {
    echo ‘Il y a ‘ . $cart->nbProducts() . ‘produit’ . (($cart->nbProducts() > 1) ? ’s’ :  »);
    }

  7. jc dit :

    Merci Julien, c’est très éclairant et formateur!

  8. Julien dit :

    Avec plaisir !

Laisser une réponse