[2.0] LinkGenerator und Rewriting

Im Entwickler-Forum können Implementierungsdetails sowie Alternativen der Umsetzung diskutiert werden. // Here, developers can discuss implementation details of features of their projects.
Antworten
sammy8806
Beiträge: 13
Registriert: 22.07.2011, 20:18:58
Wohnort: Lemmitown
Kontaktdaten:

URL-Rewriting

Beitrag von sammy8806 » 16.10.2013, 22:43:48

Hallo,

ich versuche aktuell UrlRewriting ans laufen zu bringen. Funktioniert auch soweit fast.
Leider scheint der ChainedUrlRewritingOutputFilter Formular-Actions zum verändern, aber leider keine links.

Wo liegt der Fehler?

Aktivierung der Filter:

Code: Alles auswählen

APFtoolslinkLinkGenerator::setLinkScheme(new APFtoolslinkRewriteLinkScheme());

InputFilterChain::getInstance()->appendFilter(new APFcorefilterChainedUrlRewritingOutputFilter());
InputFilterChain::getInstance()->appendFilter(new APFcorefilterChainedUrlRewritingInputFilter()); 
Beispiel eines Links wo der OutputFilter nicht greift:
<a href="/index.php?page=impressum">Impressum</a>
Würde mich über Lösungsvorschläge sehr freuen.
Grüße
Steven

sammy8806
Beiträge: 13
Registriert: 22.07.2011, 20:18:58
Wohnort: Lemmitown
Kontaktdaten:

[2.0] LinkGenerator und Rewriting

Beitrag von sammy8806 » 17.10.2013, 01:03:58

Hallo,

ich habe festgestellt, das wenn ich den LinkGenerator zusammen mit dem RewriteLinkScheme benutze, bekomme ist der "Path" immer die aktuelle URL, jedoch ohne das Berücksichtigte Rewriting.
Im speziellen Fall ist das bei Verwendung des APFelSMS-Nav-Tags. Wenn man zum Beispiel des Rewriting aktiviert und dann in die Umgt-Verwaltung geht, ziehen sich die Parameter auf jede andere Seite mit die man über die Navigation aufruft.

Nach ein bisschen Recherche scheint es sich um ein generelles Problem zu handeln, welche dadurch entsteht, dass die Funktion URL::fromString die PHP-Funktion "parse_url" benutzt.

Was habt ihr für Lösungsideen?
Grüße
Steven

Benutzeravatar
dr.e.
Administrator
Beiträge: 4536
Registriert: 04.11.2007, 16:13:53

Re: [2.0] LinkGenerator und Rewriting

Beitrag von dr.e. » 17.10.2013, 19:44:44

Hallo Steven,

magst du bitte hierfür ein Issue im Tracker (http://tracker.adventure-php-framework. ... p_page.php) eröffnen. Dieses Forum wurde vor einiger Zeit durch den Tracker abgelöst. Danke!

Hast du bei der Konfiguration die notwendigen Änderungen in der Version 2.0 beachtet? URL-Rewriting konfiguriert sich in der index.php in 2.0 wie folgt:

Code: Alles auswählen

use APFcorefilterInputFilterChain;
use APFcorefilterChainedUrlRewritingInputFilter;

InputFilterChain::getInstance()->prependFilter(new ChainedUrlRewritingInputFilter());

use APFtoolslinkRewriteLinkScheme;
use APFtoolslinkLinkGenerator;

LinkGenerator::setLinkScheme(new RewriteLinkScheme()); 
Kannst du für dein Problem bitte in konkretes Beispiel posten? Im RewriteLinkScheme wird der Path entsprechend entfernt und an Hand der aufgelösten Query-Parameter entsprechend neu aufgebaut.
Viele Grüße,
Christian

Benutzeravatar
dr.e.
Administrator
Beiträge: 4536
Registriert: 04.11.2007, 16:13:53

Re: [2.0] LinkGenerator und Rewriting

Beitrag von dr.e. » 17.10.2013, 19:48:37

[MOD] Habe die beiden Themen zusammengeführt, da das selbe Thema behandelt wird.
Viele Grüße,
Christian

Benutzeravatar
dr.e.
Administrator
Beiträge: 4536
Registriert: 04.11.2007, 16:13:53

Re: [2.0] LinkGenerator und Rewriting

Beitrag von dr.e. » 17.10.2013, 19:53:55

Hallo Steven,

Code: Alles auswählen

<a href="/index.php?page=impressum">Impressum</a>
Hier greift der Filter vermutlich deshalb nicht, da das Pattern "/?" nicht gefunden wird. Schau dir mal ChainedUrlRewritingOutputFilter in der Zeile 49 an, dort wird kein "/index.php?" definiert und damit auch nicht ersetzt.

Aus meiner Sicht gibt es mehrere Wege zur Lösung: Generiere die Links der Navigation direkt mit dem LinkGenerator oder schreibe deinen eigenen Output-Filter und ergänze die Funktion des ChainedUrlRewritingOutputFilter dadurch um deine Anforderungen. Das APF geht an dieser Stelle von einem Standard-Layout aus und unterstützt demnach nur dieses generische Layout. Es bietet dir jedoch trotzdem eine einfache Art der Erweiterbarkeit an, wenn du es für dein Projekt brauchst.

Hoffe das hilft dir! :)
Viele Grüße,
Christian

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast