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.
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.

Nous allons voir maintenant comment utiliser la configuration.
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 !');
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 !
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 !
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');
L’utilisation avec la traduction est sensiblement la même que précédemment hormis un détail…
<?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);
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 !
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 !
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 !
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.
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 !!
question a 10 cts:
a quoi cela sert
Et bien pour les développeurs à agir avec le système de configuration de Prestashop.
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
un vrai pro ^^ manque plus qu un tuto pour s auto faire un logo
^^ 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
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’ : »);
}
Merci Julien, c’est très éclairant et formateur!
Avec plaisir !