template in template???

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • template in template???

    tach ich wollt mal frage wie ich machen kann das ih über dieses template system hier

    $template = join('',file('test.html'));
    $ausgabe = str_replace("[BODY]", $body, $template);
    $ausgabe = str_replace("[TEXT]", $text, $template);
    $ausgabe = str_replace("[DB]", $db, $template);
    echo $ausgabe;

    eine template laden kann als beispiel die template1.htm und dann soll der cheken ob in einer datenbank eineintrag ist wenn ja soll er über einen 2. block die template2.htm in die 1. laden und wenn kein eintrag vorhanden ist soll er über einen 3. block die template3.htm in die 1. laden kann mir jemand helfen??

  • #2
    Hm versteh noch nicht so ganz was du meinst,
    aber was du bisher an code hat macht meiner Meinung nach nicht richtig sinn. Richtig wäre doch
    PHP Code:
    $template join('',file('test.html'));
    $ausgabe str_replace("[BODY]"$body$template);
    $ausgabe str_replace("[TEXT]"$text$ausgabe);
    $ausgabe str_replace("[DB]"$db$ausgabe);
    echo 
    $ausgabe
    weil in deiner version nur [DB] ersetzt wird.

    gruss rth
    H I L F E
    GD FreeType Antialising
    Gesuch PHP Entwicklungsumgebung
    ------------------------------------------
    Der Cmabrigde rael tset, sruf whoin du wlilst

    Comment


    • #3
      das was da steht soll nur ein beispiel sein ich will das eine template datei in eine andere teplate datei geladen wirt

      Comment


      • #4
        Einfach die Ersetzungen weglassen. Und statt echo return verwenden.

        PHP Code:
        $template join('',file('test.html'));
        [
        b]return[/b$ausgabe
        Is doch logo.

        Comment


        • #5
          einfach einen Platzhalter ins Tempalte einfügen, zweites Template laden und parsen, Platzhalter im ersten Template durch geparstes zweites Template ersetzen!

          Template-Engines gibt es zu Hauf im Netz. Ein ganz gutes ist wohl Smarty - obwohl ich die Template-Klasse von phpguru.org verwende...

          Comment


          • #6
            oder ich bin grad was anderes am versuchen wieso geht das hier net ich bekomm diese melung

            Parse error: parse error, unexpected T_STRING in C:\Programme\Jana2\html\test\template.php on line 3

            Fatal error: Call to undefined function: template() in C:\Programme\Jana2\html\test\index.php on line 4
            PHP Parse error: parse error, unexpected T_STRING in C:\Programme\Jana2\html\test\template.php on line 3 PHP Fatal error: Call to undefined function: template() in C:\Programme\Jana2\html\test\index.php on line 4

            index.php

            PHP Code:
            <?PHP
            include "template.php";

            template(test);

            ?>
            template.php

            PHP Code:
            <?PHP

            funktion template
            ($template[datei]) 
            {
            $template[endung] = "htm";
            $template[folder] = "template";

            $template[ausgabe] = implode("",file($template[folder]."/".$template[datei].".".$template[endung]));
            }
            ?>

            Comment


            • #7
              also ich hab die fehler wegbekommen war wegen meiner eigenen doofheit aber ich versteht net warum ich da kein [ und ] machen kann

              Comment


              • #8
                Wenn du die Syntax einhalten würdest, würde man a) besser durchblicken und b) würde es vielleicht auch ohne Fehler laufen.

                PHP Code:
                <?PHP

                function template($template['datei'])  // <-- was soll das denn machen ?
                {
                $template['endung'] = "htm";
                $template['folder'] = "template";

                $template['ausgabe'] = implode("",file($template['folder']."/".$template['datei'].".".$template['endung']));
                }
                ?>
                geändert: ' bei den Arrays hingepackt und funktion in function korrigiert
                Last edited by Hopka; 29-06-2003, 16:48.
                hopka.net!

                Comment


                • #9
                  danke also teil 1 läuft es läd html datein aber jetzt habe ich noch folgenes problem was muss ich noch in die template.php schreiben damit wenn ich im html dokumend {test} stehen hab und in der index.php $test = "blabla"; das er mir dann auf der seite an der stelle das {test} durch blabla ersetzt??

                  Comment


                  • #10
                    PHP Code:
                    $template str_replace("{test}"$test$template); 
                    hopka.net!

                    Comment


                    • #11
                      nein das meine ich net kann der das net irgent wie selber suchen das ich nur eine zeile für alle brauche weil ich hab ja nicht nur eine html datei

                      Comment


                      • #12
                        naja, irgend woher muss der ja auch wissen, was für Variablen du genau ersetzt haben möchtest.

                        Was natürlich geht ist, ein Array mit allen Variablen basteln

                        PHP Code:
                        $test1 "blablabla";
                        $test2 "muhuhu";
                        $vars = Array("test1""test2");
                        foreach (
                        $vars as $var)
                          
                        $template str_replace("{".$var."}", $$var$template); 
                        macht das gleiche wie
                        PHP Code:
                        $test1 "blablabla";
                        $test2 "muhuhu";

                        $template str_replace("{test1}"$test1$template);
                        $template str_replace("{test2}"$test2$template); 
                        eleganter geht es aber so:
                        PHP Code:
                        $vars = Array("test1" => "blablabla""test2" => "muhuhu");
                        foreach (
                        $vars as $name => $value)
                          
                        $template str_replace("{".$name."}"$value$template); 
                        hopka.net!

                        Comment


                        • #13
                          dann muss ich ja trozdem alle nochma schreiben kann mann net machen das der jetzt in der html guckt was in der klammer {} steht und wenn im script das selbe was in der klammer steht nur als variable dann wei er aha das muss ich jetzt damit ersetzen oder weist du wie woltlab das macht??

                          Comment


                          • #14
                            sowas geht nicht, bzw. wäre der Aufwand viel zu groß.

                            das Woltlab kenn ich so direkt nicht, aber ich denke, dass die ein fertiges Templatesystem haben, wo auch erstmal festgelegt wird, welche Sachen ersetzt werden sollen und anschließend durch was sie ersetzt werden sollen.
                            hopka.net!

                            Comment


                            • #15
                              gibts denn für sowas toturials?? also ich meine zu dem was ich vor hab is mir egal wie groß die datei dann wirt ich hab nur keinen bock für jede template so einen fetten block zu schreiben

                              Comment

                              Working...
                              X