Willkommen Gast. Bitte Einloggen oder Registrieren
 
Sprache wählen:
 
 
Statistik Version 20 online.

  ÜbersichtHilfeSuchenEinloggenRegistrieren  
 
Seitenindex umschalten Seiten: 1
Thema versenden Drucken
Reihenfolge der URL-Parameter für Anzeige ändern (Gelesen: 3213 mal)
hr3
Global Moderator
*****
Offline


Es gibt nichts Gutes/
außer: Man tut es. E.Kästner

Beiträge: 1126
Germany
Geschlecht: male
Reihenfolge der URL-Parameter für Anzeige ändern
22.04.10 um 11:13:56
 
Ich verwende ein Gallerie-Programm, bei dem die Parameter von unterschiedlichen Stellen in unterschiedlichen Reihenfolgen und Kombinationen angegeben werden. Die gewünsche, weil übersichtlichste Anzeigefolge wäre
   Programm?Verzeichnis&Bild&Modus&usw.

Dafür gibt es diverse Lösungsansätze. Ich habe eine Variante gewählt, die so nah wie möglich am Standard bleibt (wenig Modifikationen an wenigen Stellen, keine Änderung an der Speicherlogik). Dafür werden die Daten soweit erforderlich jeweils vor Anzeige mit den aktuellen Einstellung neu aufbereitet. So beteht die Möglichkeit zum Probieren.

Die Steuerung erfolgt über Anweisungszeilen in der der Tabelle Dynamische URLs.

Code:
// die folgenden 4 Anweisungen können in beliebiger Folge und Anzahl angebeben werden und wirken bis zur nächsten Anweisung bzw. bis zum Ende.
// folgende Parameter in Anzeigen nach vorne verschieben
// folgende Parameter in Anzeigen nach hinten verschieben
// folgende Parameter nicht Anzeigen
// folgende Parameter in Uebergabe-Reihenfolge anzeigen
0
#p1
// folgende Parameter in Anzeigen nach vorne verschieben
a1
a2
// folgende Parameter in Uebergabe-Reihenfolge anzeigen
1
// folgende Parameter in Anzeigen nach hinten verschieben
e1
// folgende Parameter nicht Anzeigen
n1
n2
// folgende Parameter in Anzeigen nach vorne verschieben
a3
a4
// folgende Parameter in Uebergabe-Reihenfolge anzeigen
2
// folgende Parameter in Anzeigen nach hinten verschieben
e2
e3
// folgende Parameter in Uebergabe-Reihenfolge anzeigen
3 



Ein passender Testdatensatz kann mit diesen Parametern erzeugt werden ?p1=1&e2=2&a2=3&n1=4&e1=5&a1=6

Den Parameter p1 für die Speicherung aktivien und für die Anzeige dann deaktivieren um zu zeigen, dass auch ursprünglich gespeicherte Werte, die nicht mehr in der Tabelle stehen, angezeigt werden.

Die n*-Parameter bewirken eine Speicherung, ohne im Moment angezeigt zu werden.


Modifikationen ausschließlich in func/func_pattern_matching.php

Code:
...
fclose ( $pattern_file );
unset  ( $pattern_file );
// nur einmal aufbereiten (am besten in admin.php und in config.php schreiben)
unset($tmp_url_parameter);
$iv=-9999;
$ih=10000;
$in=1;

foreach ($url_parameter as $value1) {
 if     ($value1=="// folgende Parameter in Anzeigen nach vorne verschieben" ) {$kz="v";}
 elseif ($value1=="// folgende Parameter in Anzeigen nach hinten verschieben") {$kz="h";}
 elseif ($value1=="// folgende Parameter nicht Anzeigen"                     ) {$kz="n";}
 elseif ($value1=="// folgende Parameter in Uebergabe-Reihenfolge anzeigen"  ) {$kz=" ";}
 elseif ($kz=="v") {$tmp_url_parameter[$iv++]    =$value1;}
 elseif ($kz=="h") {$tmp_url_parameter[$ih++]    =$value1;}
 elseif ($kz=="n") {$tmp_url_parameter["n".$in++]=$value1;}
 }

#if ((isset($_GET["echo"]))&&(isset($tmp_url_parameter))) {
# ksort($tmp_url_parameter);
# echo "<p><font color='red'>tmp_url_parameter: ";
# print_r($tmp_url_parameter);
# echo "<br>";
# }
//------------------------------------------------------------------------------
function pattern_matching_reverse ( $meta , $value ) // only for site_name_reverse
 {
  //------------------------------------------------------------------
// wenn Reihenfolge-Steuerungsdaten vorhanden und mehr als ein Parameter
if ((isset($GLOBALS["tmp_url_parameter"]))&&(strpos($value,"&"))) {
 parse_str (substr($value,strpos($value,"?")+1) , $tmp_parameter);
 unset($tmp_parameter1);
 $kz=0;
 $i=1;

 foreach ($tmp_parameter as $key=>$value1) {
  $x=array_keys($GLOBALS["tmp_url_parameter"],$key);
  if ($x[0]) {$kz=1; if (substr($x[0],0,1)!="n") {$tmp_parameter1[$x[0]]=$key."=".$value1;}}
  else {$tmp_parameter1[$i++]=$key."=".$value1;}
  }

 if ($kz) {
#if (isset($_GET["echo"])) {echo $value."<br>";}
  ksort($tmp_parameter1);
  $value=substr($value,0,strpos($value,"?")+1).implode("&",$tmp_parameter1);
#if (isset($_GET["echo"])) {echo $value."<hr>";}
  } 
 }
  if ( array_key_exists ( $value , $GLOBALS [ "global_site_names_reverse" ] ) )
   { return $GLOBALS [ "global_site_names_reverse" ] [ $value ]; }
... 



Die gelb markierten Zeilen einfügen. Zum Test kann # vor den deaktivierten Zeilen entfernt und last_hits.php?echo aufgerufen werden.
Zum Seitenanfang
« Zuletzt geändert: 23.04.10 um 12:48:40 von hr3 »  
 
IP gespeichert
 
Seitenindex umschalten Seiten: 1
Thema versenden Drucken