Jump to content

Pistes pour réalisation de module


Recommended Posts

Bonjour,

 

je débute totalement sur PS. J'ai une expérience de 25 ans de dev donc plutot procédural qu'objet...(aie! pas sur la tête!)

Sur une 1.4.8 de test, je veux me lancer dans le dev d'un module pour me faire la main.

J'ai fait les divers tutos existants donc la base c'est ok. Maintenant j'aimerai faire certaines choses et prendre les bonnes directions :

 

Je vais avoir besoin de :

- faire des opérations coté front office à chaque mouvement de l'internaute, au début de chaque page. Quel hook utiliser??

- poser un cookie et lire un cookie coté front office pour repérer un internaute déjà venu. Quelles méthodes? Les techniques classiques peuvent elles fonctionner? puis-je poser un cookie rien qu'à moi? Comment?

- je vais devoir conserver des informations d'une page à l'autre. Classiquement j'utilise les sessions PHP. Comment faire cela dans prestashop? Methodes? J'ai cru lire/comprendre que PS ne gérait pas de sessions mais des cookies....

- coté admin j'ai compris que la methode getContent permettait d'acceder au panel de configuration du module. Mais comment interagir? poster des données pour les gérer en BDD, réafficher le résultat d'un post...? je n'ai pas trouvé d'exemples concret et simples...

 

En clair je ne pense pas vouloir faire des choses très complexes, mais un peu plus que du simple affichage de données dans le front... Et je veux partir dans la bonne direction et faire les choses le plus proprement possible.

 

Petite remarque sur la 1.5 :

J'ai commencé les tutos de creation de modules sur la 1.5 RC1 et ca ne marchait pas... (surtout la partie getContent)

Du coup je suis revenu à une 1.4.8. Si je pouvais aussi avoir des conseils pour que ca soit portable par la suite sur une 1.5... Je sais bien que toutes les infos ne sont pas encore dispo.

 

D'avance merci pour toutes les pistes qui seront forcément utiles vu mon niveau!

 

Hervé

Link to comment
Share on other sites

1. Quels types d'opérations ? si vous désirez afficher des infos en front office, le hook TOP. Si par contre vous ne souhaitez faire que des opérations 'en interne', vous pouvez peut être utiliser le hook header.

2. Pour les sessions, prestashop ne les utilise pas et utilise uniquement les cookies. Le mieux est que vous regardiez la classe cookie et toutes les fonctions disponibles. Par exemple, islogged vous permet de vérifier que la personne est connectée à son compte... Vous pouvez utiliser ma variable globale $cookie pour récupérer beaucoup d'infos par exemple la langue courante ($cookie->id_lang...). Par exemple:

$cookie->__set('mavar' , '1');

crée une variable cookie

$cookie->__unset('mavar');

supprime la variable

 

3. Pour getcontent() effectivement cela sert à créer une config en BO. Tous les éléments que vous affichez doivent se situer

dans la fonction getcontent().

Si vous utilisez un formulaire, il vous suffit d'utiliser un appel du type:

action='".$_SERVER['REQUEST_URI']."'

dans votre form.

De ce fait, au moment de l'envoi des données vous rechargez la page en cours. Donc pour traiter les données

vous n'avez qu'à dans votre getcontent() utiliser un truc du genre:

if(isset($_POST['mon_bouton']))
{
je traite...
}

 

4. Même si vous n'êtes pas familier des objets, utilisez les classes notamment Tools pour la récupération des variables.

N'utilisez pas comme sur l'exemple ci-dessus $_POST mais plutôt Tools::getValue('mon_bouton')

De même, utilisez la classe Db pour les requêtes à la base (Db::getInstance()->ExecuteS('ma requête'))

 

Pensez également à certaines fonctions pour les affichages comme $this->displayConfirmation('mon texte') qui vous permet d'afficher un texte de 'validation'.

 

De même pensez dès le départ à utiliser les traductions. Pour cela il faut utiliser la fonction $this->l('mon texte')

 

@ + ;)

 

Franck

Edited by franckm1000 (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...