Alternative zu Includes

Hi,

momentan basiert meine Website auf inlcudes. Problem damit ist, dass sich relative Pfade innerhalb der "Module" auf die Basis-URL geziehen und nicht auf den Order in dem sich das "Modul" befindet. Jetzt dachte ich mir ich könnte die index Datei eines Modules in etwa so aufrufen wie ein Browser und den dabei entstehenden HTML Code dann per print in die Website einbauen. So würde relative Pfade weiterhin funktionieren. Nur weiss ich nicht wie das mit PHP realisierbar ist? Ist es das überhaupt?

cu
serow
 
Hallo,
dass sich relative Pfade innerhalb der "Module" auf die Basis-URL geziehen und nicht auf den Order in dem sich das "Modul" befindet
Ist das nicht ein Widerspruch zum Begriff 'relative Pfade'?

Oder wie meinst du das?
 
Dir ist schon klar, dass du mit __FILE__ den Dateinamen der aktuellen PHP-Datei kriegst?
Bzw. dann mit dirname(__FILE__) das absolute Verzeichnis, in dem die Datei liegt?

Gib doch einfach bei Includes und Requires immer den Pfad relativ zu dirname(__FILE__) an, dann hast du keine Probleme.

z.B.

index.php
subdir/file1.php
subdir/file2.php

PHP:
//index.php
include('subdir/file1.php');
PHP:
//subdir/file1.php
include(dirname(__FILE__) . '/file2.php');

mfg, metax.

P.S: Die von dir vorgeschlagene Lösung mit den einzelnen Requests halte ich für äußerst unvorteilhaft. Zum einen erzeugst du damit einen Haufen Overhead und damit auch Performanceeinbuße, zum anderen können dann deine Module nicht auf gemeinsame Komponenten (Login-System, Datenbank, etc.) zugreifen.
 
Wenn ich in /index.php ein include auf /content/blubb.php mache und in blubb.php ein image-Tag mit der src-URL ./bild.jpg ist, dann sucht der Browser das Image nicht in /content/bild.jpg sondern in /bild.jpg.

Verständlich jetzt?
 
Ach so, du meinst die Pfade in der Ausgabe?
Das hängt dann wohl eher mit deinem Templatesystem zusammen.
Gib deinen Modulen einfach die Information, wo sie sich befinden und häng die Differenz in alle Hyperlink-Ausgaben mit dran. Oder noch besser: Organisiere alle deine benötigten Medien an einem Ort, den du kennst und jederzeit verlinken kannst.
 
Zurück
Oben