Textpattern CMS support forum
You are not logged in. Register | Login | Help
- Topics: Active | Unanswered
#1 2007-06-01 18:53:12
- g-sus23
- New Member
- Registered: 2007-06-01
- Posts: 8
[de-de] GET Parameter in schöne URLs umwandeln
Ich suche nach einer Möglichkeit , mehrere EIGENE GET parameter in einem selbstgeschriebenen Plugin in eine schöne URL umzuwandeln, TXP selber hat ja eine URL Funktion , die vermutlich damit kollidiert … gibt es da irgendeine Möglichkeit z.B. für eine bestimmte Sektion diesen Mechanismus zu unterbinden um dann selber auf die URL zuzugreifen ?
lg & vielen Dank für die HIlfe
Offline
Re: [de-de] GET Parameter in schöne URLs umwandeln
Ein Handler für den Event ‘pretext’ kann beliebige Funktionen vor der URL-Interpretation durch Textpattern durchführen. Setzt dieser Eventhandler $out['id']
oder $out['s']
, verwendet der Rest von Textpattern die so vorgegebene Artikel-ID oder Sektion und versucht nicht, selbst aus der sauberen URL nützliches zu extrahieren.
Offline
#3 2007-06-01 20:45:31
- g-sus23
- New Member
- Registered: 2007-06-01
- Posts: 8
Re: [de-de] GET Parameter in schöne URLs umwandeln
hammer , thnx für die schnelle antwort, hilft !
Offline
#4 2007-06-01 23:49:58
- g-sus23
- New Member
- Registered: 2007-06-01
- Posts: 8
Re: [de-de] GET Parameter in schöne URLs umwandeln
bräuchte da kurz noch mal hlp
register_callback(‘test’, ‘pretext’);
hab ich das ding registiert ( wird auch aufgerufen)
Das ist meine “Test” Funktion
function test()
{
global $out;
$out[‘s’] = ‘products’;
$out[‘id’] = 0;
}
aber irgendwie schert er sich da 0 drum, ansatz ?
Offline
Re: [de-de] GET Parameter in schöne URLs umwandeln
Da hast du recht, ich war zu voreilig.
Richtig ist, dass du die gewünschten Artikel-IDs, Sektionsnamen oder alles andere, was preText()
in
makeOut() erzeugt, in den globalen $_GET- oder $_POST-Arrays einträgst.
function test()
{
$_GET['s'] = 'products';
$_GET['id'] = 0;
}
So wird das wohl funktionieren.
Offline
#6 2007-06-02 11:15:10
- g-sus23
- New Member
- Registered: 2007-06-01
- Posts: 8
Re: [de-de] GET Parameter in schöne URLs umwandeln
damit bekomm ich das ganze auch auch nur prinzipiell ausgehebelt , oder ? Mein Ziel ist es ja nur eine section auszuhebeln …
Der Ansatz hilft ja nicht weiter , oder ? Weil der gesamte String nicht in products ist , oder ?
if (!(strpos($_GET[‘s’],‘products’) === false))
{
global $out;
$_GET[‘s’] = ‘products’;
$_GET[‘id’] = 1;
}
Die Frage ist , wie baut TXP dass dann weitergehend auf ? also wo liegt alles was hinter der Section im GET String ist ?
Offline
Re: [de-de] GET Parameter in schöne URLs umwandeln
Die gesamte Request-URI findest du in $_SERVER['REQUEST_URI']
. Von da weg musst du halt mit ein wenige Stringvergleicherei oder RegExp-Magie entscheiden, ob du an der übergebenen Adresse herumpfuschen musst oder sie unverändert durchreichst.
Eventuell machst du dir das Leben auch einfacher, wenn du erst später eingreifst. Nachdem preText()
die URL zerlegt hat und die Bestandteile in $pretext[]
abgelegt hat, wird in textpattern()
eine Seite mit den so gewonnen Parametern gebaut. Am Anfang gibt’s wieder einen Event, den du nutzen kannst.
Am leichtesten wird wahrscheinlich sein, du lernst den Ablauf von preText() über textpattern() in ./textpattern/publish.php ein wenig kennen, weil du doch recht spezielle Ansprüche umsetzen möchtest.
Offline
#8 2007-06-02 22:22:09
- g-sus23
- New Member
- Registered: 2007-06-01
- Posts: 8
Re: [de-de] GET Parameter in schöne URLs umwandeln
danke du hast einem armen verstörten php / typo3 developer weitergeholfen :) haha ( ich dachte man dürfte nicht so einfach auf $_SERVER variablen zugreifen :D
Offline