Bitte um Hilfe beim erweitern meiner Gallery

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Bitte um Hilfe beim erweitern meiner Gallery

    Hi!

    Ich habe meine Seite ja mit einem Freund und diversen PHP-Skripten erstellt, da ich bei PHP noch nicht so gut bin.

    1. Nun würde ich es aber gerne haben, das unter den Bildern in meiner Gallery zusätzlich angezeigt wird "xx mal angeklickt"

    Also das man sieht wie oft das Bild angeklickt wurde, mehr nicht.


    2. Ich habe meine Seite ja bei funic.de gehostet da ich dort unbegrenzten kostenlose Webspace habe, dieser ist leider nicht so schnell wie kostenpflichtiger.

    Aus diesem Grund würde ich die Gallery gerne so haben, das anstatt auf einer Gallery-Seite ALLE Bilder jeweils nur 12 angezeigt werden, und oben und unten kleine links "1-2-3...." zu den nächsten Seiten, wo die weitern 12Bilder sind.


    Zu dem ganzen PHP kann ich leider nicht viel genau sagen, da ich dazu nicht viel beigeragen habe muss ich ehrlich eingestehen, und da mein freund nun im urlaub ist und wenig Zeit auch generell hat bin ich ein wenig aufgeschmissen. Aber vielleicht könnt ihr euch ein wenig in den Quelltext einlesen und habt die Lösung für meine Wünsche? Wäre echt klasse!


    Hier der Gallery.php Quelltext, wenn ihr sonst Quelltexte braucht sagt doch einfach bescheid:

    <? include("header.php");
    srand((double)microtime()*1000000); ?>
    <img src="images/gallery.gif" align="right" alt="" hspace="3" vspace="3">
    <br><br><br><br>
    <?
    $gallerien=array();
    $verz=dir("gallery");
    while($entry=$verz->read()) {
    if ($entry=="." || $entry=="..") continue;
    if (is_dir("gallery/".$entry)) {$gallerien[]=$entry;}
    }
    $i=0;
    if (count($gallerien)>0) { ?>
    <table width="100%" cellpadding="5" cellspacing="5" border="0">
    <?
    rsort($gallerien);
    foreach($gallerien as $gallery) {
    if ($i==2) $i=0;
    if ($i==0) {
    echo "<tr>";
    }
    ?>
    <td align="center">
    <table cellspacing="0" cellpadding="5" border="0" width="325">
    <tr>
    <td class="ueberschrift" align="center">
    <? $tmp=explode(" ",$gallery); $zahl=array_shift($tmp); echo implode(" ",$tmp); ?>
    </td>
    </tr>
    <tr>
    <td class="onlyborder" align="center"><?
    $anz=0;
    $bilder=array();
    $verz=dir("gallery/".$gallery);
    while($entry=$verz->read()) {
    if ($entry=="." || $entry=="..") continue;
    if (is_file("gallery/".$gallery."/".$entry)) {$anz++; $bilder[]=$entry;}
    }
    ?><a href="showgallery.php?gallery=<?=$gallery?>"><img width="300" height="140" src="vorschau.php?dat=gallery/<?=$gallery?>/<?=$bilder[rand(0,$anz-1)]?>" border="0" hspace="0" vspace="0" alt="<?=$gallery?>"></a><br>
    <?
    if (file_exists("gallery/".$gallery.".dat")) {
    $inhalt=file("gallery/".$gallery.".dat");
    echo implode("<br>",$inhalt)."<br>";
    }
    ?> <i>(<?=$anz?> Bilder)</i><a name="<?=($zahl-2)?>"></a>
    </td>
    </tr>
    </table>
    </td>
    <?
    if ($i==1) {
    echo "</tr>";
    }
    $i++;
    }
    if ($i==1) {
    echo "<td><br></td></tr></table>";
    }
    else
    {
    echo "</table>";
    }
    }
    include("bottom.php"); ?>
    Und der Quellcode der Bildvorschau.php glaube die ist auch wichtig dafür?

    <?
    $im=imagecreatefromjpeg($_GET['dat']);
    $w=imagesx($im);
    $h=imagesy($im);
    if ($w>$h)
    {
    $nw=125;
    $nh=$h/$w*125;
    }
    else
    {
    $nh=125;
    $nw=$w/$h*125;
    }
    $image = imagecreatetruecolor(125,125);
    $farbe_body=imagecolorallocate($image,0,0,0);
    imagefill($image,0,0,$farbe_body);
    imagecopyresampled ($image, $im, (125-$nw)/2, (125-$nh)/2, 0, 0, $nw, $nh, $w, $h);

    header("Content-Type: image/jpeg");
    ImageJpeg($image,"",75);
    ImageDestroy($im);
    ImageDestroy($image);

    ?>

  • #2
    1. halb so wild ... pack die Bilder samt Pfad in eine DB, dann bau einfach noch ein Feld "clicks" dazu; das dann bei jedem Aufruf erhöht wird ("update bild set clicks=clicks+1 where id_bild=". $id_bild)

    2. schon 100x gefragt. Such einfach im Forum nach "seitenweise anzeigen". Die ersten paar Ergebnisse werden nur Verweise auf die Suche sein, aber irgendwo steht denn auch, wie man´s macht.
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      Oje ich als wirkliche PHP-Neuling...

      pack die Bilder samt Pfad in eine DB
      Zur Info, ich habe meine Bilder kostenlos bei funpic.de gehostet. Wie meinst du das dass ich sie jetzt in einen DB packen soll smat Pfad?


      dann bau einfach noch ein Feld "clicks" dazu; das dann bei jedem Aufruf erhöht wird
      Sorry aber da bin ich echt überfragt wie das gehn' soll...


      ("update bild set clicks=clicks+1 where id_bild=". $id_bild)
      Richtig auch mit dem Code kann ich nicht viel anfangen wüsste nicht wo ich den nun einbauen muss..sorry

      Kommentar


      • #4
        Ich würde die Vorschaubilder bereits als Thumbs auf den Server laden und
        diese nicht durch das Script erstellen lassen. Wenn du nämlich 1000
        User gleichzeitig auf der Gallery hast, dann wird die Performance wohl etwas in die Knie gehen.
        Du willst nur 12 Bilder anzeigen lassen ? Kein Problem -->
        Du übermittelst im Query_String eine Var (z.B. index), die das erste zu
        ladende Bild bezeichnet. Dann von diesem Bild eine Schleife 12 mal
        durchlaufen lassen und beim erneuten Durchlauf das nächste Bild wählen.
        Die Vorschaubilder in den href packen, damit ein Click darauf gleich das grosse Bild öffnet.
        Bei mir sehen die Bilder der Einfachheit halber so aus --> pics1_small.jpg (Vorschau) und pics1.jpg (grosses Bild).
        Die Vereinheitlichung des Namen vereinfacht die Darstellung der Bilder enorm,
        denn du musst nicht das gesamte Verzeichnis auslesen --> bei mehreren Usern gleichzeitig bestimmt schneller.

        Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar

        Lädt...
        X