Jump to content

Problème avec l'exemple de la doc


Recommended Posts

Salut à tous,

J'espère être dans la bonne section, j'ai hésité avec "module tiers"... J'ai pour projet l'installation d'une boutique, et je cherche à la personnaliser en ajoutant un ou 2 modules ; je commence donc par le commencement, la doc technique (et un autre tuto), et j'ai essayé de reproduire l'exemple.

Pas de souci particulier au début, je suis arrivé jusqu'à l'affichage d'un texte sur une page en conservant le design.
Mais arrivé à la partie "utilisation de Smarty" (page 36), j'ai un problème. Voici la page de la doc, mais ici avec mes noms de fichiers et variables, a priori pas d'erreur de ma part à ce niveau :


Smarty est le moteur de templates utilisé dans PrestaShop.
Il parcourt les fichiers TPL à la recherche d'éléments dynamiques pour les remplacer par les données adéquates avant d'afficher le résultat obtenu. Ces éléments sont indiqués entre accolades { … }. L'utilisateur peut créer ses propres variables et les utiliser dans les fichiers TPL.

Par exemple, dans le fichier moduletest_page.php, on crée une telle variable.

Fichier moduletest_page.php
<?php 
global $smarty; 
include('../../config/config.inc.php'); 
include('../../header.php'); 
include('moduletest.php'); 

$mymodule = new Moduletest(); 
$message = $mymodule->l('Welcome to my shop!'); 
$smarty->assign('messageSmarty', $message); 

$mymodule->display(dirname(__FILE__).'/moduletest_page.tpl'); 

include('../../footer.php'); 
?>



On peut désormais demander à Smarty l'affichage du contenu de cette variable dans le fichier page.tpl.

Fichier moduletest_page.tpl

{$messageSmarty}





Quand je vais sur la page, j'obtiens le message suivant :

Fatal error: Cannot redeclare class moduletest in /mnt/138/sda/1/c/everybadi/presta/modules/moduletest/moduletest.php on line 44


Quelqu'un saurait-il me dire où est le problème ?

Merci d'avance !

Turtle
Link to comment
Share on other sites

Je précise juste que si je fais ça, le texte "Welcome to my shop!" s'affiche bien, c'est donc, je suppose, que tout est OK au niveau des fichiers.

<?php 
   global $smarty; 
   include('../../config/config.inc.php'); 
   include('../../header.php');

   $message = 'Welcome to my shop!';
   $smarty->assign('messageSmarty', $message);

   $smarty->display(dirname(__FILE__).'/moduletest_page.tpl');

   include('../../footer.php');
?>



Mais si j'ai bien compris, je dois pouvoir remplacer {$messageSmarty} par {l s=$messageSmarty mod='moduletest'} dans moduletest_page.tpl pour utiliser la fonction l(), non ?

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