Galerie Script umstellen

Dieses Thema Galerie Script umstellen im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von Gandalf_the_Grey, 24. Jan. 2005.

Thema: Galerie Script umstellen Hallo zusammen, ich habe derzeit ein größeres Problem. Ich leide (für mich echt selten) unter akkutem Zeitmangel....

  1. Hallo zusammen,

    ich habe derzeit ein größeres Problem. Ich leide (für mich echt selten) unter akkutem Zeitmangel. Das heißt ich habe privat wie geschäftlich eine Auslastung von 99%. (Bin ja froh das ich zumindest in den Pausen hier mal vorbei schauen kann.) Auf der anderen Seite habe ich ein Problem das ich schon seit langem vor mir her schiebe und das mir jetzt endgültig abzuschmieren droht. Deswegen wollte ich euch drum bitten mir wenn möglich zu helfen. Ich wäre dafür SEEEEHHHRRRR dankbar.

    Zunächst einmal worum es geht. Ich habe vor ca. 1,5 Jahren, als ich noch deutlich weniger Ahnung von PHP hatte als heute, (und heute ist es schon nicht sonderlich viel) ein Galerie Script für meine und die HP eines Freundes gesucht und auch gefunden. Sie war einfach gehalten (2 Scripte) und erfüllte ihren Zweck mehr als anständig. Worauf ich allerdings damals nicht geachtet hatte waren 2 Dinge a) das das Script zwingend Register Globals auf ON benötigt (was äußerst Risikohaft ist UND von meinem Hoster deaktiviert wurde, verständlicherweise) und b) das der Coder der das Entwickelt hat scheinbar seit 2003 keinen Support mehr dafür leistet. (zumindest antwortet er nicht auf PN, Forenbeiträge usw. zu diesem Thema). Eigentlich wollte ich mich nun daran machen entweder a) das Script zu überarbeiten (was ich schon einmal bezüglich der Sortiereihenfolge getan hatte) oder b) ein neues vergleichbares Script zu erstellen. Mittlerweile schiebe ich das recht lange vor mir her, allerdings kreischen jetzt 3 Freunde von mir, die die von mir überarbeitete Version des Scripts einsetzen.

    Von daher wäre ich froh wenn mir jemand helfen könnte.

    Der Quellcode des Projekts ist folgender:

    index.php
    Code:
    <?
    // $docRoot wird mit dem Wert von DOCUMENT_ROOT (zu finden in der Ausgabe der PHPInfo) zuzüglich des Galerie-Hauptverzeichnisses belegt
    $docRoot=/home/www/htdocs/myhomepage.de/galleries;
    $dirStructur = opendir($docRoot); 
    
    
    echo <form action=\index.php?op=choose\ method=\post\>; 
    echo <select name=\verzeichnis\>; 
    
    //////Anfang der Select-Box 
    $i = 0;
    
    /* Array mit Verzeichnissen einlesen */
    while ( $eintrag = readdir ( $dirStructur ) )
    { 
    $dirs[$i] = $eintrag;
    $i++;
    }
    
    /* Array sortieren */
    sort($dirs);
    
    /* Array durchlaufen */
    foreach ($dirs as $eintrag)
    {
    if ( is_dir($eintrag )
    && $eintrag != . 
    && $eintrag != .. 
    && eregi(thumbs, $eintrag)
    ) 
    echo <option value=\$eintrag\>.substr($eintrag, 0, -6); 
    }
    
    closedir($dirStructur); 
    
    echo </select>; 
    echo <input type=\Submit\ value=\Gallerie auswählen\>; 
    echo </form>;
    
    //////Ende der Select-Box 
    
    /* 
    mit der folgenden Bedingung wird geprüft, ob die Seite 
    erstmalig aufgerufen wird, damit sofort eine 
    Thumbnailvorschau gezeigt wird 
    */ 
    if(!isset($op)){ 
    $dirStructur=opendir($docRoot); 
    $eintrag=readdir($dirStructur); 
    while ( $eintrag = readdir ( $dirStructur ) )
    { 
    $dirs[$i] = $eintrag;
    $i++;
    }
    
    /* Array sortieren */
    sort($dirs);
    
    /* Array durchlaufen */
    foreach ($dirs as $eintrag)
    {
    if ( is_dir($eintrag )
    && $eintrag != . 
    && $eintrag != .. 
    && eregi(thumbs, $eintrag)
    ){ 
    $verzeichnis=$eintrag; 
    break; 
    }else{ 
    $eintrag=readdir($dirStructur); 
    } 
    } 
    closedir($dirStructur); 
    } 
    ///////Ende dieser Abfrage
    
    //////Die folgende Ausgabe erzeugt den Galerie-Titel (=Verzeichnisname des Thumbnailverzeichnisses ohne thumbs)
    echo <font face=\VERDANA,ARIAL,HELVETICA\><b>.substr($verzeichnis,0,-6).</b></font><br><font size=\-2\ face=\VERDANA,ARIAL,HELVETICA\>Zum Vergrößern auf das Bild klicken</font><br><br>;
    
    //////Jetzt wird die Tabelle mit den Thumbnails aufgebaut
    $count = 1;
    $index=0;
    $dirstring = $verzeichnis./;
    $mydir = dir($verzeichnis);
    
    echo <table border=0 cellpadding=0 cellspacing=10 style=border-collapse: collapse bordercolor=#111111 width=100%>;
    while(($file = $mydir->read()) != false) {
      if ($file != . && $file != ..) {
       if ($count == 1) {
         $endRow=</tr>;
         $fstring = substr($file, 0, -4);
         $display = $dirstring . $file;
         echo <tr><td width=33% align=center><a href=\./showImg.php?verz=.substr($verzeichnis,0,-6).&bild=.substr($file,3).&index=$index\><IMG border=\1\ src=\$display\></a><font face=\VERDANA,ARIAL,HELVETICA\ size=\- 2\><br>.substr($fstring,3).</font></TD>;
         $count++;
         $index++;
       }
       elseif ($count == 2) {
         $fstring = substr($file, 0, -4);
         $display = $dirstring . $file;
         echo <td width=33% align=center><a href=\./showImg.php?verz=.substr($verzeichnis,0,-6).&bild=.substr($file,3).&index=$index\><IMG border=\1\ src=\$display\></a><font face=\VERDANA,ARIAL,HELVETICA\ size=\- 2\><br>.substr($fstring,3).</font></TD>;
         $count++;
         $index++;
       }
       elseif ($count == 3) {
         $endRow=;
         $fstring = substr($file, 0, -4);
         $display = $dirstring . $file;
         echo <td width=33% align=center><a href=\./showImg.php?verz=.substr($verzeichnis,0,-6).&bild=.substr($file,3).&index=$index\><IMG border=\1\ src=\$display\></a><font face=\VERDANA,ARIAL,HELVETICA\ size=\- 2\><br>.substr($fstring,3).</font></TD></tr>;
         $count = 1;
         $index++;
       }
    
      }
    }
    echo $endRow</table>;
    $mydir->close();
    ?>
    
    shomImg.php
    Code:
    <?
    //die Dateinamen der Bilder werden in ein Array eingelesen
      $galArray=array();
      $mydir = dir($verz);
      while(($file = $mydir->read()) != false) {
       if ($file != . && $file != ..) {
         $galArray[]=$file;
       }
      }
      $mydir->close();
    
    // die Verweise für nächstes und vorheriges Bild werden erzeugt
      $nextPic=$index+1;
      $prevPic=$index-1;
      $noPics= count($galArray);
      if($nextPic >= $noPics){
       $anchorNext=;
       $anchorNextClose=;
      }else{
       $anchorNext=<a href=\showImg.php?verz=.$verz.&index=.$nextPic.&bild=.$galArray[$nextPic].\>;
       $anchorNextClose=</a>;
      }
      if($prevPic < 0){
       $anchorPrev=;
       $anchorPrevClose=;
      }else{
       $anchorPrev=<a href=\showImg.php?verz=.$verz.&index=.$prevPic.&bild=.$galArray[$prevPic].\>;
       $anchorPrevClose=</a>;
      }
    
    //Bild mit Navigationselementen wird angezeigt
      echo <div align=\center\>;
      echo <table>;
      echo <tr>;
      echo <td><div align=\center\>;
    
      //die navigation wird 2x gezeigt, nämlich über und unter dem bild
      //will man sie nur einmal haben, muss eine der beiden navigationen auskommentiert werden
      //anfang navigation oben
      echo $anchorPrev.vorheriges Bild.$anchorPrevClose. <a href=\index.php?op=choose&verzeichnis=.$verz.thumbs\>Zurück zur Galerie</a> .$anchorNext.nächstes Bild.$anchorNextClose.<br>;
      //ende navigatione oben
    
      echo <img src=\$verz/$bild\ border=\1\><br>; //das bild
    
      //anfang navigation unten
      echo $anchorPrev.vorheriges Bild.$anchorPrevClose. <a href=\index.php?op=choose&verzeichnis=.$verz.thumbs\>Zurück zur Galerie</a> .$anchorNext.nächstes Bild.$anchorNextClose;
      //ende navigatione unten
      echo </div>;
      echo <br></td>;
      echo </tr>;
      echo </table>;
      echo </div>;
    ?>
    
    Schön wäre es wenn es einer von euch schafft das Script zumindest auf Register Globals OFF umzuarbeiten, denn das wäre erstmal die Lösung. Vieleicht ist es ja auch möglich aus den 2 Scripten ein einziges zu machen, aber das wäre mir erstmal vollkommen egal. (würde ich nur ggf. so machen). Hat jemand die Zeit und die Lust mir unter die Arme zu greifen? Würde mich wirklich darüber freuen.
     
  2. *lach* Das kenn ich von früher noch. Ich habe das damals nicht genommen weil es für die Zwecke für die ich es benötige vollkommen oversized ist. Ein Admin Menü brauche ich nicht. Das Script muss/soll für DAU's Konfigurierbar sein und bleiben. Deswegen habe ich mich damals so über das o.g. Script gefreut: Es ist eben einfach und funktionabel. Conny ist schon dran wofür ich ihm wohl ewig dankbar bin. Auch dem guten Cledith danke ich für sein Angebot. Wenn Conny nichts dagegen hat würde ich ihn bitten die neue Version hier für alle zugänglich zu machen. (Wie gesagt nur wenn er nix dagegen hat von wegen Copyright). Ich danke allen schonmal jetzt GANZ GANZ herzlich. Ich hoffe das ich das irgendwann wieder gut machen kann.

    So und jetzt muss ich weiter. *winkundwegist*
     
  3. So, Conny sei dank ist mein Tag und mein Ar*** gerettet. Er hat sich die Mühe gemacht und mir damit echt einiges an Ärger erspart den ich sonst bekommen hätte. Also an dieser Stelle nochmal VIELEN VIELEN Dank Conny. Auch an Cledith nochmal danke für das Angebot. Jungs, das werde ich euch nicht vergessen. Wenn ihr mal meine Hilfe braucht nur bescheid sagen!!!!

    Da Conny sagte das er nichts dagegen hat den Quellcode hier zu posten werde ich den Quellcode der allgemeinheit nicht vorenthalten. Ich bitte darum das Copyright für Conny drin zu lassen (Ich habe das für ihn reingesetzt).

    Code:
    <?php
    // Bilder Galerie 1.0
    // COPYRIGHT NOTICE                              
    // All Rights Reserved.           
    // CONNY
    // URL: [url]http://www.immobilien4free.de[/url]
    
    
    /**
    * Pfad zum Galerie-Hauptverzeichnis (die index.php darf nicht im selben Verzeichniss liegen wie die Bilder/Thumnailverzeichnisse)
    */
    $docRoot=bildergalerien;
    /**
    * Erweiterung für Thumbs-Verzeichnisnamen
    */
    $thumb_dir_ext = thumbs;
    /**
    * Erweiterung für Thumbnailnamen
    */
    $thumb_file_ext = tn_;
    /**
    * Wie viele Thumbnails sollen pro Zeile gezeigt werden
    */
    $pic_in_row = 4;
    /**
    * Maximale Breite des Bilds
    */
    $max_width = 400;
    
    /**
    * existiert das Galerie-Hauptverzeichnis nicht, beenden wir hier das Script schon
    */
    $handle = (@opendir($docRoot)) ? opendir($docRoot) : die(Kann Galerie-Verzeichnis nicht finden!); 
    /**
    * Galerie-Hauptverzeichnis nach Galerien durchsuchen
    */
    $gal_array = false;
    while ($gal = readdir ($handle)) { 
      if ($gal == . || $gal == ..) continue;
    	if(!eregi($thumb_dir_ext,$gal)) continue;
    	/**
    	* Anmerkung: Ich hab mit is_file und is_dir schon schlechte Erfahrungen gemacht.
    	*      Daher mache ich es immer so.
    	*/
    	if($temp_handle = @opendir($docRoot./.$gal)) {
    		closedir($temp_handle);
    		$gal_array[] = ereg_replace($thumb_dir_ext,,$gal);
    		sort($gal_array);
    	}
    }
    closedir($handle);
    
    /**
    * Wenn Galerien existieren, diese als Options aufarbeiten
    */
    if($gal_array != false) {
    	$gal_option = ;
    	foreach($gal_array as $gal) {
    		$sel = (isset($_REQUEST['verzeichnis']) && $_REQUEST['verzeichnis'] == $docRoot./.$gal) ? selected : ;
    		$gal_option .=-><option value='. $docRoot./. $gal .'->. $sel .'>'. ereg_replace($thumb_dir_ext,,$gal) .'</option>';
    	}
    }
    /**
    * Existieren keine Galerien, STOP
    */
    else {
    	die(Im angegebenen Verzeichnis wurden keine Thumbnailgalerien gefunden!);
    }
    /**
    * Formular
    */
    $form =->
    	<form action=index.php method=POST>
    	 <input type=hidden name=op value=choose>
    	 <select name=verzeichnis style=width:100px>
    	 ->.$gal_option.'
    	 </select>
    	 <input type=submit value=Bitte Galerie auswählen>
    	</form>
    ';
    echo $form;
    
    /**
    * Thumbnailansicht
    */
    if(!isset($_REQUEST['pic'])) {
    	/**
    	* Wurde noch keine Galerie gewählt, wird die erste verfügbare angezeigt
    	*/
    	$thumb_dir	= (isset($_REQUEST['verzeichnis'])) ? $_REQUEST['verzeichnis'].$thumb_dir_ext : $docRoot./. $gal_array[0].$thumb_dir_ext;
    	$gal_dir	= (isset($_REQUEST['verzeichnis'])) ? $_REQUEST['verzeichnis'] : $docRoot./. $gal_array[0];
    	$handle 	= opendir($thumb_dir);
    	/**
    	* Galerienamen extrahieren
    	*/
    	$gal_name = ereg_replace($docRoot./,,ereg_replace($thumb_dir_ext,,$gal_dir));
    	
    	$i = 0;
    	$row =->';
    	$td_width = floor(100 / $pic_in_row);
    	/**
    	* Rows und Cells zussammenfügen
    	*/
    	while($file = readdir($handle)) {
    		if ($file == . || $file == ..) continue;
    		if(($i % $pic_in_row == 0) && $i > 1) $rows .=-></tr><tr>';
    		$pic = ereg_replace($thumb_file_ext,,$file);
    		$rows .=-><td width='.$td_width.'% align=center>
    					<p style=margin:1px><a href='.$PHP_SELF.'?verzeichnis='.$gal_dir.'&pic='.$pic.'><img border=0 src='.$thumb_dir.'/'.$file.' title=Zum Vergrößern bitte auf das Bild klicken alt=Zum Vergrößern bitte auf das Bild klicken></a></p>
    					<p style=margin:1px>'. ereg_replace($thumb_file_ext,,substr($file, 0, -4)) .'</p>
    				 </td>';
    		++$i;
    	}
    	
    	/**
    	* Ausgabe der Tabelle
    	*/
    	echo-><p style=font-family:VERDANA,ARIAL,HELVETICA; font-size:18><b>Galerie:->. $gal_name .'</b></p>
    		 <p style=font-family:VERDANA,ARIAL,HELVETICA; font-size:10>Zum Vergrößern bitte auf das Bild klicken</p>
    		 <br> <br>
    		 <table align=center border=0 cellpadding=0 cellspacing=10 style=border-collapse: collapse bordercolor=#111111 width=550>
    			<tr>'.$rows.'</tr>
    		 </table>	 
    	';
    }
    /**
    * Detailansicht
    */
    else {
    	/**
    	* Galerie in Array einlesen
    	*/
    	$handle = (@opendir($_REQUEST['verzeichnis'])) ? opendir($_REQUEST['verzeichnis']) : die(Die gewünschte Galerie existiert nicht!);
    	$i = 0;
    	while($pic = readdir($handle)) {
    		if ($pic == . || $pic == ..) continue;
    	 	$pic_array[]= $pic;
    		if($pic == $_REQUEST['pic']) $current_pic = $i;
    		++$i;
    	}
    	/**
    	* Navigations Links
    	*/
    	$next = $current_pic+1;
    	echo-><p style=font-family:VERDANA,ARIAL,HELVETICA; font-size:18><b>Galerie:->. ereg_replace($docRoot./,,$_REQUEST['verzeichnis']) .'</b></p>';
    	$next_link	= (count($pic_array) > 1 && $current_pic < (count($pic_array)-1)) ?-><a href='.$PHP_SELF.'?verzeichnis='.$_REQUEST['verzeichnis'].'&pic='.($pic_array[$next]).'><strong>Bild weiter ></strong></a>' :-><strong>Bild weiter ></strong>'; 
    	$prev = $current_pic-1;
    	$prev_link 	= (count($pic_array) > 1 && $current_pic >= 1) ?-><a href='.$PHP_SELF.'?verzeichnis='.$_REQUEST['verzeichnis'].'&pic='.($pic_array[$prev]).'><strong>< Bild zurück</strong></a>' :-><strong>< Bild zurück</strong>';
    	
    	/**
    	* Breite bestimmen
    	*/	
    	$size = @getimagesize($_REQUEST['verzeichnis'].'/'.$_REQUEST['pic']);
    	if($max_width != false) {
    		$width = ($size[0] > $max_width) ? $max_width : $size[0]; 
    	}
    	echo-><p align=center>'.$prev_link.'   '.$next_link.'</p>';
    	echo-><p align=center><img src='.$_REQUEST['verzeichnis'].'/'.$_REQUEST['pic'].' width='.$width.'></p>';
    	echo-><p align=center>'.$prev_link.'   '.$next_link.'</p>';
    }
    ?>
    
    Erklärung:

    Die Galerie besteht aus einer PHP Datei, nämlich der index.php in der die Thumbnailvorschau und die Select-Box für die Übersicht erzeugt werden und die das Originalbild zeigt und einen Link enthält, der zurück auf die aufrufende Galerie weist.

    Folgenden Vorbedingungen gelten:

    1. die Datei index.php liegt OBERHALB eines Verzeichnisses das die Bildergalerien enthält ,
    2. unterhalb dieses Verzeichnisses liegen die Verzeichnisse mit den eigentlichen Galerien,
    3. ebenfalls auf dieser Ebene liegen die Verzeichnisse mit den Thumbnails
    4. ein Thumbnailverzeichnis hat den gleichen Namen wie das zugehörige Galerie-Verzeichnis, es wird nur ein Wort z.B. thumbs direkt an den Namen gehängt (Bsp.: die Galerie heißt autos, dann muss das zugehörige Thumbnailverzeichnis autosthumbs heißen!).
    5. die Dateinamen der Thumnails heißen ebenso wie die Orginale, nur erhalten sie einen Namenszusatz (kann frei gewählt werden) an den Namen VORAN gestellt. (Beispiel: das Bild heißt freundin.jpg und der Namensvorsatz heißt tn_ , dann heißt das Thumbnail tn_freundin.jpg)

    Wenn noch jemand fragen hat so kann er sie gern hier stellen. Vieleicht pinnt ja ein lieber Mod diesen Beitrag an oder nimmt ihn mit in die FAQ auf.

    Nochmal VIELEN VIELEN HERZLICH Dank an Conny. :) :) :) :) :) :) :) :) :) :) :) :) :)
     
  4. OK,

    dann will ich aber meinen Senf auch noch dazugeben.

    1. Der Link im Copyright, den René gesetzt hat, existiert zwar schon, die HP ist aber noch im Aufbau.
    2. Für mich persönlich hätte ich die Sache ganz anders gelößt da:
    - Ich ein Fan von Template-Systemen bin
    - Generel PHP und HTML zu trennen versuche.
    - Ich normalerweise nach möglichkeit auf OO zurückgreife.

    Also bitte keine Anfragen warum hast du so und nicht so.

    Ich hab lediglich das vorhandene Script einigermaßen Renoviert, wenn auch nichts mehr vom Original übrig geblieben ist.

    gruss conny
     
  5. Hallo zusammen, wer in dem Script in der Galerie Ansicht einen Button haben möchte der ihn zurück zur Thumbnail Ansicht zurückführt der möge bitten folgenden Code oben austauschen. Habe das gestern zwischen Tür und Angel noch für einen Freund umgestrickt. Müsste funktionieren.

    Code:
    /**
    	* Navigations Links
    	*/
    	$next = $current_pic+1;
    	echo-><p style=font-family:VERDANA,ARIAL,HELVETICA; font-size:18><b>Galerie:->. ereg_replace($docRoot./,,$_REQUEST['verzeichnis']) .'</b></p>';
    	$next_link	= (count($pic_array) > 1 && $current_pic < (count($pic_array)-1)) ?-><a href='.$PHP_SELF.'?verzeichnis='.$_REQUEST['verzeichnis'].'&pic='.($pic_array[$next]).'><strong>Bild weiter ></strong></a>' :-><strong>Bild weiter ></strong>'; 
    	$back_link	=-><a href='.$PHP_SELF.'?verzeichnis='.$_REQUEST['verzeichnis'].'><strong>Zurück zur Galerie</strong></a>';
    	$prev = $current_pic-1;
    	$prev_link 	= (count($pic_array) > 1 && $current_pic >= 1) ?-><a href='.$PHP_SELF.'?verzeichnis='.$_REQUEST['verzeichnis'].'&pic='.($pic_array[$prev]).'><strong>< Bild zurück</strong></a>' :-><strong>< Bild zurück</strong>';
    	
    	/**
    	* Breite bestimmen
    	*/	
    	$size = @getimagesize($_REQUEST['verzeichnis'].'/'.$_REQUEST['pic']);
    	if($max_width != false) {
    		$width = ($size[0] > $max_width) ? $max_width : $size[0]; 
    	}
    	echo-><p align=center>'.$prev_link.'   '.$back_link.'   '.$next_link.'</p>
    	<p align=center><img src='.$_REQUEST['verzeichnis'].'/'.$_REQUEST['pic'].' width='.$width.'></p>
    	<p align=center>'.$prev_link.'   '.$back_link.'   '.$next_link.'</p>';
    }
    
     
  6. Hier nochmal eine aktualisierte Version des Galerie Scripts.
    Versuche das ganze gerade XHTML Strict tauglich zu machen.
    Vieleicht mache ich mich dann anschließend dran es auf
    Template Basis umzuheben. Das wird dann vermutlich
    XML, PHP, XLST und CSS sein.

    Code:
    <style type=text/css>
    #dropdown
    { 
    	width: 200px;
    }
    
    #rows
    {
    	text-align: center;
    }
    
    .rowcell
    {
    	margin: 1px;
    }
    
    #galname
    {
    	font-family: VERDANA,ARIAL,HELVETICA;
    	font-size: 18px;
    	font-weight: bold;
    }
    
    #hilfstext
    {
    	font-family: VERDANA,ARIAL,HELVETICA;
    	font-size: 10px;
    }
    
    #galerie
    {
    	text.align: center;
    	border: 0px #111111;
    	padding: 0px;
    	border-spacing: 10px
    	border-collapse: collapse;
    	width: 550px;
    }
    
    img
    {
    	border: 0px;
    }
    
    .center
    {
    	text-align: center;
    }
    </style>
    
    <?php
    // Bilder Galerie 1.0
    // COPYRIGHT NOTICE                                                           
    // Einige Rechte vorbehalten:
    // [url]http://creativecommons.org/licenses/by-nc-nd/2.0/ [/url]                    
    // CONNY
    // URL: [url]http://www.immobilien4free.de[/url]
    // Gandalf_the_Grey
    // URL: http//www.rene-charbonneau.de bzw. [url]http://www.markgrafschaft-nordmark.de[/url]
    
    /**
    * Pfad zum Galerie-Hauptverzeichnis (die index.php darf nicht im selben Verzeichniss liegen wie die Bilder/Thumnailverzeichnisse)
    */
    $docRoot=bildergalerien;
    /**
    * Erweiterung für Thumbs-Verzeichnisnamen
    */
    $thumb_dir_ext = thumbs;
    /**
    * Erweiterung für Thumbnailnamen
    */
    $thumb_file_ext = tn_;
    /**
    * Wie viele Thumbnails sollen pro Zeile gezeigt werden
    */
    $pic_in_row = 4;
    /**
    * Maximale Breite des Bilds
    */
    $max_width = 700;
    
    /**
    * existiert das Galerie-Hauptverzeichnis nicht, beenden wir hier das Script schon
    */
    $handle = (@opendir($docRoot)) ? opendir($docRoot) : die(Kann Galerie-Verzeichnis nicht finden!); 
    /**
    * Galerie-Hauptverzeichnis nach Galerien durchsuchen
    */
    $gal_array = false;
    while ($gal = readdir ($handle)) { 
      if ($gal == . || $gal == ..) continue;
    	if(!eregi($thumb_dir_ext,$gal)) continue;
    	/**
    	* Anmerkung: Ich hab mit is_file und is_dir schon schlechte Erfahrungen gemacht.
    	*      Daher mache ich es immer so.
    	*/
    	if($temp_handle = @opendir($docRoot./.$gal)) {
    		closedir($temp_handle);
    		$gal_array[] = ereg_replace($thumb_dir_ext,,$gal);
    		sort($gal_array);
    	}
    }
    closedir($handle);
    
    /**
    * Wenn Galerien existieren, diese als Options aufarbeiten
    */
    if($gal_array != false) {
    	$gal_option = ;
    	foreach($gal_array as $gal) {
    		$sel = (isset($_REQUEST['verzeichnis']) && $_REQUEST['verzeichnis'] == $docRoot./.$gal) ? selected : ;
    		$gal_option .=-><option value='. $docRoot./. $gal .'->. $sel .'>'. ereg_replace($thumb_dir_ext,,$gal) .'</option>';
    	}
    }
    /**
    * Existieren keine Galerien, STOP
    */
    else {
    	die(Im angegebenen Verzeichnis wurden keine Thumbnailgalerien gefunden!);
    }
    /**
    * Formular
    */
    $form =->
    	<form action=index.php method=post>
    	 <div>
    	 <input type=hidden name=op value=choose />
    	  <select name=verzeichnis id=dropdown>
    	  ->.$gal_option.'
    	  </select>
    	 <input type=submit value=Bitte Galerie auswählen />
    	 </div>
    	</form>
    ';
    echo $form;
    
    /**
    * Thumbnailansicht
    */
    if(!isset($_REQUEST['pic'])) {
    	/**
    	* Wurde noch keine Galerie gewählt, wird die erste verfügbare angezeigt
    	*/
    	$thumb_dir	= (isset($_REQUEST['verzeichnis'])) ? $_REQUEST['verzeichnis'].$thumb_dir_ext : $docRoot./. $gal_array[0].$thumb_dir_ext;
    	$gal_dir	= (isset($_REQUEST['verzeichnis'])) ? $_REQUEST['verzeichnis'] : $docRoot./. $gal_array[0];
    	$handle 	= opendir($thumb_dir);
    	/**
    	* Galerienamen extrahieren
    	*/
    	$gal_name = ereg_replace($docRoot./,,ereg_replace($thumb_dir_ext,,$gal_dir));
    	
    	$i = 0;
    	$row =->';
    	$td_width = floor(100 / $pic_in_row);
    	/**
    	* Rows und Cells zussammenfügen
    	*/
    	while($file = readdir($handle)) {
    		if ($file == . || $file == ..) continue;
    		if(($i % $pic_in_row == 0) && $i > 1) $rows .=-></tr><tr>';
    		$pic = ereg_replace($thumb_file_ext,,$file);
    		$rows .=-><td id=rows style=width:->.$td_width.'%;>
    					<p class=rowcell><a href='.$PHP_SELF.'?verzeichnis='.$gal_dir.'&pic='.$pic.'><img src='.$thumb_dir.'/'.$file.' title=Zum Vergrößern bitte auf das Bild klicken alt=Zum Vergrößern bitte auf das Bild klicken /></a></p>
    					<p class=rowcell>'. ereg_replace($thumb_file_ext,,substr($file, 0, -4)) .'</p>
    				 </td>';
    		++$i;
    	}
    	
    	/**
    	* Ausgabe der Tabelle
    	*/
    	echo-><p id=galname>Galerie:->. $gal_name .'</p>
    		 <p id=hilfstext>Zum Vergrößern bitte auf das Bild klicken</p>
    		 <br /> <br />
    		 <div class=center>
    		  <table id=galerie>
    		  <tr>'.$rows.'</tr>
    		  </table>
    		 </div>
    	';
    }
    /**
    * Detailansicht
    */
    else {
    	/**
    	* Galerie in Array einlesen
    	*/
    	$handle = (@opendir($_REQUEST['verzeichnis'])) ? opendir($_REQUEST['verzeichnis']) : die(Die gewünschte Galerie existiert nicht!);
    	$i = 0;
    	while($pic = readdir($handle)) {
    		if ($pic == . || $pic == ..) continue;
    		$pic_array[]= $pic;
    		if($pic == $_REQUEST['pic']) $current_pic = $i;
    		++$i;
    	}
    	/**
    	* Navigations Links
    	*/
    	$next = $current_pic+1;
    	echo-><p id=galname>Galerie:->. ereg_replace($docRoot./,,$_REQUEST['verzeichnis']) .'</p>';
    	$next_link	= (count($pic_array) > 1 && $current_pic < (count($pic_array)-1)) ?-><a href='.$PHP_SELF.'?verzeichnis='.$_REQUEST['verzeichnis'].'&pic='.($pic_array[$next]).'>Bild weiter ></a>' :->Bild weiter >'; 
    	$back_link	=-><a href='.$PHP_SELF.'?verzeichnis='.$_REQUEST['verzeichnis'].'>Zurück zur Galerie</a>';
    	$prev = $current_pic-1;
    	$prev_link 	= (count($pic_array) > 1 && $current_pic >= 1) ?-><a href='.$PHP_SELF.'?verzeichnis='.$_REQUEST['verzeichnis'].'&pic='.($pic_array[$prev]).'>< Bild zurück</a>' :->< Bild zurück';
    	
    	/**
    	* Breite bestimmen
    	*/	
    	$size = @getimagesize($_REQUEST['verzeichnis'].'/'.$_REQUEST['pic']);
    	if($max_width != false) {
    		$width = ($size[0] > $max_width) ? $max_width : $size[0]; 
    	}
    	echo-><p class=center>'.$prev_link.'   '.$back_link.'   '.$next_link.'</p>
    	<p class=center><img src='.$_REQUEST['verzeichnis'].'/'.$_REQUEST['pic'].' width='.$width.' /></p>
    	<p class=center>'.$prev_link.'   '.$back_link.'   '.$next_link.'</p>';
    }
    ?>
    
    P.S. Sind noch ein paar Kleinigkeiten die der Validator anmosert, aber da schau ich noch nach!
     
Die Seite wird geladen...

Galerie Script umstellen - Ähnliche Themen

Forum Datum
Web-Galerie mit Javascript Webentwicklung, Hosting & Programmierung 10. Aug. 2005
Bildergalerie mit PHP/JavaScript Webentwicklung, Hosting & Programmierung 2. Juni 2003
Fotogalerie deinstalieren Windows 7 Forum 30. Mai 2015
Fotogalerie Windows XP Forum 6. März 2013
Media Center Galerie Hardware 18. Juli 2009