Text für PHP-Galerie auslesen...

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

  • Text für PHP-Galerie auslesen...

    Ich habe ein Galerie auf meiner Homepage, die momentan ohne Text ausgelesen wird. Die Galerie ist mir von jemand programmiert worden und ich habe auch Unterlagen darüber, daß eine Texteingabe mit vorgesehen ist und auch schon mal gemacht wurde. Nur leider leider habe ich darüber keine Unterlagen mehr.

    Ich versuche mal alles hinzuschreiben was ich weiß:

    Dies ist der Code für die Galerie:

    <?php

    include ("config.php");

    function anzeigen($g, $file)
    {
    global $hochformat, $querformat, $pfadzudenbildern, $pfadzurgallerie, $DOCUMENT_ROOT;

    $r = get_file_data ($file, $g);

    cache($g, $file, $r, 'beet');

    $hoehe = ($r['format'] == 'quer') ? $querformat['beet_hoehe'] : $hochformat['beet_hoehe'];
    $breite = ($r['format'] == 'quer') ? $querformat['beet_breite'] : $hochformat['beet_breite'];

    ?>
    <a href="gallerie_thumbnail/anzeigen.php?g=<?php echo $g ?>&s=<?php echo $file ?>" target="titel" onclick="oeffneGallerie();" class="<?php echo $r['format'] ?>">
    <?php
    echo '<img src="gallerie_kreativ/beetcache/' . $g . '+' . $file . '" style="border:0;" class="' . $r['format'] . '" width="' . $breite . '" height="' . $hoehe . '" />';
    ?>
    </a>
    <?php
    }

    function beschreibung ($g, $file)
    {
    $r = get_file_data ($file, $g);
    echo nl2br(trim($r['beschreibung']));
    return $r['beschreibung'];
    }
    ?>

    Wie Ihr unten seht ist da beschreibung angegeben. Damals wurde das dann in der Seite folgendermaßen eingegeben (.php Seite)

    <td valign="bottom">
    <p class="bild"><?php anzeigen("gewaechshaus", "Bild005.jpg"); ?><br /><?php beschreibung ("gewaechshaus", "Bild005.jpg"); ?></p>
    </td>

    Wenn ich es als Laie richtig verstehe, muß ich eine textdatei anlegen, die "beschreibung" heißt und im ordner "gewaechshaus" liegt. Diese Datei habe ich so geschrieben:

    bild005.jpg; Das ist ein Test

    Ihr könnte die Seite unter http://www.bunte-blumenwelt.de/gewaechshaus.php anschauen. Aber wenn ich auf das erste Bild klicke kommt zwar die Galerie aber kein Text.

    Falls jemand mir helfen kann und mit den wenigen Angaben nicht klar kommt, kann ich auch gerne den ganzen Ordner der Galerie per Mail schicken.

    Wäre super wenn mir jemand weiterhelfen kann. Habe leider von PHP keine Ahnung (langsam wird es besser), aber will auch nicht programmieren lernen, sondern meine Homepage gestalten.

    Viele Grüße
    Claudia

  • #2
    Salut Claudia,

    wenn du die PHP Tags verwenden würdest wäre die Sache doch schon besser lesbar !
    Wenn ich es als Laie richtig verstehe, muß ich eine textdatei anlegen, die "beschreibung" heißt und im ordner "gewaechshaus" liegt. Diese Datei habe ich so geschrieben:
    PHP-Code:
    function beschreibung ($g$file)
    {
        
    $r get_file_data ($file$g);
        echo 
    nl2br(trim($r['beschreibung']));
        return 
    $r['beschreibung'];

    Diese Fkt erwartet aber den Filenamen als Parameter, der kann heissen wie er will. Solange der Name korrekt ist und an die Fkt übergeben wurde. Woher kommt die Fkt get_file_data() ? Selber definiert ? Zeig mal die Definition der Funktion...

    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


    • #3
      Ich habe wirklich Stunden rumprobiert, bis ich hier reingeschrieben habe. Und was soll ich Euch sagen, JETZT habe ich noch in einen Uralt-Ordner des Computers eine Textdatei von damals gefunden.

      Und zwar ist es so daß ich für jedes Bild eine Textdatei anlegen muß:

      Also das Bild heißt bild001.jpg und dazugehörig brauche ich im gleichen Ordner eine bild001.txt .

      Dann wird der Text in der Galerie und unter dem Thumbnail ausgelesen. Unter der Seite http://www.bunte-blumenwelt.de/gewaechshaus.php kann man es anschauen.

      Ich hatte mal von Stadtaus.com eine Galerie angeschaut und da waren alle Texte in einer Datei. Darum dachte ich mir das muß hier auch so gehen. Na mal schauen ob ich es wirklich so machen möchte.

      Ist doch ziemlich mühselig für jedes Bild eine Textdatei zu erstellen. Außerdem habe ich dann das Problem, daß ich die Texte gar nicht unter den Thumbnails sondern nur in der Galerie haben möchte. Muß ich nochmal schauen, ansonsten würde ich mich nochmals melden.

      @Tobi: Danke für den Tip mit den PHP-Tags und für deine schnellen Bemühungen. Ich habe es jetzt gefunden und werde es bei Bedarf verwenden. Muß zur Erklärung dazusagen, ich habe seit eineinhalb Jahren nichts mehr an meiner Page gemacht, da es mich damals dermaßen aufgeregt hat. Hatte es mir bei weitem nicht so kompliziert vorgestellt. Bin Schriftsetzer und dachte wer Bücher machen kann, bringt auch eine Homepage hin. Ich bewundere wirklich wie ihr das alles könnt und versteht.
      Zuletzt geändert von Hypopotamus; 12.02.2007, 11:48.

      Kommentar


      • #4
        So nun nochmal ich, denn ich habe mir jetzt die ganzen Dateien
        angeschaut und denke mal da bin ich mit meinen Latein nun
        endgültig am Ende.

        Also die generelle Frage ist: <B>Kann man den Text nur in der
        Galerie erscheinen lassen und nicht unter den Thumbnails?
        Ist ja wahrscheinlich eine Programmierungssache. Denn ich gebe
        den Aufruf ja in der Seite an und da soll aber dann nichts
        erscheinen.

        Ich habe drei php-Dateien:

        1. Beet.php

        PHP-Code:
        <?php

        include ("config.php");

        function 
        anzeigen($g$file)
        {
            global 
        $hochformat$querformat$pfadzudenbildern
        $pfadzurgallerie$DOCUMENT_ROOT;

            
        $r get_file_data ($file$g);

            
        cache($g$file$r'beet');

            
        $hoehe = ($r['format'] == 'quer') ? $querformat['beet_hoehe'] :
        $hochformat['beet_hoehe'];
            
        $breite = ($r['format'] == 'quer') ? $querformat['beet_breite'] : 
        $hochformat['beet_breite'];

            
        ?>
            <a href="gallerie_thumbnail/anzeigen.php?g=<?php echo $g ?>
        &s=<?php echo $file ?>"
        target="titel"
        onclick="oeffneGallerie();" class="<?php echo $r['format'?>">
            <?php
            
        echo '<img src="gallerie_kreativ/beetcache/' $g 
        '+' $file '" style="border:0;"
        class="' 
        $r['format'] . '" width="' $breite '
        " height="' 
        $hoehe '" />';
            
        ?>
            </a>
            <?php
        }

        function 
        beschreibung ($g$file)
        {
            
        $r get_file_data ($file$g);
            echo 
        nl2br(trim($r['beschreibung']));
            return 
        $r['beschreibung'];
        }
        ?>
        Dann noch anzeigen.php

        PHP-Code:
        <?php

        include ("config.php");

        // wurde ein Gallerie ausgewählt?
        if (! isset($_GET['g']))
            
        message_die("Es wurde keine Gallerie ausgewählt.");

        // es wurde ein Gallerie ausgewählt und wir finden nun 
        ihren namen und den Pfad zum entsprechenden Ordner heraus
        $galleriename 
        str_replace ('_'' 'stripslashes($_GET['g']));    
        // _ im Namen durch ein Leerzeichen ersetzen


        // ist das auch wirklich ein Ordner, oder wurde Humbug übergeben?
        if (! is_dir($_SERVER['DOCUMENT_ROOT'] . $pfadzudenbildern $g))
            
        message_die("Die ausgewählte Gallerie exisitert nicht.");

        // es ist ein ordner, darum lesen wir alle dateinamen in dem ordner
        in ein array ein
        $list 
        = array();
        $dir opendir ($_SERVER['DOCUMENT_ROOT'] .
        $pfadzudenbildern $_GET['g']);

        while (
        $handle readdir($dir))
            if (!
        is_dir($folder $sub $handle) AND strpos($handle'.jpg'))
        // nur Dateien, die '.jpg' im Namen haben werden genommen
                
        $list[] = $handle;

        // alphabetisch sortieren
        sort ($list);
        reset ($list);

        // welches ist das aktuelle bild?
        if (! isset($_GET['s']) OR !in_array($_GET['s'], $list))
            
        $akt $list[0];
        else
            
        $akt $_GET['s'];

        // welches bild ist das vorherige, welches das nächste?
        if ($akt == $list[0])
        {
            
        $back '';
            
        $forw $list[1];
        }
        elseif (
        $akt == $list[intval(count($list) - 1)])
        {
            
        $back $list[intval(count($list) - 2)];
            
        $forw '';
        }
        else
        {
            while (
        $list[0] != $akt)
            {
                
        $back $list[0];
                
        $forw $list[2];
                
        array_shift($list);
            }
        }

        $akt get_file_data($akt$_GET['g']);    
                
        // $_GET['g'] ist der Galleriename
        $akt['html'] = '<img src="../images2/' .$_GET['g'] . '/' $akt['file'] . '

        width="' 
        $akt['width'] . '" height="' .  $akt['height'] . '
        " alt="' 
        htmlentities($akt['beschreibung']) . '" />';

        if (
        $forw != '')
        {
            
        $forw get_file_data($forw,  $_GET['g']);
            
        $hoehe = ($forw['format'] == 'quer') ? $querformat['th_hoehe'] : 
        $hochformat['th_hoehe'];

            
        $breite = ($forw['format'] == 'quer') ? $querformat['th_breite'] : 
        $hochformat['th_breite'];

            
        $forw['html'] = '<img src="thumbcache/' .$_GET['g'] . '+' 
        $forw['file'] . '" class="' $forw['format'] . '" width="' $breite 
        '" height="' $hoehe '" border="0" alt="' 
        htmlentities($forw['beschreibung']) . '" />';
            
        $forw['href'] = 'anzeigen.php?g=' $_GET['g'] . '&amp;s=' 
        $forw['file'];

            
        cache($_GET['g'], $forw['file'], $forw'thumb');
        }

        if (
        $back != '')
        {
            
        $back get_file_data($back,  $_GET['g']);
            
        $hoehe = ($back['format'] == 'quer') ? $querformat['th_hoehe'] : 
        $hochformat['th_hoehe'];

            
        $breite = ($back['format'] == 'quer') ? $querformat['th_breite'] : 
        $hochformat['th_breite'];

            
        $back['html'] = '<img src="thumbcache/' .$_GET['g'] . '+' 
        $back['file'] . '" class="' $back['format'] . '" width="' $breite '" 
        height="' 
        $hoehe '
        " border="0" alt="' 
        htmlentities($back['beschreibung']) . '" />';
            
        $back['href'] = 'anzeigen.php?g=' $_GET['g'] . '&amp;s=' 
        $back['file'];
            
        cache($_GET['g'], $back['file'], $back'thumb');
        }

        include (
        "template.html");

        ?>
        Und zuletzt noch config.php

        PHP-Code:
        <?php

        function message_die($m)
        {
            die(
        $m);
        }


        function 
        get_file_data ($file$gal)
        {
            global 
        $pfadzudenbildern$hochformat$querformat;

            
        $r['pfad'] = $_SERVER['DOCUMENT_ROOT'] . 
        $pfadzudenbildern.  $gal "/" $file;

            
        $r['file'] = $file;        
        // wird fürs thumbnailcachen benötigt, schlechte architektur ;(

            
        if (! is_file ($r['pfad']))
                
        message_die("Interner Fehler - cfg, Zeile 19: " $r['pfad']);

            
        $gid getimagesize($r['pfad']);

            
        $r['width'] = $gid[0];
            
        $r['height'] = $gid[1];

            if ( 
        $r['width'] == $hochformat['breite'] AND $r['height'] =
        $hochformat['hoehe'] )

                
        $r['format'] = "hoch";
            elseif ( 
        $r['width'] == $querformat['breite'] AND $r['height'] =
        $querformat['hoehe'] )
                
        $r['format'] = "quer";
            else
                
        message_die("Die Datei scheint in keinem Format zu 
        sein."
        );

            
        // beschreibung finden

            
        if (is_file($_SERVER['DOCUMENT_ROOT'] . $pfadzudenbildern $gal "/" 
        str_replace('.jpg''.txt'$file)))
                
        $r['beschreibung'] = file_get_contents($_SERVER['DOCUMENT_ROOT'] . 
        $pfadzudenbildern $gal "/" str_replace('.jpg''.txt'$file));

            return 
        $r;
        }

        function 
        cache ($gal$file$r$typ 'beet')
        {
            global 
        $hochformat$querformat$pfadzurgallerie
        $pfadzudenbildern;
            
            
        $cachedir = ($typ == 'thumb') ? 'thumbcache/' 'beetcache/';

            
            
        $cache $_SERVER['DOCUMENT_ROOT'] . $pfadzurgallerie 
        $cachedir $gal '+' $file;
            
        $orig $_SERVER['DOCUMENT_ROOT'] . $pfadzudenbildern 
        $gal '/' $file;

            if (!
        is_file($cache))
            {
                
        // hochformat
                
        if ($r['format'] == 'hoch')
                {
                    
        $breite $r['width'];
                    
        $hoehe $r['height'];
                    
        $neueBreite = ($typ == 'thumb') ? $hochformat['th_breite'] : 
        $hochformat['beet_breite'];
                    
        $neueHoehe = ($typ == 'thumb') ? $hochformat['th_hoehe'
        $hochformat['beet_hoehe'];
                }
                
        //querformat
                
        if ($r['format'] == 'quer')
                {
                    
        $breite $r['width'];
                    
        $hoehe $r['height'];
                    
        $neueBreite = ($typ == 'thumb') ? $querformat['th_breite'] : 
        $querformat['beet_breite'];
                    
        $neueHoehe = ($typ == 'thumb') ? $querformat['th_hoehe'
        $querformat['beet_hoehe'];
                }

                
        // JPG erstellen
                
        if (function_exists("ImageCopyResampled"))        // GDLib version 2
                
        {
                    
        $altesBild=ImageCreateFromJPEG($orig);
                    
        $neuesBild=Imagecreatetruecolor($neueBreite,$neueHoehe);
                    
        ImageCopyResampled($neuesBild,$altesBild,
        0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);

                }
                else                                            
        // GDLib version 1
                
        {
                    
        $altesBild=ImageCreateFromJPEG($orig);
                    
        $neuesBild=ImageCreate($neueBreite,$neueHoehe);
                    
        ImageCopyResized($neuesBild,$altesBild,0,0,0,0,
        $neueBreite,$neueHoehe,$breite,$hoehe);
                }

                
        ImageJPEG($neuesBild$cache);
            }
            
            return 
        true;
            
        }


            
        $pfadzudenbildern "/bunte-blumenwelt/images2/";        
        // slash am ende!
            
        $pfadzurgallerie "/bunte-blumenwelt/gallerie_thumbnail/";        
        // slash am ende!

            
        $hochformat['breite'] = 404;
            
        $hochformat['hoehe'] = 538;
            
        $querformat['breite'] = 538;
            
        $querformat['hoehe'] = 404;

            
        $hochformat['th_breite'] = 60;
            
        $hochformat['th_hoehe'] = 80;
            
        $querformat['th_breite'] = 80;
            
        $querformat['th_hoehe'] = 60;


            
        $hochformat['beet_breite'] = 102;
            
        $hochformat['beet_hoehe'] = 133;
            
        $querformat['beet_breite'] = 133;
            
        $querformat['beet_hoehe'] = 102;

        ?>
        Und dann natürlich noch das HTML-Template für die Galerie.

        VG Claudia
        Zuletzt geändert von Hypopotamus; 12.02.2007, 15:17.

        Kommentar


        • #5
          so und nun brich den code bitte um ...
          so das der Horizontale Scrollbalken verschwindet.

          nur ein kleiner vorschlag ^^
          Bitte Beachten.
          Foren-Regeln
          Danke

          Kommentar


          • #6
            Original geschrieben von Wyveres
            so und nun brich den code bitte um ...
            so das der Horizontale Scrollbalken verschwindet.

            nur ein kleiner vorschlag ^^
            So Scrollbalken ist weg. Und nun lacht Euch kaputt, weil ich es garantiert an völlig bescheuerten Stellen umbrochen habe.

            Ich hatte es aber genauso auf meinem Rechner.

            vG Claudia

            Kommentar


            • #7
              wenn ich das ganze dort richtig verstanden habe dann musst du eigentlich nichts weiter machen als.

              in dem ordner wo sich die txt datein befinden einfach txt datein anlegen die genau so heisen wie die bilder

              z.b. bild123.jpg ->bild123.txt

              was du in die TXT datei rein schreibst ist egal ^^

              und wenn ich diesen code richtig verstehe muss die TXT am selben ort sein wie das JPG?

              kann mich auch irren.

              aber ansonsten ... wasn quelltext
              Bitte Beachten.
              Foren-Regeln
              Danke

              Kommentar


              • #8
                Diese Frage hatte ich mir ja schon selbst beantwortet.

                Ich frage mich nur ob es eine Möglichkeit gibt, den Text nur in der Galerie und nicht unter dem Thumbnail erscheinen zu lassen? (siehe Beispiel http://www.bunte-blumenwelt.de/gewaechshaus.php ) Dieser Text unter dem kleinen Bild sollte weg bleiben. Nur in der Galerie soll er hin.

                Diesen Code hat jemand vor 2 Jahren für mich programmiert. (da selbst keine Ahnung).

                Möchte gerne bei meiner Galerie gestaltungsmäßig bleiben. Sonst muß ich mir eine Thumbnailgalerie anlachen, bei der ich nur noch die Bilder in einen Ordner kopiere.

                VG Claudia

                Kommentar


                • #9
                  wie sieht diese Datei aus -->gewaechshaus.php
                  Bitte Beachten.
                  Foren-Regeln
                  Danke

                  Kommentar


                  • #10
                    So sieht die aus:

                    PHP-Code:
                    <?php
                    // hier werden die funktionen eingebunden, die wir später nutzen 
                    werdenum bilder und beschreibungen anzuzeigen
                    include("gallerie_thumbnail/beet.php");
                    ?>

                    <html>

                    <head>
                    <title>Bunte Blumenwelt - der Digitalfotografie</title>

                    <link rel="stylesheet" type="text/css" href="css/blumenwelt_thumb.css">

                    <script type="text/javascript">
                    function oeffneGallerie(bild) {
                           newWin = window.open("", "titel", "scrollbars=0,toolbar=0,
                    location=0,directories=0,status=1,
                    resizable=0,width=800,height=600,top=0,left=0");
                           newWin.focus();
                           }
                    </script>

                    </head>

                    <body bgcolor="#F0F1EF">
                            <table width="70%" border="0" cellpadding="0" cellspacing="0" align="center">
                                <tr height="40">
                                    <td valign="top" height="40">
                                        <p></p>
                                    </td>
                                    <td width="0%" height="40"></td>
                                    <td height="40"></td>
                                    <td height="40"></td>
                                    <td height="40"></td>
                                </tr>
                                <tr>
                                    <td valign="bottom">
                                        <p class="bild"><?php anzeigen("gewaechshaus""Bild005.jpg"); ?><br />
                    <?php beschreibung ("gewaechshaus""Bild005.jpg"); ?></p>
                                    </td>
                                    <td width="0%"></td>
                                    <td valign="bottom">
                                        <p class="bild"><?php anzeigen("gewaechshaus""Bild005.jpg"); ?></p>
                                    </td>
                                    <td valign="bottom"><?php anzeigen("gewaechshaus""Bild005.jpg"); ?></td>
                                    <td valign="bottom"><?php anzeigen("gewaechshaus""Bild005.jpg"); ?></td>
                                </tr>
                            </table>
                        </body>
                    </html>
                    VG Claudia

                    Kommentar


                    • #11
                      PHP-Code:
                      <?php beschreibung ("gewaechshaus""Bild005.jpg"); ?>
                      wenn du das aus der datei raus schmeisst dürfte der text verschwinden.

                      müsste aber immernoch dann angezeigt werden wenn man auf das bild drauf klickt.
                      Bitte Beachten.
                      Foren-Regeln
                      Danke

                      Kommentar


                      • #12


                        Ich bin begeistert. Da wäre ich ja nie draufgekommen. Absolut perfekt, daß was ich brauche.

                        Viele Grüße
                        Claudia

                        Kommentar


                        • #13
                          das macht dann eingeldachtzig *rofl*

                          merke. das was man sucht steht nie da wo man es vermutet.
                          Bitte Beachten.
                          Foren-Regeln
                          Danke

                          Kommentar


                          • #14
                            Falls ich weiter so im dunklen tappe, können wir gerne ins Geschäft kommen. Wenn Du immer so schnell Lösungen parat hast

                            Kommentar


                            • #15
                              Jetzt muß ich nochmal nerven. Aber da nun der ganze Code schon
                              so dasteht ist es wohl sinnvoll die Frage hier anzuhängen.

                              Ich habe jetzt voller Euphorie ausprobiert, ob ich auch mehrere
                              Seiten machen kann bei denen die Bilder nur in einem Ordner liegen.
                              Komischerweise wenn ich die Seiten das erste Mal aufrufe geht es
                              und hinterher kommt die Fehlermeldung (Ist ein Strato-Server):


                              PHP-Code:
                              Interner Fehler cfgZeile 19
                              /
                              home/strato/www/bu/www.bunte-blumenwelt.de/htdocs/
                              bunte-blumenwelt/images2/hausl/Bild40.jpg 
                              Eines habe ich schon herausgefunden. Es gibt diesen Ordner
                              Beetcache und wenn ich den auf den Server lade, dann füllt er sich
                              mit den Bildern die ich auslese.


                              Die Zeile 19 habe ich auch gefunden. Das scheint folgende aus
                              der Datei beet.php zu sein:

                              PHP-Code:
                              echo '<img src="gallerie_thumbnail/beetcache/' $g '+' $file
                               
                              '"
                               style="border:0;" class="' 
                              $r['format'] . '" width="' $breite '"

                               height="' 
                              $hoehe '" />'
                              Da ist wohl irgendwas nicht so wie es sein sollte. Denn ich habe
                              immer wieder mal Probleme, daß er die Bilder nicht richtig ausliest.
                              Wenn es dann mal funktioniert ist es problemlos. Aber manchmal
                              habe ich sie schon 3mal unbenannt, weil er sie durcheinander
                              ausliest oder eben gar nicht.

                              Zu bewundern ist mein neuer Versuch unter:

                              http://www.bunte-blumenwelt.de/haus.php

                              Ziemlich oben steht Seite 2. Da draufklicken dann kommt:

                              http://www.bunte-blumenwelt.de/haus_1.php

                              Ich habe die zwei Seiten nochmal zusammenkopiert unter

                              http://www.bunte-blumenwelt.de/haus_3.php

                              Aber da wird es nicht besser. Den Beetcache habe ich übrigens auf
                              dem Server gelöscht. Dachte mir das hilft vielleicht. Tut es aber nicht.


                              Was meint Ihr?

                              VG Claudia

                              Kommentar

                              Lädt...
                              X