Avatar billede zurekk Nybegynder
06. april 2006 - 18:37 Der er 11 kommentarer og
1 løsning

Rating - Stjerne - Script

Hej Eksperter!

Jeg er ved at blive desperat, så derfor går jeg bare lige til sagen.
Jeg vil betale hele **37,30kr.** til den person som laver/integrere et stjerne baseret rating system i et film-system jeg har.

Jeg ved godt i hellere vil have 2 points herinde, end 37,30kr men da jeg lige har tømt min konto har jeg ikke mere at give ud af :P

Det gør ikke noget om i har downloadet scriptet, så længe resultatet vises i stjerner(evt. i både stjerner og cifre), og i kan smide det op for mig :D

På forhånd tak!

DOVENSKAB LÆNGE LEVE!

(har også tømt min exp konto, så har heller ingen points at smide  efter jer)
Avatar billede zurekk Nybegynder
06. april 2006 - 18:58 #1
Come on :D
Avatar billede jensgram Nybegynder
06. april 2006 - 20:49 #2
Lav en tabel:

id | votes | total

id = unikt id på det item, der skal vurders.
votes = ANTAL bedømmelser
total = SUMMEN af bedømmelser

Så hentes rating som

"SELECT ROUND(total/votes) as rating FROM tabel WHERE id = XXX"

Stjerner printes som:

for ($i = 0; $i < $row['rating']; $i++) {
    print '*';
}
Avatar billede zurekk Nybegynder
06. april 2006 - 20:53 #3
Tester om lidt ^^
Avatar billede jensgram Nybegynder
06. april 2006 - 21:02 #4
Husk ved indsætning:

"UPDATE tabel SET votes=votes+1, total=total+X WHERE id = Y"
Avatar billede zurekk Nybegynder
06. april 2006 - 21:53 #5
Jeg bliver lige nødt til at kigge på det i morgen.

Hvis du vil have betaling kan du evt. sende konto nr. til mail@zurekk.dk, så sender jeg hvis det virker.
Avatar billede jensgram Nybegynder
06. april 2006 - 22:02 #6
Hehe, nej ellers tak du. Det var pænt af dig, men behold du selv de 37 kr.
Avatar billede pvtsommer Nybegynder
07. april 2006 - 09:43 #7
Jeg har et script, som i øvrigt gør din pointgivning en smule sjovere ;)

Gem dette i en fil du kalder "drawrating.php" fx...
Så kan du vha. <img src="drawrating.php?vote=5"> få tegnet en 50% score, hvor der samtidig står "50% balbla" på billedet.

Eksempel: http://www.dolph.dk/drawKoelle.php?vote=5

I toppen står de mest gængse variabler som kan ændres, men du kan selv lige ændre det du har lyst til derned af.

Ydermere SKAL der ligge verdana.ttf i /fonts/verdana.ttf! Uden den virker det ikke.
Det er MEGET vigtigt at der IKKE er nogle tomme linjer over eller under <?PHP og ?> - ellers virker det ikke.

Du kan selv rode med det.

<?PHP

// Bredde på selve "stjerne området", hvor pointene tegnes.
$starWidth = 180;
// Hvor langt inde fra venstre begynder selve stjernerne.
$indrykning = 10;


// Billederne du bruger
    $root = $_SERVER['DOCUMENT_ROOT'].''.dirname($_SERVER['PHP_SELF']).'/';
    $koelle_off_dir = $root.'images/koelle_off.png'; // Fx gennemsigtig kølle
    $koelle_on_dir = $root.'images/koelle_on.png';  // Fx ikke gennemsigtig kølle


// Indsætter text på emnet $picture
function writeText($text, $x, $y, $align = 'left', $color = 'black', $font_size = '10', $angle = '0', $font = 'verdana.ttf') {
    global $picture;
    global $root;
    $white     = imagecolorallocate($picture, 255, 255, 255);
    $grey     = imagecolorallocate($picture, 128, 128, 128);
    $black     = imagecolorallocate($picture, 0, 0, 0);   

    $color = $$color;
    $bbox = imagettfbbox($font_size, $angle, "fonts/$font", $text);
   
    $textWidth = $bbox[2] - $bbox[0];   
    switch ($align) {
        case "right":
            $x -= $textWidth;
            break;
        case "center":
            $x = $x - ($textWidth / 2);
            break;
    }   
    imagettftext($picture, $font_size, $angle, $x, $y, $color, "$root/fonts/$font", "$text");
}



    // Laver vote
    $vote = $vote * 10;
    $width = ceil(($starWidth / 100) * ($vote)) + $indrykning;
    $text = ''.$vote.'% i orden!';
   
   
   
    // Initialisere billede.
    header("Content-Type: image/png");


   

    // Get new sizes   
    list($offWidth, $offHeight, $type, $attr) = getimagesize("$koelle_off_dir");
    // Create the image
    $picture = ImageCreateFromPNG("$koelle_off_dir");
   
   
    $onPicture = ImageCreateFromPNG("$koelle_on_dir") or die("Der skete en fejl...");
    imagecopyresized($picture, $onPicture, 0, 0, 0, 0, $width, 40, $width, 40);
   
   
   
    // Indsætter text på billedet
    writeText($text, 196, 38, "right", "black", 8, 0, "verdana.ttf");

    if($vote >= 90) {
        writeText("Dolph.dk anbefalet!", 2, 10, "left", "black", 8, 0, "gunplay.ttf");
    }
    writeText($text, 196, 38, "right", "black", 8, 0, "verdana.ttf");

    imageinterlace($picture);
    imagepng($picture, "", "95");
    imagedestroy($picture);
    imagedestroy($onPicture);
    exit;



?>
Avatar billede pvtsommer Nybegynder
07. april 2006 - 09:44 #8
Ellers er det i øvrigt som jensgram siger. :) - Hvis du vil sikre dig at brugerne ikke kan stemem flere gange, kan du fx have en tabel kaldet

user_vote med id, vote og brugerid.

Så kan du kontrollere op på om brugeren har stemt, og eventuelt opdatere hans stemme (men husk også at trække den gamle stemme fra, og ligge den nye stemme til i den tabel jensgram foreslår.)
Avatar billede pvtsommer Nybegynder
07. april 2006 - 09:47 #9
I øvrigt vil du med mit script skulle bruge følgende i stedet:
(bemærk at mit script er lavet med scoren fra 1-10, så hvis du fx kun kan 1-5, skal du gange din rating med to.

echo '<img src="drawrating.php?vote='.$row['rating'].'" alt="">

i stedet for:
for ($i = 0; $i < $row['rating']; $i++) {
    print '*';
}
Avatar billede zurekk Nybegynder
07. april 2006 - 16:13 #10
Pytsommer > Det ser sgu pænt ud! Men det tør jeg ikke bevæge mig ud i lige nu =P
Kan være jeg kigger på det senere hen.
Avatar billede pvtsommer Nybegynder
07. april 2006 - 16:44 #11
;) - Du skriver bare hvis du vil have hjælp.

Fik du SQL-tingen til at virke?
Avatar billede zurekk Nybegynder
09. maj 2006 - 20:15 #12
sss
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester