include und verzeichnisse

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • include und verzeichnisse

    Hi

    Ich habe eine Seite mit folgendem Aufbau (vereinfacht dargestellt) und diese dateien befinden sich im public_html root wo auch die .css und in unterverzeichnissen die grafiken liegen. in der header.php ist sozusagen das design der seite gespeichert, in der footer.php kommen die abschliessenden tags:

    PHP-Code:
    <?
    include('header.php');

    content blabla...

    include('footer.php');
    ?>
    nun habe ich eine applikation (shop), welche ich in einem untervezeichnis gespeichert habe, und die aus vielen verschiedenen php-dateien besteht.

    Das problem ist nun, wie ich diese applikation am einfachsten ohne grosse modifikationen in die seite und design integriere.

    wenn ich in den applikationsdateien
    PHP-Code:
    include('../header.php'); 
    einfüge, nimmt es zwar dessen struktur, nicht aber die grafiken und designs.

    wenn ich im root (also public_html) eine datei shop.php erstelle, welche der struktur oben entspricht, aber anstelle des content die index.php des shops included, also
    PHP-Code:
    <?
    include('header.php');

    include('shop/index.php');

    include('footer.php');
    ?>
    bekomme ich zwar diese seite in mein desing rein, sobald ich aber natürlich auf eine andere datei des shops (zB details.php) wechsle, geht das nicht mehr.


    irgendwelche vorschläge?

    danke und gruss
    philippe

  • #2
    Also wenn ich dich richtig verstanden habe, dann ist dein Design einfach nicht mehr so wie du es gerne hättest wenn du eine Seite des Shops aufrufst. Du musst berücksichtigen, dass wenn du eine php-datei includest, der pfad von der Datei ausgeht, von der die include funktion aufgerufen wurde.
    Bsp:
    Code:
    <!-- Deine Header-Datei //-->
    <? 
    $_backgroundImage = 'img/background.gif';
    ?>
    <style type="text/css">
    .BODY
    {
      background-image:url(<?=$_backgroundImage?>);
      background-repeat:repeat-x;
    }
    Diese Datei möchtest du jetzt in die index deines Shops includen, die index.php liegt im unterverzeichnis (shop) von der root, von der wir mal ausgehen.
    PHP-Code:
     // ./shop/index.php
    include_once('../header.php'); 
    Resultat wird sein, dass dein Hintergrundbild nicht angezeigt wird, denn du hast die images nicht im unterverzeichnis "img" des Shopverzeichnisses.. soweit verstanden?

    Abhilfe könntest du dir verschaffen, wenn du dir Konstanten definieren würdest, die lediglich den Pfad zum Image-Ordner, zum CSS-Ordner á la http://www.deinedomain.de/deinimageordner festlegen.

    Kommentar


    • #3
      ja, du hast es genau verstanden... die bilder sind ja nicht das einzige problem, die navigationslinks, welche auch in der header.php drin sind, sind dann logischerweise auch nicht mehr korrekt, genau wie bei den grafiken.

      ok, ich könnte dann wohl die links und pfade zu den grafiken absolut angeben, resp in der konstanten speichern, das würde sicher gehen, auch wenn es nicht meine bevorzugte lösung ist

      mir wärs lieber, wenn ich im root eine neue datei shop.php erstelle und dann dort die datei vom shop include. nur halt das problem, dass der shop ja aus vielen dateien besteht, und die pfade zu dessen grafiken dann auch nicht mehr stimmen...

      vielleicht könnte ich im shop/ eine neue datei anlegen, welche jeweils die zu verwendende datei per variable in der adressleiste übergibt, also zB shop.php?page=details.php. allerdings müsste ich dann wohl durch den gesamten shop hindurch alle links anpassen, es sei denn, man könnte ein script schreiben, das on-the-fly die links ersetzt :
      also aus details.php?artikel=2 sollte dann shop.php?page=details&id=2 werden

      würde das wohl gehen?

      Kommentar

      Lädt...
      X