Go to main content

Textpattern CMS support forum

You are not logged in. Register | Login | Help

#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

#2 2007-06-01 20:01:17

wet
Developer Emeritus
From: Schoerfling, Austria
Registered: 2005-06-06
Posts: 3,340
Website GitHub Mastodon

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

#5 2007-06-02 07:15:37

wet
Developer Emeritus
From: Schoerfling, Austria
Registered: 2005-06-06
Posts: 3,340
Website GitHub Mastodon

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

#7 2007-06-02 12:43:24

wet
Developer Emeritus
From: Schoerfling, Austria
Registered: 2005-06-06
Posts: 3,340
Website GitHub Mastodon

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

Board footer

Powered by FluxBB