Nightstalker
ctrl+alt+del
|
Ok, ich hab in letzter Zeit viel gefragt, ich weiß... ich danke euch auch für die große Hilfe. Ich bin grad dabei 2 Webseiten zu machen und da ich das schon sehr lang nimmer gemacht hab und die pages doch etwas aufwändiger sind (von der Gestaltung) bitte ich euch um Mithilfe beim coden, das erspart mir stundenlange recherche im netzt die, wie in diesem fall noch nichtmal ein brauchbares Ergebnis gebracht hat...
Folgende Aufgabe:
Ich möchte eine Art Galerie realisieren, die soll folgendermaßen aussehen 1. klickt man auf "fotos" dann sollte eine Liste aller Galerien erscheinen und zwar in einer Tabelle die man von links nach rechts scrollen kann, jede Galerie soll 1 preview Bild haben und darunter soll der galeriename (ordnername) stehen
2. klickt man auf die jeweilige galerie in der liste soll ein 2. fenster geöffnet werden in dem alle VORSCHAUBILDER aus dem zugehörigen Galerieordner angezeigt werden (das Fenster sollte ebenfalls nur von links nach rechts scrollen und eine fixe größe haben
3. klickt man auf eines der Vorschaubilder sollte sich das zugehörige Originalbild in einem eigenen Fenster öffnen (die Bilder liegen wiederum in einem eigenen Ordner).
Ordneraufbau: galeriename/thumbs/ u. galeriename/original/
Die Inhalte sind variabel, lediglich die Größe der Bilder ist schon berechnet (also thumbs haben eine gewisse max. Höhe und die Originale sind auf max 800 px breite gerechnet).
So ich hoffe mein Problem ist soweit verständlich, falls mir da jemande nen Tipp oder ein paar passende codeschnippel geben kann wär ich wirklich dankbar dafür! Wenn ihr mehr Angaben braucht nur sagen.
tia nighty
|
mh10001
Bloody Newbie
|
Hallo, Bezüglich der Ausgabe der einzelnen Kategorien kannst du mit opendir() und readdir() einfach das Verzeichnis in einer Schleife durchgehen und nach einer Prüfung mit is_dir() den entsprechenden Namen zurückgeben. Beispiele dazu findest du zum Beispiel hier in den Kommentaren. Die Ausgabe des Preview-Bildes ist natürlich davon abhängig, wie dieses abgelegt wird. Ist dieses seperat abgelegt oder soll ein bestimmtes oder zufälliges Bild aus der Galerie ausgegeben werden? zu 2: Den Kategorienamen kannst du beispielsweise als GET-Parameter an ein PHP-Script übergeben (gegebenenfalls mit urlencode()). Nachdem du überprüft hast, ob auch ein gültiger Galeriename übergeben wurde (bspw. mit preg_match() und is_dir()) ist das weitere Vorgehen dann eigentlich das selbe wie beim ersten Punkt, nur dass es dieses mal nicht um Verzeichnisse geht. Gegebenenfalls kannst du mit getimagesize() noch überprüfen, ob es sich bei den Dateien auch wirklich um ein Bild handelt. zu 3: Hierbei gehe ich einfach einmal davon aus, dass der Bildname mit dem des Vorschaubild übereinstimmt. In diesem Fall kannst du diesen auch einfach per GET-Parameter übergeben und gegebenfalls nach einer Überprüfung (bspw. mit preg_match() , is_file() und gegebenenfalls wieder getimagesize()) diesen mit dazugehöriger Pfadangabe in einem img-Tag ausgeben. MfG mh1001
|
Nightstalker
ctrl+alt+del
|
huch, das ist viel php auf einmal  also readdir usw. hab ich mir schon gedacht nur wie ich das genau mach weiß ich noch nicht, ich kenn wohl die einzelnen funktionen aber ich bin einfach nicht zum coden geschaffen, ich kapier eben meistens nicht wie das dann (vorallem mit- und ineinander) funktioniert. also mit opendir mach ich mein verzeichnis auf, mit readdir les ich es aus also z.b. erst mal den galerie ordner, den les ich mit readdir aus, oder? dann sollt ich z.b. galerie 1 - 5 rausbekommen weil meine ordner z.b. so heißen. Soweit ist es noch einigermaßen klar nun soll aber in einer Zelle 1. der ordnername (also galeriename) als textausgebenen werden und dazu das preview bild (dieses heißt immer prev.jpg und liegt direkt im galerie_n ordner. Das wär mal also die erste hürde  Nun sollt man es anklicken können und dann soll ein fenster öffnen, darin wird dann mit open u. readdir der jeweilige thumbnailordner geöffnet, also wwi z.b. /galerie/galerie_1/thumbnail und dessen Inhalt soll dann in einer zelle ausgegeben werden (also die bilder) in dem fall ohne text. Und zum schluss soll dann beim anklicken eines bildes das originalbild geladen werden, dieses liegt im ordner /galerie/galerie_1/original Das macht mir die meisten sorgen, wie kann ich sicherstellen dass auch das richtige original geladen wird? Müssten die dazu gleich heißen oder wie kann man das machen? Pff. ich sollt das echt mal ernsthaft lernen, bin aber glaub ich einfach nicht der typ dafür, das macht mich immer ganz ... waa.  danke!
|
rettich
Legendwaffle, waffle!
|
schau dir den code von "tom's galerie" auf http://www.tomshaus.de/ an. der macht genau das. auslesen von verzeichnis, anlegen von thumbs zu jedem bild, dynamischer aufbau der galerie anhand der verzeichnisstruktur, browsen, resizen usw. hth
|
Nightstalker
ctrl+alt+del
|
thx, das könnt nützen, am besten gehts eh mit learning by doing, wenn ich mal die schnippel hab kann ichs meistens eh zusammenstoppeln wie ichs brauch. ich meld mich wenn ich fragen hab
|
Spikx
My Little Pwny
|
Alternative zu opendir() etc.: Class Dir verwenden.
|
Nightstalker
ctrl+alt+del
|
Hallo, nun brauch ich nochmal eure Hilfe... Ich hab nun mein Bilder Script soweit fertig bis auf EIN Problem!!! Meine Thumbnails sind (klarerweise) verzerrt... momentan werden die einfachh nur per $bilder[] = '<img src="'.$pfadbild.'' . $bild . '" class="rahmen" width="160" height="120">';
erzeugt, das isteinfach aber eben nicht gut. Ich brauch da ein Script dass mir die Thumbs proportional, innerhalb eines max. Bereichs (also z.B. 100 x 80 px) sakliert und anzeigt. Hab schon ein paar Ansätze aber nix womit ich fertig geworden wäre... hm. Hat jemand ne Idee wie ich das schnell und unkompliziert lösen könnte??
|
noizemaker
-192.5C <3
|
Vielleicht kannst du das ganze so lösen? ... mein vorschlag so hab ichs auf meiner page # table settings for images display
define('ROWS', 3);
define('COLS', 3);
# thumbnail demensions
define('THMBWIDTH', 100);
define('THMBHEIGHT', 100);
# gallery title
define('TITLE', "deinname");
// display thumbnails
function display_thumbnails($imgs) {
global $file, $start, $section;
$total = count($imgs);
// get rid of redundant table rows
$math = count(array_slice($imgs, $start, $section)) / COLS;
$rows = is_int($math) ? $math : ceil($math);
navigate_images($total);
print('<table id="display_thumbnails" cellpadding="0" cellspacing="0">'."\r\n");
for($i = 0; $i < $rows; $i++) {
print('<tr>');
for($n = 0; $n < COLS; $n++) {
$index = $start++;
$image = $index < $total ? $imgs[$index] : ' ';
print('<td style="width: '. THMBWIDTH .'px; height: '. THMBHEIGHT .'px;">'."\r\n");
if($image != ' ') {
$imgloc = rawurlencode($file.'/'.$image);
print('<a href="gallery.php?src='.$imgloc.'&size=full">');
print('<img src="gallery/imgsrc.php?src='.$imgloc.'" alt="'.$image.'" />');
print('</a>'."\r\n");
}
else
echo $image;
print('</td>');
}
print('</tr>'."\r\n");
}
print('</table>'."\r\n");
navigate_images($total);
}
mfg
|
Nightstalker
ctrl+alt+del
|
Ob ich das in mein bestehendes Scribt bringe? Ich bin ja nicht so der Experte auf dem Gebiet
|
Luzandro
Here to stay
|
momentan werden die einfachh nur per
$bilder[] = '<img src="'.$pfadbild.'' . $bild . '" class="rahmen" width="160" height="120">';
erzeugt, das isteinfach aber eben nicht gut. stimmt, denn abgesehen davon, dass es verzerrt ist, schau ich mir die seite mit meiner langsamen verbindung sicher nicht öfter als einmal an  Hab schon ein paar Ansätze aber nix womit ich fertig geworden wäre... hm. in dem fall wäre es praktisch zu wissen, was diese ansätze sind und wo das problem war wenn die gd-library installiert ist, solltest du per php thumbnails von deinen bildern generieren können, falls diese noch nicht existieren: http://at.php.net/manual/de/functio...pyresampled.phpin dem ausschnitt von cyber2k sehe ich jetzt auf die schnelle nichts, wo du thumbnails _erzeugst_ bzw. bilder skalierst? so wie ich das sehe, sollten die bilder hier ja schon die entspr. größe haben
|
Nightstalker
ctrl+alt+del
|
Naja eigentlich wollte ich es OHNE eigene Thumbs machen, also einfach nur "verkleinert" darstellen, sehr zu deinem Leidwesen  Grund ist der dass es einfach zu bedienen sein soll, d.h. man soll später per Ordnerupload einfach eine komplette Galerie erstellen können ohne sich um Thumbs gedanken machen zu müssen. Das funktioniert imho aber nicht anders oder doch?
|
Spikx
My Little Pwny
|
Naja, es funktioniert auch so, dass du die Bilder bei jeden request verkleinern lässt.
|
Nightstalker
ctrl+alt+del
|
das heißt? und geht wie?
|
Spikx
My Little Pwny
|
|
Nightstalker
ctrl+alt+del
|
Das klingt gut, nun aber noch eine kleine Frage... in meinem Script werden die Bilder von denen Thumbs erzeugt werden erst ausgelesen aus dem Ordner und dann in ein Array übergeben, wie bekomm ich das geregelt. Würd es reichen <img src= "thumb.php?src=$files&wmax=150&hmax=100&quality=90&bgcol=FF0000"> </img>
anzugeben, dabei ist $files die Variable in der die Bilder leigen bzw. das Array... ähm, ja so irgendwie hald  Oder muss ich da noch was andres machen? Ne oder?
|