04-06-2007, 06:32 PM
bonjours j'ai un petit bug mais comme je ne suis pas le créateur de la fonction .....:toilette: je sèche ...
Code PHP :
<?php
function barre($valeur, $max, $texte_alt="") {
$v=ceil($valeur);
$v2=$v;
$m=intval($max);
// pour du %, si on a plus de 100%, on limite à 100 pour ne pas avoir une barre de 3km de long...
// pour des barres au dela du %, remplacer 100 par $m
if ($v2>100) { $v2=100; }
if ($v==$m && $valeur!=$m) { $v=floor($valeur); }
if ($v==0) { // barre vide
$img1='<img src="img/barre_off_g.gif" title="'.$texte_alt.'" alt="'.$texte_alt.'" />';
$img2='';
$img3='<img src="img/barre_off.gif" width="100" height="12" title="'.$texte_alt.'" alt="'.$texte_alt.'" />';
$img4='<img src="img/barre_off_d.gif" title="'.$texte_alt.'" alt="'.$texte_alt.'" />';
} // if
elseif ($v==$m || $v>$m) { // barre pleine
$img1='<img src="img/barre_on_g.gif" title="'.$texte_alt.'" alt="'.$texte_alt.'" />';
$img2='<img src="img/barre_on.gif" width="'.$v2.'" height="12" title="'.$texte_alt.'" alt="'.$texte_alt.'" />';
$img3='';
$img4='<img src="img/barre_on_d.gif" title="'.$texte_alt.'" alt="'.$texte_alt.'" />';
} // elseif
else { // barre non pleine (et non vide)
$img1='<img src="img/barre_on_g.gif" title="'.$texte_altalt.'" alt="'.$texte_alt.'" />';
$img2='<img src="img/barre_on.gif" width="'.$v2.'" height="12" title="'.$texte_alt.'" alt="'.$texte_alt.'" /><img src="img/barre_bar.gif" title="'.$texte_alt.'" alt="'.$texte_alt.'" />';
// portion de barre vide
$r=$m-$v2;
if ($r>0) {
$img3='<img src="img/barre_off.gif" width="'.$r.'" height="12" title="'.$texte_alt.'" alt="'.$texte_alt.'" />';
} // if
else { $img3=''; } // else
$img4='<img src="img/barre_off_d.gif" title="'.$texte_alt.'" alt="'.$texte_alt.'" />';
} // else
$retval= $img1.$img2.$img3.$img4;
return $retval;
} // function
echo barre($hp,$hp_max,$texte_alt="Point de vie");
le hic c'est que si je met un $max de plus de 100 exemple 400 cela me donne une barre de 20 cm la moitier d'un ecran .....
quelqu'un aurrai une idée pour y remédier ....?