[RESOLU] Calcul note moyenne Php sur page .tpl (Besoin d'aide)

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Calcul note moyenne Php sur page .tpl (Besoin d'aide)

Re: [RESOLU] Calcul note moyenne Php sur page .tpl (Besoin d'aide)

par POKEMAT » 14 janv. 2016, 10:53

Merci beaucoup, en fait c'est pour éviter d'afficher les erreurs si il manque une note sinon le calcul de moyenne fait apparaitre une erreur en cas de non présence d'un attribut.

Re: [RESOLU] Calcul note moyenne Php sur page .tpl (Besoin d'aide)

par Spols » 14 janv. 2016, 08:38

retire les instruction echo plutot que de mettre une div dsiplay none
ca aura le même effet

Re: Calcul note moyenne Php sur page .tpl (Besoin d'aide)

par POKEMAT » 14 janv. 2016, 01:07

Je t'aime mdr t'es trop fort tu me sauves ! :)
Si je pouvais choisir t'aurais un prix nobel ! =D>

*j'ai trouvé une astuce pour masquer tout ça et afficher que le résultat ci-dessous:

Code : Tout sélectionner

<div style="display:none"> <?php //Note moyenne presse et public et autre multipliable autant de fois que necessaire if ($attribute_groups) { foreach ($attribute_groups as $attribute_group) { foreach ($attribute_group['attribute'] as $attribute) { if ($attribute_group['name'] == 'Notation Presse') { $note1 = substr($attribute['text'], 0, -4); $ref1 = substr($attribute['text'], -3); echo $note1;echo $ref1; } if ($attribute_group['name'] == 'Notation Public') { $note2 = substr($attribute['text'], 0, -4); $ref2 = substr($attribute['text'], -3); echo $note2;echo $ref2; } if ($attribute_group['name'] == 'Notation Autre') { $note3 = substr($attribute['text'], 0, -4); $ref3 = substr($attribute['text'], -3); echo $note3;echo $ref3; } }}} //Moyenne des avis en pourcentage $moyenne=(+$note1+$note2+$note3)*100/(+$ref1+$ref2+$ref3); //Resultat note moyenne echo $moyenne; ?></div> <h1>Ce produit obtient une note moyenne de <?php echo substr($moyenne, 0, 5); ?> %*</h1></br> * Presse, public, notation autre
PS: Attention pour ceux qui font un copier coller il faut changer (substr($attribute['text'], 0, -4)) en fonction de vos attributs car j'enregistre mes notes sous la forme: 80/100 ou 17/20. (en laissant un espace après le 0 du 20)

Voilà et ça marche, de quoi faire des moyennes d'attributs sur des pages produit opencart. Je pense que tu viens d'aider beaucoup de noobs comme moi qui chercheront à le faire aussi et qui tomberont sur ce sujet :D

Re: Calcul note moyenne Php sur page .tpl (Besoin d'aide)

par Spols » 13 janv. 2016, 23:35

Code : Tout sélectionner

<?php //Note moyenne presse et public if ($attribute_groups) { foreach ($attribute_groups as $attribute_group) { foreach ($attribute_group['attribute'] as $attribute) { if ($attribute_group['name'] == 'Notation Presse') { $note1= substr($attribute['text'], 0, -4); $ref1= substr($attribute['text'], -3); echo $note1;echo $ref1; } if ($attribute_group['name'] == 'Notation Public') { $note2= substr($attribute['text'], 0, -4); $ref2= substr($attribute['text'], -3); echo $note2;echo $ref2; }}}} //Moyenne des 2 en pourcentage $moyenne=($note1+$note2)*100/($ref1+$ref2); //Resultat note moyenne echo $moyenne; ?>
Il te faut comprendre le principe des tag <?php et ?>
Il servent a encadrer un script php qui est exécuté coté serveur, donc avant d'être envoyé au navigateur.
Il ne peuvent pas être imbriqué.

Essaie le code ci dessus, tu devrais voir les 5 valeur qui s'affiche les unes après les autres sans autres mise en page mais c'est un début

Re: Calcul note moyenne Php sur page .tpl (Besoin d'aide)

par POKEMAT » 13 janv. 2016, 21:43

Bonsoir,

merci beaucoup pour ta réponse. En fait, je suis vraiment débutant - - en php, et j'aurai besoin de voir si quelqu'un pourrait m'aider à condenser tout ça en un code qui fonctionne. Si tu as une idée je suis preneur et je ferai le test :D La pour l'instant je suis en stand by à cause de ce truc :(

Code : Tout sélectionner

Parse error: syntax error, unexpected '<' in /httpdocs/catalog/view/theme/default/template/product/product.tpl on line 699

Re: Calcul note moyenne Php sur page .tpl (Besoin d'aide)

par Spols » 13 janv. 2016, 08:38

hello,

Quelle message d'erreur ??

$noteX et $refX sont défini en dehors des tag <?php et ?> donc surement pas pris en compte. défini ces variables dans ton php, calcul ta moyenne et affiche la avec echo

et ne ferme pas tes balises php si ce n'est pas nécessaire

Calcul note moyenne Php sur page .tpl (Besoin d'aide)

par POKEMAT » 13 janv. 2016, 03:05

Bonjour, j'ai un petit problème sur mon site, je souhaiterai faire la moyenne de deux attributs (pour l'instant deux mais j'en ai d'autres à ajouter si ça marche) sur une page produit opencart, mais il semble que cela ne soit pas si simple pour l'afficher directement sur la page. Je ne sais pas si je pourrais calculer la moyenne avec ces éléments en php. Si vous avez des idées je suis preneur, je ne trouve pas de solution.

Code : Tout sélectionner

<?php //Note moyenne presse et public <?php if ($attribute_groups) { ?> <?php foreach ($attribute_groups as $attribute_group) { ?> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <?php if ($attribute_group['name'] == 'Notation Presse') { ?> $note1=<?php echo substr($attribute['text'], 0, -4); ?>; $ref1=<?php echo substr($attribute['text'], -3); ?>; <?php } ?> <?php } ?> <?php } ?> <?php } ?> <?php if ($attribute_groups) { ?> <?php foreach ($attribute_groups as $attribute_group) { ?> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <?php if ($attribute_group['name'] == 'Notation Public') { ?> $note2=<?php echo substr($attribute['text'], 0, -4); ?>; $ref2=<?php echo substr($attribute['text'], -3); ?>; <?php } ?> <?php } ?> <?php } ?> <?php } ?> //Moyenne des 2 en pourcentage $moyenne=(+$note1+$note2)*100/(+$ref1+$ref2); //Resultat note moyenne echo $moyenne; ?>
Sans surprise j'ai un message d'erreur, si quelqu'un peut m'aider je suis vraiment nul et je comprend rien à tout ça ! :(