Seite 1 von 1

header(LOCATION) und AMR

Verfasst: Sa 12. Jan 2013, 15:33
von qualtext
Hallo Contenido-Gemeinde,

ich benutze in einem Modul beispielsweise eine Weiterleitung per

Code: Alles auswählen

header('LOCATION:' . 'front_content.php?idart=1');
Leider greift das AMR an dieser Stelle nicht ein. Anstatt in der Adresszeile nun bspw. 'www.irgendwas.de/kategorie/artikeltitel.html' steht, generiert er die Adresse (je nach Kategorie in der das Modul aufgerufen wird):

Code: Alles auswählen

'www.irgendwas.de/zurzeitigeKategoerieInderDasModulAufgerufenWird/front_content.php?idart=1'.
Wie kann ich mit Header-Location arbeiten und dennoch die Umschreibung durch das AMR nutzen?
Hat da jemand einen Tipp für mich?

Vielen Dank
Qualtext

Re: header(LOCATION) und AMR

Verfasst: Sa 12. Jan 2013, 16:38
von xmurrix
Das AMR-Plugin sucht im Code nach bestimmten vorkommen von Frontend-URLs, wie

Code: Alles auswählen

href="front_content.php"
href='front_content.php'
action='front_content.php'
also nach Attribut/Wert Paaren, und ersetzt diese.

Wenn du im Modul eine Weiterleitung machen möchtest, verwende einfach folgendes:

Code: Alles auswählen

$aParams = array (
    'idart' => 1, 'lang' => $lang
);
$url = Contenido_Url::getInstance()->buildRedirect($aParams);
header('LOCATION:' .$url);
Du kannst auch nur die build() Methode verwenden

Code: Alles auswählen

...
$url = Contenido_Url::getInstance()->build($aParams);
...
build() generiert die URL ohne Protokoll + Host (foo/bar.html) und buildRedirect() inkl. Protokoll + Host (http://mydomain.com/foo/bar.html).

Gruß
xmurrix

Re: header(LOCATION) und AMR

Verfasst: Sa 12. Jan 2013, 17:12
von qualtext
Vielen Lieben Dank,

genau das habe ich gesucht!
Funktioniert super.

edit: Kann man einen Beitrag als gelöst markieren?

Re: header(LOCATION) und AMR

Verfasst: Sa 12. Jan 2013, 17:42
von Spider IT
xmurrix hat geschrieben:build() generiert die URL ohne Protokoll + Host (foo/bar.html) und buildRedirect() inkl. Protokoll + Host (http://mydomain.com/foo/bar.html).
build() mit 2. Parameter true macht das Gleiche wie buildRedirect().

Gruß
René