"Seitenweise Blättern" (Probleme mit URL Verknüpfungen)


Clemens

Mitglied
Servus!

Also so ganz hab ich das glaub ich noch net verstanden... drum versuch ich´s mal kurz mit meinen Worten...

Ist
- die Seiten werden per Hand erstellt... z.B. (seite1.php seite2.php... seite(n).php)
- die Navigation wird per Hand um die neue Seite (...seite(n+1).php...) erweitert

Soll
- Erstellung der neuen Seite -> dynamische Erweiterung der Navigation um diesen Link

Stimmt des so?

vg Clemens

PS: Bin wohl a weng langsam heut... so wie der vorherige Post hätt ich mir das dann auch vorgestellt. Man könnt auch das betreffende Verzeichnis in $array einlesen, dann hat man ja auch die Gesamtanzahl... und dann durch iterieren mit seite_1... seite_2 usw...
 
Zuletzt bearbeitet:

girlie

Grünschnabel
@Gumbo
Hm, ich wollte den Code von Dir gerade mal in XAMPP testen, aber ich bekomme lediglich nur folg. Fehlermeldung ausgegeben (und ich habe keine Ahnung was ich diesbezüglich ändern muss):
Parse error: parse error, unexpected ')', expecting T_STRING or T_VARIABLE or '$' in F:\\XAMPP\htdocs\TEST_blaettern_2\test.php on line 12

In Zeile 12 steht lediglich das hier:
);



@Clemens
Also so ganz hab ich das glaub ich noch net verstanden... drum versuch ich´s mal kurz mit meinen Worten...

Ist
- die Seiten werden per Hand erstellt... z.B. (seite1.php seite2.php... seite(n).php)
- die Navigation wird per Hand um die neue Seite (...seite(n+1).php...) erweitert

Soll
- Erstellung der neuen Seite -> dynamische Erweiterung der Navigation um diesen Link

Stimmt des so?

vg Clemens

PS: Bin wohl a weng langsam heut... so wie der vorherige Post hätt ich mir das dann auch vorgestellt. Man könnt auch das betreffende Verzeichnis in $array einlesen, dann hat man ja auch die Gesamtanzahl... und dann durch iterieren mit seite_1... seite_2 usw...
Ja, das stimmt so!

Kannst Du mir bitte detailierter erklären wie ich das mit dem "$array einlesen" machen müßte?
 

Gumbo

Erfahrenes Mitglied
Fehler sind natürlich nie auszuschließen. Das „…“ sollte übrigens eine horizontale Ellipse („“) werden.
 

Clemens

Mitglied
Guddn abend!

Dann würd ich des IMHO so machen

PHP:
   if ($handle = opendir('.')) {	   
	   // Verzeichnis durchgehen und Array $alleDateien mit den Dateinamen füllen
		while (false !== ($datei = readdir($handle))) {   
			// Alle Dateien einlesen ausser den vom 'include' Script
			if ( $datei != "." && $datei != ".." && $datei != "foo.nav.inc.php") {		       
				$alleDateien[] = $datei;
			}
		}
	   closedir($handle);
	}
			
	
	// aktueller Dateiname
	$dateiname = end( explode ("/", $_SERVER['PHP_SELF'] ) );
	
	// aktuelle Arrayposition
	$position = array_search($dateiname, $alleDateien );
	
	// Sind wir noch am Anfang? Nein, dann gib das aus...
	if ( $dateiname != reset ( $alleDateien )  ) {
		echo '<a href="'.$alleDateien[ $position - 1 ].'">zurück</a> ';
	}
	
	// alle Links ausgeben... den aktuellen FETT
	foreach( $alleDateien as $key => $value ) {
		$bold = ( $dateiname == $value ) ? "style='font-weight:bold'" : "";
		echo '<a href="'.$value.'" '.$bold.'>Seite '.($key + 1).'</a> ';
	}
	
	// Sind wir noch nicht am Ende?  Nein, dann gib das aus...
	if ( $dateiname != end ( $alleDateien )  )
		echo '<a href="'.$alleDateien[ $position + 1 ].'">vor</a> ';

oder man nimmt ein assoziatives Array, das man von Hand erweitert. Dafür kann man aber den Seiten andere Namen geben, anstatt sie einfach nur zu nummerieren...

PHP:
$alleDateien = array (
		"foo_1.php" => "Ich bin der erste!",
		"foo_2.php" => "Zweiter",
		"foo_3.php" => "Letzter :-("
		 );
		 
	$schluessel = array_keys($alleDateien);
	
	// aktueller Dateiname
	$dateiname = end( explode ("/", $_SERVER['PHP_SELF'] ) );
	
	// aktuelle Arrayposition
	$position = array_search($dateiname, $schluessel );
	
	// Sind wir noch am Anfang? Nein, dann gib das aus...
	if ( $dateiname != reset ( $schluessel )  ) {
		echo '<a href="'.$schluessel[ $position - 1 ].'">zurück</a> ';
	}

	foreach( $alleDateien as $key => $value ) {
		$bold = ( $dateiname == $key ) ? "style='font-weight:bold'" : "";
		echo '<a href="'.$key.'" '.$bold.'>'.$value.'</a> ';
	}
	
		// Sind wir noch nicht am Ende?  Nein, dann gib das aus...
	if ( $dateiname != end ( $schluessel )  )
		echo '<a href="'.$schluessel[ $position + 1 ].'">vor</a> ';

vg Clemens
 

girlie

Grünschnabel
LOL, wenigstens habe ich die beiden Scripte von Clemens jetzt so einigermaßen verstehen können u. zwar vornehmlich auch nur wg. der noch zusätzl. eingebunden Funktionserklärungen. Thx. (das Ganze ist doch mein "1ter" PHP Programmierversuch überhaupt, u. da checke ich halt ohne viel zusätzlich Erklärungen ansonsten leider noch nicht allzuviel, sorry!)

OK, mit diesen beiden Scripten würden jetzt also zumindest schon einmal die direkten Seitenaufrufe so funktionieren wie ich das haben möchte.

Aber: wie bekomme ich das Ganze jetzt auch noch "haargenauso" mit bzw. in "meinem" Script aus meinem Eröffnungspost hin :confused: weil das meinige Script eben noch etliche zusätzliche Funktionen hat, u. welche ich nun mal alle auch gerne haben möchte.

Folgendes kann mein Script zusätzlich:

1.) "Zur ersten Seite" & "Zur letzten Seite" (außer halt nur jeweils den "zurück" & "vor" Funktionen)

2.) es kann nur eine bestimmt festgelegte Seitennavigationsanzahl anzeigen, hier z.B. ist die max. Ausgabeanzahl auf "5" Links festgelegt (plus natürlich jeweils "eine Seite vor", "eine Seite zurück", "eine Seite weiter" u. "zur letzen Seite"):

«Erste Seite <Eine Seite zurück 3 4 5 6 7 Eine Seite weiter> Letzte Seite»

und wenn man auf Seite "6" wechseln würde, da dann halt:

«Erste Seite <Eine Seite zurück 4 5 6 7 8 Eine Seite weiter> Letzte Seite»

etc.

3.) es zeigt jeweils immer im ersten Navigationsfeld auf welcher von wievielen Gesamt-Seiten man sich gerade befindet, z.B. so:
"Seite: 6 von 238"

4.) Es macht automatisch immer, genau den Link der jeweiligen Seite auf der man sich gerade befindet "NICHT" anklickbar (weil das ja keinen Sinn ergeben würde)

5.) Es holt sich die URL´s zum verlinken direkt aus der Datenbank (Mysql, oder auch einer Text-Datenbank - u. beide Datenbank-Versionen habe ich bereits angelegt ;) na ja, wenigstens etwas das ich inzwischen selber hinbekommen habe *freu*)

6.) das komplette optische Außenrum-Design dafür ist bereits fertig


Öhm, meint Ihr das es irgendwie möglich ist mein Script konkret so Startklar zu bekommen? Und falls "ja", würde mir dann bitte jemand erneut dabei behilflich sein? (u. mit eventl. halt wieder "detaillierten" Schritt für Schritt Erklärungen, falls ich´s halt nicht gleich auf Anhieb kapieren sollte) Hm, Clemens, Du vielleicht erneut? :rolleyes: Das wäre echt cool...