Aller au contenu

October 15, 2013

1

Insérer du code php dans un fichier tpl smarty

ON NE MET PAS DE CODE PHP DANS UN FICHIER TEMPLATE (.tpl) SMARTY !

CELA EST INUTILE, PAS RECOMMANDE ET NE RESPECT PAS L’ARCHITECTURE MVC.

Utiliser vos controlleurs pour passez vos variables à vos vues !

Publié par
Plus d'articles pour la catégorie Tutoriels
9 Commentaires Poster un commentaire
  1. regh
    Jan 26 2012

    salut,

    je sais pas trop ou poser la question, je bosse habituellement sur WP , et faire la bascule entre le système de template php de WP vers celui de Presta (php/tpl smarty/hook/modules/positionnement via admin) est assez ardu (un vrai enfer à assimiler en fait). Je comprend les bases du système de module (merci pour vos articles qui m’ont un peu éclairé), par contre je me pose une question toute bête (ou pas) est il possible d’assigner directement à smarty des variables php propres au template sans passer par la création de modules/hooks (en restant au niveau du dossier theme).

    merci

    Reply
    • eMizZ
      Jan 26 2012

      Bonjour,

      Il suffit d’utiliser la fonction assign de smarty dans le controller :

      $smarty->assign(‘produits’, $products);

      Et récupérer la variable dans le .tpl via {$produits}
      ;)

      Reply
  2. regh
    Jan 26 2012

    merci pour ta réponse, il faut que je regarde plus en détail la question du fonctionnement des controleurs, mais j’ai toujours du mal à mettre du code dédié à un template particulier en dehors du dossier correspondant (pas techniquement, juste logiquement).
    Du coup je me suis finalement créé un module (avec un nom explicite faisant echo à celui de mon template) que je greffe au header pour gérer mes var, ça serait pas mal de pouvoir avoir un dossier de modules propre au tempates directement dans les dossiers template et garder les modules de base pour une utilisation plus générale.

    Reply
  3. regh
    Mar 1 2012

    salut, un petit édit à mon commentaire précédent, en effet j’ignorai à ce moment là que l’on pouvait surdéfinir les modules de bases de presta directement au niveau du template (comme on peut le faire sur l’override des controleurs), dans le dossier module du template pour les .tpl et dans le dossier js/module pour remplacer leur fonction js (dans les 2 cas il faut remettre les mêmes noms de dossier, et fichiers que ce que l’on souhaite remplacer), du coup c’est pas très propre mais je peux récupèrer mes var php dans les .tpl surdéfinissant le module ciblé tout en restant das le theme ( avac la balise php de smartty, je sais… c’est mal ! j’ai fait ça à la va-vite et n’ai pas testé si l’on peut également surdéfinir les .php à cet endroit).
    voila, j’espère n’avoir pas dit trop de bétises et que l’info sera utile si quelqu’un se posant la même question que moi venait à passer par là.n).

    Reply
  4. bougrara
    Apr 23 2012

    Bonjour , j’ai un soucis dans mes transporteur, je voudrai les spécifier selon le code postale de mes clients ,

    Exemple , je prend mondial relais je veut que ce dernier sera affiche que pour le client ayant un code postal 35 000 :)

    Est -il possible ?

    Reply
    • eMizZ
      Apr 23 2012

      Impossible de faire ça nativement.

      Reply
  5. Pakital
    Oct 29 2012

    salut merci pour la derrière fois j’ai régler le bléme. Cette fois ci je veux rajouter du texte dans les devises et les langues quelque chose comme devise: les symboles. j’ai rajouter le texte sur le fichier tpl mais pas de changement si tu peux m’orienter.

    Reply
  6. Fabien
    Jan 25 2013

    Bonjour,
    J’ai besoin d’installer un code de tracking dans la page de confirmation de commande mais je ne connais pas les
    les variables à insérer à la place des 1, 2 et 3.
    1 -> montant de la commande. Il doit être Hors Taxe, Hors Frais de Port, et doit contenir 2 chiffres après la virgule
    2 -> par la référence de la commande
    3 -> MODE_PAIEMENT par le mode de paiement utilisé dans la commande (CB, CHEQUE, PAYPAL, VIREMENT, etc…)

    j’ai donc été dans mon OrderController.php et j’ai ajouté:

    if (self::$cookie->is_guest)
    {
    self::$smarty->assign(array(
    ‘id_order’ => $this->id_order,
    ‘total_products_wt’ => $this->total_products_wt*0.804,
    ‘payment’ => $this->payment,
    ‘id_order_formatted’ => sprintf(‘#%06d’, $this->id_order)
    ));

    J’ai mes 3 variables j’ai donc inséré dans mon orderConfirmation.tpl mais je ne pense pas que ça fonctione comment puis-je faire .

    Reply
  7. hacene
    Jul 9 2013

    bonjour je voudrais savoir :
    est ce que à chaque fois que je change d’action dans mon controleur je suis oblige de redonner une valeur a mes variables smarty .
    merci

    Reply

Partagez votre opinion, postez un commentaire.

(requis)
(requis)

Note: Le HTML est autorisé. Votre e-mail (ne sera pas publié).

S'abonner aux commentaires


2 + = 7