Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] jTpl et Opération de Calcule

Posted by Yann.L on 09/17/2008 11:20

Bonjour,

Quand je fais ça dans mon template:

 <td>{($monBudget->CompteOrdrePaiement - $monBudget->CompteChargeAPayer) / $MontantBudget * 100} %</td>

J'ai le droit a un joli :

 [error 300] Dans le template F:\wamp\www\tabbord\front\modules/budget/templates/listebudget.tpl 
 La syntaxe de balise ($monBudget->CompteOrdrePaiement - $monBudget->CompteChargeAPayer) / $MontantBudget * 100 est invalide
 F:\wamp\www\tabbord\lib\jelix\tpl\jTplCompiler.class.php 147

Or dans la doc on me dit que :

 {$mavariable * 3}

équivaut a en php :

 
 <?php echo $mavariable * 3; ?>

J'ai tenté de faire un test où j'ai fait :

 <?php
 echo "<td>".{($monBudget->CompteOrdrePaiement - $monBudget->CompteChargeAPayer) / $MontantBudget * 100} %."</td>";
 ?>

Et la sa fonctionne...

Je me suis peut être trompé quelque part, mais je ne vois pas où, un peu d'aide ne serait pas de refus.

Merci

  [Opened] Re: jTpl et Opération de Calcule

Reply #1 Posted by laurentj on 09/17/2008 14:08

Salut,

Alors, déjà, d'une part, ton calcul, tu devrais le faire dans une classe métier. Le template ne devrait servir qu'à la présentation. Bref, tu fais là une erreur de conception.

D'autre part, la doc dis que pour tout affichage d'une variable, il faut commencer par le nom d'une variable, et non pas par des parenthèses ou autre caractère.

Enfin, pour ton test avec la balise php, tu as fais ça dans un template ? parce que je suis étonné que tu puisse mettre une balise PHP dans un template. Normalement, c'est interdit, et ignoré par jTpl (en tout cas dans les dernières version 1.0.x et la 1.1 en préparation. Tu as une vieille version de jelix ?

  [Opened] Re: jTpl et Opération de Calcule

Reply #2 Posted by Yann.L on 09/17/2008 14:50

Enfin, pour ton test avec la balise php, tu as fais ça dans un template ? parce que je suis étonné que tu puisse mettre une balise PHP dans un template. Normalement, c'est interdit, et ignoré par jTpl (en tout cas dans les dernières version 1.0.x et la 1.1 en préparation. Tu as une vieille version de jelix ?

J'ai pas tester avec Jelix mais dans un script php totalement a part, d'ailleurs c'est pour ça que ça marche ^^

Alors, déjà, d'une part, ton calcul, tu devrais le faire dans une classe métier. Le template ne devrait servir qu'à la présentation. Bref, tu fais là une erreur de conception.

Ok, je vois mon problème ^^. Si je comprend bien je dois faire ma classe métier qui réalise mes calculs et me renvois les champs nécessaire a mon affichage. Donc dans mon contrôleur je dois instancier ma classe métier, exécuter les méthodes nécessaire, récupérer le résultats et les assigner a mon template pour créer la réponse.

merci Laurent

  [Opened] Re: jTpl et Opération de Calcule

Reply #3 Posted by laurentj on 09/18/2008 10:47

'ai pas tester avec Jelix mais dans un script php totalement a part

Ok, tu me rassures :-)

Si je comprend bien....

Oui, tu comprends bien, et c'est exactement comme ça que cela doit fonctionner :-) Le découpage en couche (rappel: MVC ;-)), y a rien de mieux pour la maintenance et les évolutions ;-)

 
Page
  1. jTpl et Opération de Calcule