Jump to content
leakimd

Utilisation d'une fonction PHP dans un TPL

Recommended Posts

Bonjour à tous.

 

Je travaille actuellement sur un module en BackOffice.

 

Je cherche à utiliser une fonction PHP perso

D'apres ce que j'ai pu lire sur different forum je la defini comme ça  

 function smarty_function_fonctiontest($params, &$smarty) {
    $texteaaficher = $params['texttest'];
    echo "Afficher : ".$texteaaficher; 

$textmodif = $texteaaficher."MODIF";
 return $textmodif;
}

Bien su ma fonction final ne fera pas que afficher un texte mais une fois que j'aurais compris le principe ça devrais bien se passer

 

et dans mon tpl je la lance comme ça :

  {foreach from=$ProductList2 item=ProductLists2}
                                    
  
      {fonctiontest( texttest=  {$ProductLists2.name})}

    {$fonctiontest}
                          {/foreach}
     

Et du coup quand j'appelle ma page je me retrouve avec une erreur 500

Pour l'instant je declare ma fonction dans monmodule.php et je pense que le problème et là.

 

Je bloque depuis un petit moment merci d'avance pour votre aide.

 

 

 

 

 

Share this post


Link to post
Share on other sites

Toute fonction native php ainsi que toute fonction statique est utilisable directement (au détail de structurer les arguments avec la bonne syntaxe) depuis n'importe quel tpl

Share this post


Link to post
Share on other sites
42 minutes ago, doekia said:

Toute fonction native php ainsi que toute fonction statique est utilisable directement (au détail de structurer les arguments avec la bonne syntaxe) depuis n'importe quel tpl

Merci pour ta réponse qui ne me fait pas avancé du tout.

Share this post


Link to post
Share on other sites
il y a 10 minutes, leakimd a dit :

Merci pour ta réponse qui ne me fait pas avancé du tout.

Ben voyons.

Share this post


Link to post
Share on other sites
59 minutes ago, doekia said:

Toute fonction native php ainsi que toute fonction statique est utilisable directement (au détail de structurer les arguments avec la bonne syntaxe) depuis n'importe quel tpl

Ça veux dire quoi ???? j'ai mal structurer les arguments ??? La syntaxe est pas bonne ???? Tu peux me donner un exemple ????

Share this post


Link to post
Share on other sites
class MonModule 
{
  ...

  public static function moncode($x,$y,$z)
  {
    return 'x='.$x.', y='.$y.', z='.$z;
  }

  ...
}

tpl

{'value de x'|MonModule::moncode:'valeur de y':'valeur de z'}

 

Share this post


Link to post
Share on other sites
Posted (edited)

OK je te remercie meme si ton exemple marche pas

php

public static function fonctiontest($params)
   {
    echo "Afficher : ".$params;

$textmodif = $params."MODIF";
 return $textmodif;
}

et pour le TPL

  {Lkm_InfoProd::fonctiontest({$ProductSearched.id_product})}

 

Merci ça fait deux fois que tu me donne des demi solutions .  t'as droit à un café

 

Edited by leakimd (see edit history)

Share this post


Link to post
Share on other sites

et pourquoi ne pas pas créer un hook, tout simplement ?

 

<?php
    public function hookmaFct($params)
    {
        return 'LE super produit indispensable : '.$params['nomduproduit'];
    }
    
    
    
    
et en tpl :
{hook h="maFct" nomduproduit=$product.name}

 

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

×
×
  • Create New...

Important Information

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