Matt: Trennung von Design und Code

Hy,

da das Thema ja durchaus aktuell ist und jeder der es versteht anwenden sollte, hätte ich eine Frage dazu.

Momentan wird es bei uns so gelöst:

1. <div class="header">{HEADER}</div>
   HEADER hat als Inhalt '<? include('header.php'); ?>'

2. <div class="infobox-header">{WARENKORB-HEADER}</div>
   WARENKORB-HEADER hat als Inhalt 'Ich bin ein Text.'

Ist 2. überhaupt sinnvoll, oder sollte man nur bei PHP-Code (Bsp. 1.) die Trennung von Design und Code durchführen?

Wenn man später eine multilinguale Seite möchte, ist es sicherlich von Vorteil auch die einfachen Textpassagen in {TEXT} zu packen?

Grüße

  1. Hi Matt!

    Also ich hab mich zwar angestrengt, dein Problem aber nicht verstanden, glaube ich.
    Was hat das Einbinden von Inhalt per PHP (reguire wär imho besser als include) mit der Trennung von Layout und Inhalt zu tun?

    Das Layout solltest du immer vom Inhalt trennen. Das machst du zum Beispiel mit deinem DIV-Kontainer, dem du eine Klasse oder ID gibst. Diese wird dann per CSS, am besten in einer externen Datei, formatiert.
    Jetzt hast du einen formatierten DIV-Kontainer (vielleicht mit Breitenangaben, Hintergrundbild etc.), der bestimmt dein Layout. Wie du jetzt den Inhalt in diesen Kontainer packst, bleibt dir überlassen. Solltest du ein CMS-System benutzen, kommt der Inhalt vermutlich aus einer Datenbank oder Text-(von mir aus auch php)Datei. Wenn dein DIV-Kontainer den Inhalt eines Warenkorbes anzeigen soll, wirst du auf jeden Fall nicht um eine dynamische Lösung herun kommen. So oder so, der Inhalt ist bei der Trennung von Layout und Inhalt egal. Genauso umgedreht. Das eine hat auf das andere keinen Einfluss, das ist ja das schöne^^

    Ich hoffe ich konnte dir helfen.
    Grüße, Matze

    1. Hallo,

      Was hat das Einbinden von Inhalt per PHP (reguire wär imho besser als include) mit der Trennung von Layout und Inhalt zu tun?

      Es geht auch darum, den PHP-Code vom HTML-Code bzw. vom (HTML-)Text-Inhalt zu trennen.

      mfg Jonathan

      1. Was hat das Einbinden von Inhalt per PHP (reguire wär imho besser als include) mit der Trennung von Layout und Inhalt zu tun?

        Es geht auch darum, den PHP-Code vom HTML-Code bzw. vom (HTML-)Text-Inhalt zu trennen.

        ich empfehle dir hierfuer eine ordentliche template-engine zu verwenden (smarty z.B. ist einfach zu bedienen) wenn du eine solche nicht bereits verwendest

        sämtliche texte (also inhalte) sollten dynamisch generiert werden können - ob diese texte nun immer gleich sind oder verschieden ist egal, hauptsache sie können zentral und ohne aufwand verwaltet werden

        alternativ ist auch ein config-file möglich, aber ein shop oder was auch immer läuft meistens mit einer datenbank, da liegt es nahe diese dinge auch gleich reinzupacken

        eine dicke tabelle die meinetwegen "lang" oder "sprache" heisst mit 3 (bzw 4) feldern ausstatt

        id name sprache text

        der inhalt könnte dann wie folgt aussehen

        "1" "warenkorb" "de" "Warenkorb"
        "2" "warenkorb_genitiv" "de" "Warenkorbs"
        "3" "abschicken_text" "de" "Bitte überprüfen sie vor dem abschicken der Bestellung noch einmal den Inhalt des ##warenkorb_genitiv##."
        "4" "abschicken_button" "de" "Bestellung absenden"
        "5" "warenkorb" "en" "shopping cart"
        ...

        diese dinger kann man dann ebenfalls per template engine an die richtige stelle parsen

        ob du nun komplexen code vom layout/design trennst oder einfache sprachabhängige strings aus dem layout entkoppelst ist im endeffekt nebensächlich und der template engine egal, die packt nur die fertigen variablen ins template und baut die seite

    2. Hallo

      Was hat das Einbinden von Inhalt per PHP (reguire wär imho besser als include) mit der Trennung von Layout und Inhalt zu tun?

      Dass es um die Trennung von Programmlogik und Inhalten (Texten etc.) ging, hat Jonathan schon angemerkt.

      Zur Einbindung dieser Texte require, welches bei jeglichem Fehler mit einem Programmabbruch reagiert, vorzuschlagen, ist mMn, wie auch include, falsch. An dieser Stelle anzufangen, die Inhalte von wo auch immer einzulesen, anstatt sie vorher zu bestimmen, bringt bei der späteren Pflege des Codes eventuell einiges an Mehraufwand. Ich würde eine Trennung nach dem EVA-Prinzip (Eingabe, Verarbeitung, Ausgabe) empfehlen.

      Tschö, Auge

      --
      Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
      (Victor Hugo)
      <dingdong /><dingdong /><toc /><toc /><toc /><shout>Florence!</shout>
      Veranstaltungsdatenbank Vdb 0.1
      1. Hi,

        Ich würde eine Trennung nach dem EVA-Prinzip (Eingabe, Verarbeitung, Ausgabe) empfehlen.

        war das Eva-Prinzip nicht das mit den 3 „K“ (Küche, Keller, Kinder)?

        Schönen Sonntag noch!
        O'Brien

        --
        Frank und Buster: "Heya, wir sind hier um zu polemisieren!"
        1. Hallo

          Ich würde eine Trennung nach dem EVA-Prinzip (Eingabe, Verarbeitung, Ausgabe) empfehlen.

          war das Eva-Prinzip nicht das mit den 3 „K“ (Küche, Keller, Kinder)?

          Das Eva-Prinzip ja, das EVA-Prinzip ist das, was ich meinte. :-)

          Das wird übrigens selbst in der Wikipedia unterschieden.

          Tschö, Auge

          --
          Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
          (Victor Hugo)
          <dingdong /><dingdong /><toc /><toc /><toc /><shout>Florence!</shout>
          Veranstaltungsdatenbank Vdb 0.1