Selbstgestricktes Template

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

  • Selbstgestricktes Template

    Hallo,

    ich habe vor einem Jahr mit einem PHP-Script begonnen, dass mittlerweile sehr umfangreich geworden ist und dadurch, dass ich alles in ein einziges Script (bis auf den Datenbank-Login) gepackt habe, ist es auch ziemlich unübersichtlich geworden.

    Nun habe ich meinem Kumpel, dem ich das Datenbank Frontend gebastelt habe, versprochen dass ich es ihm noch ein bisschen benutzerfreundlicher gestalte und ein paar neue Features mit hineinnehme.

    Das möchte ich jetzt zum Anlass nehmen, das Script komplett neu zu schreiben und jedes einzlene Modul in eine extra Datei zu packen. Hierbei möchte ich auch Templates verwenden.

    Die vorhandenen Templates sind mir aber alle zu aufgebläht und deshalb möchte ich da etwas eigenes einsetzen. Es muss nichts großartiges sein, es soll lediglich in einer HTML-Datei eine Variable, beispielsweise {NAME}, durch den dafür aus der Datenbank ausgelesenen Wert einsetzen.

    Wie stelle ich das an? Ich stelle es mir so vor:

    - Ich erstelle mein Template als HTML-Datei
    - Ich setze an die Stelle, wo etwas aus der Datenbank hingesetzt werden soll eine Variable
    - Ich include das Template in meinem Script???

    Was muss ich noch machen? Mit dem dritten Schritt bin ich mir so auch nicht so ganz sicher. Jedenfalls muss ich ja eine Verbindung meines Template zu meinem Script und letzendlich zu der Datenbank bekommen.

    Wie muss ich vorgehen, ohne eine Template-Klasse zu verwenden?

    Danke für jede hilfreiche Antwort, Chriss

  • #2
    Allgemein ist deine Vorstellung schon mal nicht schlecht.

    Was du aber glaub ich nicht beachtest, wenn du mehr datensätze aus deiner Datebank bekommst (z.b. für die News) kommst du mit einem platzhalter nicht aus, da müsstest du entweder block's erstellen, oder du löst es wie in Smarty mit einer for schleife ( in Smarty wird diese mit {for} gestartet ).

    um dir einen kleinen ansatz zu geben, wie du einen platzhalter durch eine variable ersetzt, schaust du dir am besten mal den Code Schnipsel von mrhappiness an
    http://www.php-resource.de/forum/sho...threadid=24653

    achja, und ich würde das template in einer klasse schreiben, da es dann imho viel leichter zu verwenden ist.

    Kommentar


    • #3
      Das habe ich mir wohl zu einfach vorgestellt. Ich komme mit dem Codeschnipsel leider nicht klar. , er ist mir irgendwie etwas zu abstrakt.

      Aber trotzdem danke für Deine Hilfe. Falls Du noch etwas einfacheres finden solltest, dann würde ich mich sehr über ein weiteres Posting freuen.

      Danke, Chriss

      Kommentar


      • #4
        http://www.php-resource.de/forum/sho...light=template

        ansonsten ist die suche ganz gut

        Kommentar


        • #5
          Jaja, die Suche, ich weiß. Ich habe nach Templates gesucht, aber manchmal sieht man scheinbar den Wald vor lauter Bäumen nicht .

          Also das mmTemplate sieht schon sehr gut aus. Ich werde es mit diesem Template probieren. Noch eine kleine Frage, wie binde ich diese Klasse ein?

          Sage ich ihm in meinem Script einfach nur:
          PHP-Code:
          include ('includes/template.inc.php'); 
          Wahrscheinlich schon, oder?

          Kommentar


          • #6
            ja. und dann musst du die class noch initialisieren usw.
            das übliche eben, wenn man mit classen arbeitet.
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              im zweifelsfall mal manual klar machen und grundlagen checken.

              Kommentar


              • #8
                Hallo,

                ich bekomme das mit der mTemplates-Klasse einfach nicht gebacken. Ich habe mir eine HTML-Vorlage erstellt mit zwei Platzhaltern, habe über include und require die Klasse eingebunden und habe danach folgende kleine php-Testdatei erstellt. Was fehlt hier noch oder was ist falsch?
                PHP-Code:
                <?php

                include ('includes/template.inc.php');
                require (
                'includes/template.inc.php');

                $title "TEST-TEMPLATE";
                $text "Bin ja echt mal gespannt, ob das jetzt funktioniert.";

                $var = new mmTemplate("templates/view.tpl");
                $var->assign("title",$title);
                $var->assign("text",$text);
                go_fly();

                ?>
                Danke, Chriss

                @TobiaZ: Ich habe eben auf http://php4.globe.de/manual/de/ nach "Class" und nach "Klassen" gesucht. Kannst Du mir evtl. weiterhelfen?

                Kommentar


                • #9
                  stuchwort "klassen" sollte dir eigentlich geholfen haben: http://php4.globe.de/manual/de/language.oop.php

                  die TPLclass hat sicher ne Methode, die den ganzen senf ausgibt. die musst du auch ausrufen. so hast du zwar die platzhalter im template ersetzt, gibst das bearbeitete template aber nicht asu.

                  Kommentar


                  • #10
                    O.K., hab den Fehler gefunden.

                    Hier das abgeänderte Script. Die Zeile mit dem "include" war überflüssig, dafür musste ich aus "go_fly()" einfach nur "var->go_fly()" machen.

                    PHP-Code:
                    <?php

                    require ('includes/template.inc.php');

                    $title "TEST-TEMPLATE";
                    $text "Bin ja echt mal gespannt, ob das jetzt funktioniert.";

                    $var = new mmTemplate("templates/view.tpl");
                    $var->assign("title",$title);
                    $var->assign("text",$text);
                    $var->go_fly();

                    ?>
                    Jetzt funktioniert es. Danke an alle, die mir geholfen haben.

                    Chriss

                    Kommentar


                    • #11
                      tja, da ist es von vorteil, wenn man versteht was man macht. btw: das hätte dir eigentlich ne fehlermeldung ausgeben sollen.

                      Kommentar


                      • #12
                        Was hätte eine Fehlermeldung bringen sollen? Das, wie es jetzt ist oder das wie ich es vorher hatte?

                        Vorher hatte ich ja eine Fehlermeldung, die da hieß "Fatal error: Cannot redeclare class mmtemplate in c:\programme\easyphp1-7\www\mapvtwo\includes\template.inc.php on line 14".

                        Kommentar


                        • #13
                          unter anderem.

                          der war ja kein wunder, weil du die zweimal includet hattes. warum auch immer...

                          jedenfalls hättest du die fehlermeldung ruhig mal in deinem post unterbringen können, gell.

                          Kommentar


                          • #14
                            Ja, dachte eigentlich, ich hätte das auch gemacht *schäm*.

                            Kommentar

                            Lädt...
                            X