Hallo,
ich baue mir gerade eine Extension, die verschiedene Seiten mit Daten aus einer fremden Datenbank im Forum anzeigen soll.
Der Aufruf der Seiten erfolgt dann z.B. über forum/app.php/meine_seiten/seite1 oder forum/app.php/meine_seiten/seite2 usw.
Soweit funktioniert das schon.
Mein Problem ist, dass relative Links nicht mehr funktionieren, sobald eine meiner Seiten aufgerufen wurde, da ja dann alles relativ zu forum/app.php/meine_seiten/ aufgelöst wird, anstatt relativ zu forum/.
Habe ich z.B. im Header-Bereich einen Link eingebaut, der auf index.php zeigt, dann wird versucht forum/app.php/meine_seiten/index.php aufzurufen.
Die Frage wäre also, kann man extensions so konfigurieren, dass die URLs für die Seiten (Controller) direkt unter der Forums-Root liegen?
Danke
Extensions und relative Links
- tas2580
- Ehemaliges Teammitglied
- Beiträge: 3029
- Registriert: 01.07.2004 05:42
- Wohnort: /home/tas2580
- Kontaktdaten:
Re: Extensions und relative Links
Links die auf Seiten der Extension verweisen sollten mit
Du kannst dir auch mal den base Tag anschauen, damit kann man die Basis für relative Links angeben.
Gruß Tobi
$this->helper->route('deine_route', array('id' => $id))
ausgegeben werden. Für Links auf andere Seiten im Forum kannst du $phpbb_root_path
verwenden. Damit sollten eigentlich alle Links korrekt sein.Du kannst dir auch mal den base Tag anschauen, damit kann man die Basis für relative Links angeben.
Gruß Tobi
Heute ist ein guter Tag um dein Forum zu testen.
Ehemaliger Benutzername: [BTK] Tobi
Ehemaliger Benutzername: [BTK] Tobi
Re: Extensions und relative Links
Hallo Tobi,
erst mal Danke für die Antwort (Bin - als phpBB Anfänger - zum zweiten Mal begeistert, wie schnell man hier Hilfe erhält).
Ich nutze die Extension dmzx/linkmenu um Links im Header anzuzeigen. Dort kann man die Links nur als Text eintragen (d.h. das Coding, das mir den Link dynamisch berechnet, nützt hier nichts).
Wenn ich nun zwei relative Links dort eintrage, z.B. app.php/meine_seiten/seite1 und app.php/meine_seiten/seite2, dann funktioniert der erste noch. Wenn man dann aber (ohne vorher auf eine andere Forums-Seite zurück zu gehen) den zweiten anklickt, wird er aufgelöst in forumsroot/app.php/meine_seiten/app.php/meine_seiten/seite2.
Ich kann natürlich die o.g. linkmenu extension modifizieren (was dann wohl auch meine Lösung sein wird).
Auf $phpbb_root_path war ich dabei auch schon gestoßen. Allerdings zeigt die globale variable, selbst wenn man zuvor app.php/meine_seiten/seite1 aufgerufen hat, auf "./".
Erst zusammen mit wird dann "./../../" daraus.
Danke für den Tipp mit dem base-Tag. Das könnte meine Modifikation noch ein bisschen vereinfachen.
Gruß,
mbld
erst mal Danke für die Antwort (Bin - als phpBB Anfänger - zum zweiten Mal begeistert, wie schnell man hier Hilfe erhält).
Ich nutze die Extension dmzx/linkmenu um Links im Header anzuzeigen. Dort kann man die Links nur als Text eintragen (d.h. das Coding, das mir den Link dynamisch berechnet, nützt hier nichts).
Wenn ich nun zwei relative Links dort eintrage, z.B. app.php/meine_seiten/seite1 und app.php/meine_seiten/seite2, dann funktioniert der erste noch. Wenn man dann aber (ohne vorher auf eine andere Forums-Seite zurück zu gehen) den zweiten anklickt, wird er aufgelöst in forumsroot/app.php/meine_seiten/app.php/meine_seiten/seite2.
Ich kann natürlich die o.g. linkmenu extension modifizieren (was dann wohl auch meine Lösung sein wird).
Auf $phpbb_root_path war ich dabei auch schon gestoßen. Allerdings zeigt die globale variable, selbst wenn man zuvor app.php/meine_seiten/seite1 aufgerufen hat, auf "./".
Erst zusammen mit
Code: Alles auswählen
$path_prefix = append_sid("{$phpbb_root_path}");
Danke für den Tipp mit dem base-Tag. Das könnte meine Modifikation noch ein bisschen vereinfachen.
Gruß,
mbld
Re: Extensions und relative Links
Kleiner Nachtrag:
Das mit dem base-Tag ist keine gute Idee.
Wenn beim Aufruf von app.php/meine_seiten/seite1 base z.B. auf "./../../" gesetzt wird, dann funktionieren zwar meine Links im linkmenu korrekt, aber der Link zur ACP tut z.B. nicht mehr.
Das liegt daran, dass der Link zur ACP auch relativ ist, und eigentlich korrekt auf "./../../adm/index.php" zeigt. (Wenn ich es richtig verstanden habe, weil in includes/functions.php Zeile 5459 U_ACP über append_sid gesetzt wird)
Durch das base-tag wird er dann aber zu "./../../../../adm/index.php"
Das mit dem base-Tag ist keine gute Idee.
Wenn beim Aufruf von app.php/meine_seiten/seite1 base z.B. auf "./../../" gesetzt wird, dann funktionieren zwar meine Links im linkmenu korrekt, aber der Link zur ACP tut z.B. nicht mehr.
Das liegt daran, dass der Link zur ACP auch relativ ist, und eigentlich korrekt auf "./../../adm/index.php" zeigt. (Wenn ich es richtig verstanden habe, weil in includes/functions.php Zeile 5459 U_ACP über append_sid gesetzt wird)
Durch das base-tag wird er dann aber zu "./../../../../adm/index.php"

- oxpus
- Ehemaliges Teammitglied
- Beiträge: 5394
- Registriert: 03.02.2003 12:33
- Wohnort: Bad Wildungen
- Kontaktdaten:
Re: Extensions und relative Links
Für Links zu eingenen Extension-Seiten solltest du immer
Alle anderen Forenlinks kann man mit
Dann muss man nicht mühsam erst eigene Pfade über umständliche Bedingungen erstellen.
$this->helper->route('deine_route', array('id' => $id))
verwenden. Den Rest macht dann das Forum.Alle anderen Forenlinks kann man mit
append_sid($phpbb_root_path)
oder im ACP/MCP/UCP-Modul mit $this->u_action
darstellen.Dann muss man nicht mühsam erst eigene Pfade über umständliche Bedingungen erstellen.
Grüße
OXPUS
Kein Support bei unaufgeforderten PNs, E-Mails oder auf anderem Weg!!
OXPUS
Kein Support bei unaufgeforderten PNs, E-Mails oder auf anderem Weg!!
- gn#36
- Ehrenadmin
- Beiträge: 9313
- Registriert: 01.10.2006 16:20
- Wohnort: Ganz in der Nähe...
- Kontaktdaten:
Re: Extensions und relative Links
Hilfreich vielleicht: KB:ext_erstellen
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.