Intelligente Ordnerstruktur?

  • Hallo liebe Forenmitglieder!

    Ich bastel seit einiger Zeit gelegentlich immer mal wieder an Homepages und stehe jetzt wieder vor einem neuen Projekt. Von Projekt zu Projekt lernt man natürlich dazu und optimiert immer wieder, aber nun bin ich an einem Punkt, an dem ich ein wenig Unwissen und Hilfebedarf zugeben muss.
    Folgendes: ich überlege, wie ich meinen Webspace für die neue Homepage am sinnvollsten strukturieren kann. Ich weiß nicht, wie man es so "in der Regel" macht; ich habe das bislang eher so frei Schnauze gemacht. Im Moment sieht es etwa so aus:


    • index.php
    • home

      • index.php
    • seite1

      • index.php
    • seite2

      • index.php
      • picture.jpg
    • seite ...

      • index.php
    • content

      • seite1.htm
      • seite2.htm
      • seite... .htm
    • mobile

      • mobile.php
      • style.css
    • ressourcen

      • style.css
      • ...

    In der index.php des Root-Verzeichnisses ist zunächst nur eine Abfrage enthalten, ob es sich um ein mobiles Gerät handelt. Je nachdem wird per include () die Desktop- (/home/index.php) oder mobile Seite (/mobile/mobile.php) eingebunden. Die Mobile Seite gestalte ich mit jqueryMobile und beziehe wieder per include () die entsprechenden Content-Seiten ein. Bei der Desktopversion werden durch die Links der Navigation die entsprechenden Verzeichnisse angesteuert, sodass ich nicht direkt auf eine Datei verweisen muss (das gefällt mir in der Adressleiste einfach besser). Bei den index.php-Seiten der Unterverzeichnisse werden wieder die dazugehörigen content-Seiten per include () eingebunden.
    Mit all dem schaffe ich mir aber nun ein schönes Problem, wenn ich mit relativen Links in den Content-Seiten auf Dateien (Bilder, etc. ...) verweise. Konkretes Beispiel: Ich rufe "seite2" auf, die index.php des Verzeichnisses wird geöffnet, in der

    PHP
    include ("../content/seite2.htm");

    steht. Will ich ein Bild auf der Seite haben, dann stünde ja in seite2.htm

    HTML
    <img src="picture.jpg" />

    , da sich das Bild im gleichen Verzeichnis befindet, wie die ursprünglich geöffnete index.php .
    Befinde ich mich allerdings auf der mobilen Seite, so ist der relative Pfad zum Bild nicht mehr gültig, da mobile.php (in die wiederum seite.htm über include () eingebunden ist) bereits über die index.php des Root-Verzeichnisses aufgerufen wurde. Der korrekte Pfad, der diesen Zweckes in seite2.htm stehen müsste, wäre nun

    HTML
    <img src="seite2/picture.jpg" />

    .

    Ich entschuldige mich für meine laienhafte Erklärung – im Grunde genommen dreht es sich ja nur um Basics, aber ich suche nach einer Möglichkeit, entweder die Ordner so zu strukturieren, dass die relativen Links funktionieren würden. Oder gibt es eine andere Möglichkeit, den Pfad anzugeben (außer dem absoluten http://www. ...)?

    Die Problematik ließe sich im Übrigens ja auch noch erweitern, wenn ich verschiedene Elemente der Homepage, bspw. die Navi, in separate Dateien auslagern wollte. Dann hätte ich noch den Ordner:


    • layout

      • navigation.htm
      • sidebar.htm
      • footer.htm

    Binde ich in die index.php des Root-Verzeichnisses jetzt navigation.htm per php ein, so würden die darin enthaltenen Links einfach auf die Unterverzeichnisse der anderen Seiten verweisen:

    HTML
    <a href="seite2/">Seite 2</a>

    Binde ich navigation.htm jetzt aber in eine Seite der Unterverzeichnisse ein, so muss der Pfad ja

    HTML
    <a href="../seite2/">Seite 2</a>

    lauten.

    Ich wäre für Tipps und Hilfe sehr dankbar!

    Beste Grüße

  • also das ganze is easy :)
    im root vom webspace die ordner nach domainnamen erstellen, darin die komplette struktur der seite

    und die wird dann so gestaltet, dass du die seite komplett über die index-datei lädst, so sind alle pfade immer korrekt.
    die seiten werden in einem array vorgehalten und dann über nen get-parameter geladen.
    das ganze dann über mod-rewrite schön gestalten und leserlich machen.

    die ordnerstruktur könnte dann so sein:
    root

    • -meineseite.de

      • - _includes
      • - _pagetemplates
      • - images
      • - css
      • - js



    das ganze klimmbimm dann responsive mit css machen (bzw eigentlich isses ja adaptive, wenn man bootstrap und co nutzen würde).
    dann brauchste halt noch ne coole weichenschaltung fürs javascript, damit du events hast, mit denen du dann bestimmte zustände zur steuerung nutzen kannst.

    zB nen slider, der mobile anders wird, als auf desktop, da kannste dann wenn du aufm desktop bist und jemand das fenster klein schiebt, dann kannste anhand von nem event den mobile slider initialisieren und sonst nur noch per breakpoint anzeigen oder ausblenden.

    2 Mal editiert, zuletzt von synaptic (2. Juni 2016 um 22:29)

  • Hey synaptic,

    danke für Deine Antwort! Klingt nach einigen Dingen, mit denen ich mich bislang noch nicht gänzlich auseinandergesetzt habe. Dann werde ich das mal in Angriff nehmen. Ich melde mich zurück, wenn ich trotz mehr Wissen noch mehr Fragen habe. (x