Jump to content

Je souhaiterai récupérer l'OS et la taille exacte de l'écran de visiteurs


Recommended Posts

ainsi que d'autres variables.

 

Ma question comment dois-je m'y prendre pour coller mon code "php" dans le .tpl

 

{php}...mon code...{/php} ne fonctionne pas et le site affiche une page blanche

 

Ce que j'ai déjà fait :

1/ J'ai créé mon répertoire dans le dossier "module"

2/ J'ai créé ma mypage.php à la racine de ce dossier avec "Classe Mypage extends Module..."

3/ Toujours dans cette page, j'ai installé mes "public fonction"

4/ J'ai crée mon tpl (mypage.tpl) dans le dossier "views/templates/hook"

 

et là j'arrive à récupérer et inscrire des données (dans une BDD) issues d'un formulaire que j'ai créé

j'arrive aussi à écrire une texte à la place d'un formulaire

 

Mais ce que je voudrai, c'est pouvoir y inscrire l'ensemble de mon code php pour récupérer la valeurs des variables, mais une page blanche s'affiche !

Secundo, les inscrire dans la BDD nouvellement créée

 

Merci de votre aide pour me guider

 


avec

Share this post


Link to post
Share on other sites

Alors un peu d'histoire :

- au début, il y avait les dinausores

- ensuite, il y a eu le modèle MVC, qui permet, pour ne pas dire oblige, de séparer le code métier de la partie "rendu".

 

En l'occurence, tu dois faire ton traitement en amont dans le controleur de ton module, puis passer le retour de ce traitement en paramètre à ta vue (le template smarty) qui en fera la mise en forme (c'est sa seule responsabilité)

  • Like 2

Share this post


Link to post
Share on other sites

Tout d'abord merci Johann !

 

Malheureusement ta réponse ne m'aide pas trop et j'avoue que je ne vois ce que je dois faire à partir des travaux déjà exécutés.

 

Je dois créer un fichier "controller" où je mettrai tout mon code php, c'est cela ? Comment dois-je m'y prendre ?

 

Sinon as-tu un exemple de ce qu'il faudrait faire pour récupérer depuis le hook footer, la variable $REMOTE_ADDR ou $_SERVER['HTTP_USER_AGENT'] ? Le reste sera sans doute plus simple à déduire...

 

 Mon architecture :

 

Racine serveur

> modules

>  > monmodule

>  >  >  install

>  >  >  >  .htaccess

>  >  >  >  index.php

>  >  >  >  install.sql

>  >  >  >  uninstall.sql

>  >  >  views

>  >  >  >  templates

>  >  >  >  >  hook

>  >  >  >  >  >  displayhook.tpl

>  >  >  config_fr.xml

>  >  >  index.php

>  >  >  logo.gif

>  >  >  logo.png

>  >  >  monmodule.php

Share this post


Link to post
Share on other sites

ton controleur dans ton exemple, c'est le fichier "monmodule.php", avec un code similaire à ça :

public function hookFooter($params)
{
    $this->smarty->assign(
        array(
	    'navigateur' => $_SERVER['HTTP_USER_AGENT'] ,
            'ip' => $_SERVER["REMOTE_ADDR"],
// d'autres trucs si tu veux...
        )
    };

return $this->display(__FILE__, 'monmodule.tpl');
}


et dans le fichier monmodule.tpl, tu peux exploiter les variables que tu recois :

{if isset($ip) && $ip=='xxx.xxx.xxx.xxx'}
C'est mon IP
{else}
C'est quelqu'un d'autre
{/if}

Vous utilisez le navigateur : {$navigateur}

Share this post


Link to post
Share on other sites

Bonjour,

 

surtout prenez le temps de lire les documentation officielles PrestaShop sur le sujet.

 

après vous pouvez utiliser le caneva de base proposé par PrestaShop sur https://validator.prestashop.com/generator

 

et si vous n'avez jamais développé de module commencez par de petites actions pour monter en puissance lorsque cela fonctionne.

Share this post


Link to post
Share on other sites

Impeccable, j'ai donc adapté ma façon de faire et ça marche !!

 

Je ne savais pas que l'on pouvait mêler des fonctions basiques php sur ces "public function".

 

Merci à toi Johann :)

 

Donc si j'ai bien compris, pour manipuler ces variables (ainsi obtenues à l'insu du visiteur... ou par le biais d'un formulaire après le clic de validation), je dois le faire dans le tpl du module?

 

puis appeler le résultat (de la manipulation) dans le contoller via un :

 

$nlle_variable= Tools::getValue('nlle_variable');

 

Je vais donc créer un compte via le lien fourni et m'entrainer donc :)

 

Merci pour ton aide

Share this post


Link to post
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
 Share

×
×
  • Create New...

Important Information

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