Chrissi: Website mit Templates erstellen

Hallo zusammen!

Ich wollte mal fragen ob ihr mir Tipps bzw Anleitungen/Links geben könnt, wo erklärt wird wie ich eine Homepage mit Templates erstellen kann?

Danke für eure Mühen!

  1. Moin!

    Ich wollte mal fragen ob ihr mir Tipps bzw Anleitungen/Links geben könnt, wo erklärt wird wie ich eine Homepage mit Templates erstellen kann?

    Dir ist die grundsätzliche Funktion klar? Dann brauchst du eigentlich nur noch:
    a) ein Template (ja, echt! ;) )
    b) Daten, die ins Template reinsollen
    c) ein Mechanismus, um beides zu verbinden.

    Für Punkt c) kann ich aktuell vlibTemplate empfehlen. Das verwende ich selbst gerade bei einem Projekt, und es macht das Leben sehr schön einfach.

    Es ist unter der Artistic License verfügbar (inkl. Doku und Erklärung in deutsch) unter http://vlib.activefish.com/. Die im Paket mit enthaltenen Module vlibDate und vlibMimemail sind sicherlich auch nicht zu verachten, die habe ich aber derzeit noch nicht angefaßt. Werde aber damit sicher auch noch in Kontakt kommen.

    - Sven Rautenberg

    --
    ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
    1. Dir ist die grundsätzliche Funktion klar? Dann brauchst du eigentlich nur noch:
      a) ein Template (ja, echt! ;) )
      b) Daten, die ins Template reinsollen
      c) ein Mechanismus, um beides zu verbinden.

      Für Punkt c) kann ich aktuell vlibTemplate empfehlen. Das
      verwende ich selbst gerade bei einem Projekt, und es macht das
      Leben sehr schön einfach.

      Es ist unter der Artistic License verfügbar (inkl. Doku und
      Erklärung in deutsch) unter http://vlib.activefish.com/.
      Die im Paket mit enthaltenen Module vlibDate und vlibMimemail
      sind sicherlich auch nicht zu verachten, die habe ich aber
      derzeit noch nicht angefaßt. Werde aber damit sicher auch noch in
      Kontakt kommen.

      - Sven Rautenberg

      Naja eigentlich habe ich noch nicht so recht die Ahnung.Mir wurde nur gesagt das es wohl sehr gut sein soll mit templates seine homepage zu erstellen. Hast du vielleich noch andere tuts wo ich lesen kann wie ich anfange und dann schritt für schritt weiter...?!

      1. Moin!

        Naja eigentlich habe ich noch nicht so recht die Ahnung.Mir wurde nur gesagt das es wohl sehr gut sein soll mit templates seine homepage zu erstellen. Hast du vielleich noch andere tuts wo ich lesen kann wie ich anfange und dann schritt für schritt weiter...?!

        Tutorials dazu kenne ich keine - mir war die Lage eigentlich schon immer klar. Deshalb mach' ich dir mal eben ein Kurz-Tutorial. Ich bitte um Würdigung. :)

        Wenden wir uns also zuallererst der Frage zu: Warum Templates?

        Templates sind Vorlagen, die für den jeweiligen Zweck "passend" ausgefüllt werden. Das ist absolut vergleichbar mit dem Ausfüllen eines Papierformulars, beispielsweise eines Überweisungsträgers bei der Bank. Damit ist sichergestellt, dass gewisse Informationen immer an derselben Stelle platziert werden.

        Im Gegensatz zu Papierformularen, bei denen es ja in erster Linie um das standardisierte Erfassen von Daten geht, haben Templates den Vorteil, dass gewisse Dinge wie eben ein Standard-Design nur an einer einzigen Stelle abgelegt werden müssen und darauf von jeder Stelle aus zugegriffen werden kann.

        Im Prinzip ist PHP selbst schon eine eigene Template-Engine, die genau das macht, was Templates allgemein immer machen: Man mixt fest definierte Ausgabeteile (in diesem Fall HTML-Code) mit Code, der an einer bestimmten Stelle variablen Inhalt ausgibt (z.B. <?php echo $variable; ?>), und erhält als Ergebnis eine fertige, jeweils unterschiedlich ausgefüllte HTML-Seite.

        Dummerweise ist PHP eine derartig mächtige Programmiersprache, dass man innerhalb des Templates praktisch alles machen kann: Rechnen, Datenbanken abfragen, fremde Server kontaktieren, Mails abfragen, per FTP uploaden etc. Das führt, wenn man es als Programmierer nicht absolut konsequent betreibt, sehr schnell zu sehr komplexem Code, weil sich PHP- und HTML-Bereiche munter abwechseln.

        Als Resultat entsteht dann ein PHP-Script, in das kaum noch jemand ohne PHP-Kenntnisse eingreifen kann, weil er dann mit Pech genau das ändert, was zu einem PHP-Fehler führt, und es dann nicht mehr repariert kriegt.

        Deshalb hat sich schon seit ziemlich langer Zeit bei den Programmiersprachen und den Programmierern die Tendenz entwickelt, Ausgabetext (in diesem Fall HTML) und Programmcode streng zu trennen. Es hat einfach Vorteile, wenn man sich im PHP-Code gedanklich nur darum kümmern muß, "Wo bekomme ich meine Daten her?", "Wie muß ich die verarbeiten/verrechnen/manipulieren?" und "Ich gebe das Ergebnis dann ans Template weiter!" zu beantworten, sich aber an dieser Stelle absolut _nicht_ um die Darstellung des Programmergebnisses zu kümmern.

        Das Template schreibt man dann natürlich auch selbst und kann in einem zweiten Gedankenschritt dann überlegen, "Welche Daten berechnet das Skript?" und "Wie und wo sollen die erscheinen?" zu beantworten.

        Die Template-Engine übernimmt dann die Mischung und Verbindung zwischen diesen beiden Gedankenschritten: Die Ergebnisse des PHP-Skriptes werden an geeigneter Stelle in das Template eingebaut und das Resultat ausgegeben.

        Diese Trennung der Aufgabengebiete ist für übersichtlicheren Code unabdingbar. Und außerdem gewinnt man eine deutlichere Freiheit gegenüber der Gestaltung. Denn zum Ändern der Darstellung muß jetzt nur das Template geändert werden - aber der restliche PHP-Code bleibt absolut unverändert.

        Diese Flexibilität ließe sich beispielsweise bei einem Gästebuchanbieter umsetzen. Der kann erlauben, dass sich die einzelnen Nutzer ein Template selbst erstellen, um ihr Gästebuch dem eigenen Design anzupassen. Dazu müssen sie eben nur die diversen Variablen, die die Gästebuchdatenbank und das Skript zur Verfügung stellen, an die richtige Stelle im HTML-Code einbauen und haben sofort ein eigenes Design - und jedes Gästebuch sieht dann anders aus, obwohl derselbe PHP-Code verantwortlich ist.

        Deshalb: Templates sind extrem empfehlenswert, sobald man mehr als nur kleine Skripte schreibt. Gästebücher, Webshops, Newsticker - eigentlich alles, was über den experimentellen Status hinausgeht und "vernünftig aussehen" soll, sollte mit Templates gelöst werden.

        - Sven Rautenberg

        --
        ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
        1. Templates machen vor allem dann Sinn wenn du mit Agenturen arbeitest, die nur HTML-Seiten erstellen können. Diese müssen dann nicht an deinem Code rummachen, um grafisch was zu ändern, sondern machen das was sie eben können: HTML-Seiten ändern. Ätsch!!!

          Ich machs mit "smarty"

          Janosch

          1. Moin!

            Templates machen vor allem dann Sinn wenn du mit Agenturen arbeitest, die nur HTML-Seiten erstellen können.

            Templates machen _immer_ Sinn. Denn um ein Template verändern bzw. vernünftig anpassen zu können, muß man schon wissen, was für Informationen ankommen und wie diese sinnvoll (z.B. in Schleifen) im Template zu verarbeiten sind.

            Ich machs mit "smarty"

            Smarty ist nach meinen Informationen sehr umfangreich und mächtig - vielleicht etwas zuviel für den Einstieg. Ich hab's selbst allerdings noch nicht ausprobiert.

            - Sven Rautenberg

            --
            ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
            1. Hallo Sven,

              Ich machs mit "smarty"

              Smarty ist nach meinen Informationen sehr umfangreich und mächtig - vielleicht etwas zuviel für den Einstieg.

              Nein. Smarty ist nicht schwieriger als ein anderes Template-System. Es ist zwar mächtig, aber nur, wenn man es will.

              Beispielcode:
              -------- index.php -------
              <?php
              $smarty = new Smarty;
              $smarty->assign ('Name', 'Sven');
              $smarty->display ('index.tpl');
              ?>
              ----------------------------

              -------- templates/index.tpl ---------
              Hallo, {$Name}! Willkommen!
              ----------------------------

              Das einzige, was u.U. *etwas* komplizierter sein könnte, ist das "installieren" - allerdings ist auch dies machbar.

              Viele Grüße,
              Christian

              --
              Losung und Lehrtext für Mittwoch, 15. Oktober 2003:
              Es wird geschehen zu der Zeit, dass das Reis aus der Wurzel Isais dasteht als Zeichen für die Völker. Nach ihm werden die Heiden fragen. (Jesaja 11,10)
              Da kamen Weise aus dem Morgenland nach Jerusalem und sprachen: Wo ist der neugeborene König der Juden? Wir haben seinen Stern gesehen im Morgenland und sind gekommen, ihn anzubeten. (Matthäus 2,1.2)
              (http://www.losungen.de/heute.php3, i.V. Götz)
              1. Moin!

                Nein. Smarty ist nicht schwieriger als ein anderes Template-System. Es ist zwar mächtig, aber nur, wenn man es will.

                Ok, das mag sein. Wie gesagt: Ich hielt mich bislang auch von Templates eher fern, weil immer irgendein Redaktionssystem diese Arbeit übernommen hat und es von daher nicht notwendig war.

                Beispielcode:
                -------- index.php -------
                <?php
                $smarty = new Smarty;
                $smarty->assign ('Name', 'Sven');
                $smarty->display ('index.tpl');
                ?>

                -------- templates/index.tpl ---------
                Hallo, {$Name}! Willkommen!

                So simpel gehts im Prinzip auch mit vlibTemplate. Vielleicht (ich kenn Smarty nicht) auch noch etwas netter hinsichtlich der Formatiermethoden direkt an der Variablen.

                - Sven Rautenberg

                --
                ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
                1. Hallo!

                  Ok, das mag sein. Wie gesagt: Ich hielt mich bislang auch von Templates eher fern, weil immer irgendein Redaktionssystem diese Arbeit übernommen hat und es von daher nicht notwendig war.

                  Ich selbst finde es erheblich angenehmer wenn ich Änderungen am Design vornehmen kann, ohne was mit PHP zu tun zu haben, aber vor allem anders herum. Ich kenne Leute die sind mit nix zufrieden, ignorieren PEAR... und machen alles selbst, nur Smarty nicht.
                  Es ist z.B. supereinfach "kompilierte" Templates zu speichern, also den fertigen PHP-Code zu cachen, genauso einfach ist es fertigen HTML-Code zu cachen, und das macht Smarty _sehr_ schnell. Ich verwende Smarty gerade in einem größeren Projekt, und hier das erste mal richtig intensiv, das ist wunderbar, ich konnte Smarty einfach ein wenig erweitern, und so automatisch Mehrsprachigkeit miteinbauen, wobei hier alle Sprachen seperat als fertiger PHP-Code gecached werden, obwohl ich die Sprachen in seperaten Sprach-Dateien stehen habe.

                  Wie Chistian schon sagte, sehr einfach, und mächtig wenn man will.

                  Siehe auch: http://smarty.php.net/crashcourse.php... es ist auch gut dokumentiert.

                  Ich kann es nur empfehlen, ist ein prima Werkzeug und nicht umsonst Teil von php.net.

                  Grüße
                  Andreas