php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.02.2006, 18:31  
Gast
 
Beiträge: n/a
Standard einfaches galleryscript erweitern

hallo, bin neu hier und habe natürlich gleich eine frage, vielleicht könnt ihr mir helfen.

ich habe hier im forum folgenden einfachen gallerycode gefunden. er durchsucht ein thumbs verzeichnis und erzeugt links hintereinander auf die grossen versionen mit demselben namen nur im anderen verzeichnis.

PHP-Code:
<?php
// ordner festlegen 
$pfad "gallery/utz/"
$tpfad $pfad."thumbs/"

// bilder array 
$bilder = array(); 

// mit Absicht Thumb-Ordner durchsuchen
$handle=opendir($tpfad); 
while(
$file=readdir($handle))   { 
   if(
preg_match("/.(jpg)$/i"$file)){ 
      
$bilder[] = $file
    } 
}
closedir($handle);

// array sortieren
natsort($bilder); 

//ausgabe Bilder und Thumbs 
foreach ($bilder as $pic) {
    echo 
'[url="'.$pfad.$pic.'"][img]'.$tpfad.$pic.'[/img][/url]'
}

?>
zu sehen unter www.ackbytes.de ->screenshots

nun würde ich ihn gern erweitern. ich möchte das es nach einer bestimmten anzahl bilder einen zeilenumbruch gibt.

dann möchte ich gern eine blätterfunktion einbauen. so das ich quasi immer die gleiche anzahl bilder auf dem screen habe.

ich include das obige script in ein css layout - möchte also das ganze innerhalb des includeten scriptes funktioniert.

vielleicht könnt ihr mir ja einen hinweis geben womit es am leichtesten ist anzufangen. einen startpunkt oder evtl. sogar kleine codeschnipsel von denen ich lernen kann.

vielen dank für hilfe
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 21.02.2006, 18:36  
Gast
 
Beiträge: n/a
Standard

Benutze mal die Suchfunktion des Forums, denn dieses Thema wurde hier schon so oft besprochen, das muss nicht nochmal gemacht werden.

Gruß
phpfan
 
Alt 21.02.2006, 18:45  
Erfahrener Benutzer
 
Benutzerbild von DER_Brain
 
Registriert seit: 18.04.2005
Beiträge: 1.541
PHP-Kenntnisse:
Fortgeschritten
DER_Brain ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
  //...

//ausgabe Bilder und Thumbs 
$count 0;
$umbruch 10// Nach 10 Bildern Umbruch!
print "

"
// Absatz beginnen
foreach ($bilder as $pic) {
  echo 
'[url="'.$pfad.$pic.'"][img]'.$tpfad.$pic.'[/img][/url]'
  if(
$count%$umbruch == 0){
    print 
"
"
;
  }
  
$count++;

}
print 
"</p>"// Absatz beenden 

So in der Art müsste es gehen...
Korrigiert mich bitte, wenn irgendein fehler drin is, ich arbeite normalerweise immer mit umwegen, um den modulo operator zu umgehen... fragt mich ned warum


mfg
Andi
DER_Brain ist offline  
Alt 21.02.2006, 19:08  
Gast
 
Beiträge: n/a
Standard

hey danke das war ein guter tip hab es so gelöst nun mit modulo klappte es nicht da der nach dem ersten bild schon umbricht.

PHP-Code:
<?php

//ausgabe Bilder und Thumbs 
$count 1;
$umbruch 3;
print 
"

"
//absatz
foreach ($bilder as $pic) {
    echo 
'[url="'.$pfad.$pic.'"][img]'.$tpfad.$pic.'[/img][/url]'
    if(
$count == 3)
    {
        print 
"
"
;
        
$count 0;
    }
    
$count++;
}
print 
"</p>";
?>
jetzt ist nur noch die frage wie ich das am besten mit dem blättern hinbekomme werd nochmal die forensuche bemühen...
 
Alt 21.02.2006, 19:14  
Erfahrener Benutzer
 
Benutzerbild von DER_Brain
 
Registriert seit: 18.04.2005
Beiträge: 1.541
PHP-Kenntnisse:
Fortgeschritten
DER_Brain ist zur Zeit noch ein unbeschriebenes Blatt
Standard

jo, modulo ist rest...

wenn count gleich 0 ist dann ist folgende rechnung:


0:3 = 0 mit rest: 0

also bricht er da auch um.. deswegen müsst man wohl mit count = 1 anfangen!
DER_Brain ist offline  
Alt 21.02.2006, 19:26  
Gast
 
Beiträge: n/a
Standard

hm ich hab keinen plan wie ich das mit dem blättern löse... die tutorials hier gehen alle von mysql und LIMIT aus.

ich gebe die bilder ja quasi nachdem das array sortiert wurde nacheinander aus...

also ich denke ich müsste die aktuelle seite erfragen. ausrechnen welche bilder auf der seite zu sehen sind. (seite 1 z.b. bilder 1-10; seite 2 bilder 11-20 usw...)
und dann diese in ner forschleife abfragen... oder?

bin für jede hilfe, link, code etc. dankbar
 
Alt 21.02.2006, 20:15  
Gast
 
Beiträge: n/a
Standard

aaalso ich habe jetzt das script soweit fertig. allerdings ergibt sich ein anderes problem!
blättern ist richtig implementiert denke ich nur funktioniert es nicht wegen den links...

ich include die datei gallery.php in einen css abschnitt. die links die ich am ende erzeuge funktionieren aber nicht, da sie ja die datei direkt aufrufen und nicht die index.php.... wie kann ich das beheben? thx!


hier die fast fertig gallery.php

PHP-Code:
<?php
<?php

$bilder_pro_seite 
10;
$anzahl ""// gesamtbilder
$seiten "";


// anfang setzen
if (!isset($anfangsposition)) {
  
$anfangsposition 0;
}

// ordner festlegen 
$pfad "gallery/utz/"
$tpfad $pfad."thumbs/"

// bilder array 
$bilder = array(); 

// mit absicht thumb-ordner durchsuchen
$handle=opendir($tpfad); 
while(
$file=readdir($handle))   { 
   if(
preg_match("/.(jpg)$/i"$file)){ 
        
$anzahl++; // gesamtbilder zählen
      
$bilder[] = $file
    } 
}
closedir($handle);

// array sortieren
natsort($bilder); 

//ausgabe bilder und thumbs 
$count 1;
$umbruch 3// bilder bis umbruch pro zeile


print "

"
//absatz
  
for ($i=$anfangsposition$i<($bilder_pro_seite+$anfangsposition); $i++) {
   
    echo 
'[url="'.$pfad.$bilder[$i].'"][img]'.$tpfad.$bilder[$i].'[/img][/url]';

    if(
$count == 3)
    {
        print 
"
"
;
        
$count 0;
    }
    
$count++;
    }
print 
"</p>";

// links erzeugen am ende

if($anfangsposition 0) {
  echo 
"<a href=\"gallery/utz/gallery.php?anfangsposition=0\">[erste seite]</a>";
  
$back=$anfangsposition-$bilder_pro_seite;
  if(
$back 0) {
    
$back 0;
  }
  echo 
"<a href=\"gallery.php?anfangsposition=$back\">[eine seite zur&uuml;ck]</a>";
 }

if(
$anzahl>$bilder_pro_seite) {
  
$seiten=intval($anzahl/$bilder_pro_seite);
  if(
$anzahl%$bilder_pro_seite) {
    
$seiten++;
  }
}
for (
$i=1;$i<=$seiten;$i++) {
  
$fwd=($i-1)*$bilder_pro_seite;
  echo 
"<a href=\"gallery.php?anfangsposition=$fwd\">$i</a>";
}
if(
$anfangsposition $anzahl-$bilder_pro_seite) {
  
$fwd=$anfangsposition+$bilder_pro_seite;
  echo 
"<a href=\"gallery.php?anfangsposition=$fwd\">[eine seite weiter]</a>";
  
$fwd=$anzahl-$bilder_pro_seite;
  echo 
"<a href=\"gallery.php?anfangsposition=$fwd\">[letzte seite]</a>";
}
?>

?>
 
Alt 21.02.2006, 20:20  
Erfahrener Benutzer
 
Registriert seit: 20.01.2005
Beiträge: 1.557
PHP-Kenntnisse:
Fortgeschritten
Buhmann ist zur Zeit noch ein unbeschriebenes Blatt
Buhmann eine Nachricht über ICQ schicken Buhmann eine Nachricht über MSN schicken
Standard

Zitat:
Zitat von ulfster
hm ich hab keinen plan wie ich das mit dem blättern löse... die tutorials hier gehen alle von mysql und LIMIT aus.

ich gebe die bilder ja quasi nachdem das array sortiert wurde nacheinander aus...

also ich denke ich müsste die aktuelle seite erfragen. ausrechnen welche bilder auf der seite zu sehen sind. (seite 1 z.b. bilder 1-10; seite 2 bilder 11-20 usw...)
und dann diese in ner forschleife abfragen... oder?

bin für jede hilfe, link, code etc. dankbar
machs so wie bei den mysql beispielen, nur dass du die arbeit von LIMIT die funktion array_slice übernehmen lässt

Ps.: Ich könnte schwören, das vorhin schonmal geschrieben zu haben...
Buhmann ist offline  
Alt 21.02.2006, 20:59  
Gast
 
Beiträge: n/a
Standard

hmm hab es nun wie oben gepostet gelöst, jetzt ist allerdings mein problem das er auf der letzten seite 3x zuviel die schleife durchläuft.

ich habe es probiert so zu lösen

PHP-Code:
<?php
print "

"
//absatz
  
for ($i=$anfangsposition$i<($bilder_pro_seite+$anfangsposition); $i++) {

    if(
$i+$anfangsposition>$anzahl)  break;
    
    echo 
'[url="'.$pfad.$bilder[$i].'"][img]'.$tpfad.$bilder[$i].'[/img][/url]';

    if(
$count == 3)
    {
        print 
"
"
;
        
$count 0;
    }
    
$count++;
    }
print 
"</p>";
?>
das funktioniert aber nicht ): also ich habe anzahl immer 17 bilder. 10 bilder auf einer seite.

wenn ich anfangsposition auf 7 stelle geht alles noch, jeder wert darüber is einmal zuviel in der schleife... wie kann ich da abbrechen? der versuch mit

if($i+$anfangsposition>$anzahl) break;

funktioniert leider nicht ):
 
Alt 21.02.2006, 21:09  
Gast
 
Beiträge: n/a
Standard

for ($i=$anfangsposition; $i<($bilder_pro_seite+($anzahl%$anfangsposition)); $i++)

modulo hat mir geholfen, ist also doch nicht immer so schlecht script funktioniert nun! dank an alle die mir geholfen haben hoffe die posts helfen anderen newbies auch
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Apache um Funktionalität erweitern Plague Server, Hosting und Workstations 5 14.08.2007 15:30
Queries dynamisch um Tabellen Präfixe erweitern Basti Datenbanken 3 15.05.2006 16:32
Tabelle erweitern mit PHP Script PHP Tipps 2007 7 07.11.2005 20:18
Blätterfunktion erweitern PHP Tipps 2007 2 01.11.2005 11:31
SELECT um eine Bedingung erweitern ?! Datenbanken 2 22.10.2005 10:09
Einfaches Gästebuch PHP Tipps 2005-2 4 12.10.2005 19:07
Einfaches Warenkorbsystem.... ??? PHP Tipps 2005-2 2 05.10.2005 14:43
Suche jemanden der mein Forum erweitern kann Beitragsarchiv 7 27.07.2005 16:25
[Erledigt] Einfaches Hinweissfeld? HTML, Usability und Barrierefreiheit 2 14.06.2005 00:39
[Erledigt] Dynamisches Menü erweitern?? PHP Tipps 2005 1 19.03.2005 14:41
[Erledigt] textarea mittel PHP erweitern? PHP-Fortgeschrittene 10 09.02.2005 17:04
ein einfaches Formular.. patr1k PHP Tipps 2005 10 01.02.2005 11:02
Mit php eine bestehende html-tabelle erweitern PHP Tipps 2004 1 12.07.2004 08:51
Einfaches Forum mit Trennleisten! PHP Tipps 2004 1 19.06.2004 13:32

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php blätterfunktion erweitern

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:04 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.