login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > PHP > GD library > Score weergave (d.m.v. sterretjes)

Score weergave (d.m.v. sterretjes)

Auteur: MindPrison - 19 juli 2005 - 16:16 - Gekeurd door: Maarten - Hits: 5471 - Aantal punten: 4.70 (5 stemmen)



Dit script genereert een balk van sterretjes, waarmee je bv de waardering van iets kunt weergeven. Het werkt volldig onafhankelijk, hiermee bedoel ik dat het alleen dient om de uitslag weer te geven. Het systeem dat de scores bijhoud moet je zelf voorzien.

Je moet het script zo openen: sterren.php?sterren=[1]&punten=[2]&maxpunten=[3]

[1] = Het aantal sterren dat je wilt zien.
[2] = Het aantal behaalde punten.
[3] = Maximum behaalde punten (als er dus 3 keer gestemd is en het hoogste dat je kunt stemmen is 5, dan is dit dus 15).

Op http://scripts.mvaprojects.be vind je de afbeeldingen die je nodig hebt.

Deze sterretjes komen van de extensie site van Firefox (daarvan had ik ook het idé voor dit script ). Ik heb het uitgebreid getest, maar als je toch ergens een probleem zou krijgen, laat het dan even weten...

Code:
  1. <?php
  2. // Zijn de nodige variabelen opgegeven?
  3. if(is_numeric($_GET["sterren"]) && is_numeric($_GET["punten"]) && is_numeric($_GET["maxpunten"]))
  4. {
  5. $breedte = 13; // Breedte ster
  6. $hoogte = 15; // Hoogte ster
  7. $leeg = imagecreatefromgif("ster_leeg.gif"); // De lege ster
  8. $vol = imagecreatefromgif("ster_vol.gif"); // De volle ster
  9. $sterren = imagecreatetruecolor(($_GET["sterren"] * $breedte), $hoogte); // Afbeelding aanmaken
  10.  
  11. $per_ster = $_GET["maxpunten"] / $_GET["sterren"]; // Punten per ster berekenen
  12. $volle_sterren = floor($_GET["punten"] / $per_ster); // Aantal volle sterren (altijd afronden naar beneden)
  13. $overschot = round((($_GET["punten"] - ($volle_sterren * $per_ster)) / $per_ster) * $breedte); // Wat nog vol moet zijn bij deels volle ster
  14.  
  15. // Sterren invoegen
  16. for($i = 0; $i < $_GET["sterren"]; $i++)
  17. {
  18. $x = $i * $breedte; // Startpunt X berekenen
  19.  
  20. if($volle_sterren > 0) // Volle sterren invoegen
  21. {
  22. imagecopy($sterren, $vol, $x, 0, 0, 0, $breedte, $hoogte);
  23. $volle_sterren = $volle_sterren - 1;
  24. }
  25. elseif($overschot > 0) // Deels volle sterren
  26. {
  27. imagecopymerge($sterren, $vol, $x, 0, 0, 0, $overschot, $hoogte, 100); // Vol deel
  28. imagecopymerge($sterren, $leeg, ($x + $overschot), 0, $overschot, 0, ($breedte - $overschot), $hoogte, 100); // Leeg deel
  29. $overschot = 0;
  30. }
  31. else // Lege sterren invoegen
  32. imagecopy($sterren, $leeg, $x, 0, 0, 0, $breedte, $hoogte);
  33. }
  34.  
  35. // Afbeelding volledig transparant maken
  36. imagecolortransparent($sterren, imagecolorallocate($sterren, 255, 255, 255));
  37.  
  38. // Afbeelding sturen
  39. header("Content-type: image/gif");
  40. imagegif($sterren);
  41. imagedestroy($sterren);
  42. }
  43. ?>
Download code! Download code (.txt)

 Bekijk een voorbeeld van dit script!
 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Lees de reacties (15)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.05s