[SUCHE] Template Klasse

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

  • [SUCHE] Template Klasse

    Guten Morgen,

    Ich bin noch immer auf der Suche nach einer TemplateKlasse...

    Also ich hab ein Gbook geschrieben und der funktoniert wunderbar nur jetzt will ich HTML Code in eine Template schreiben, weils schöner und übersichtler auschaut(Auch leicht anpassbar).

    Ich will jetzt 4 Templates schreiben, und das sind folgende:
    index.tpl
    header.tpl
    footer.tpl
    entries.tpl

    in der index.tpl soll folgendes stehen:
    Code:
    ....
    $header //soll die template header.tpl laden
    
    $entries //soll die template entries.tpl laden
    
    $footer //soll die template footer.tpl laden
    ....
    Vorallem ist mir die template entries.tpl wichtig, die soll dann die einträge anzeigen.

    Die Tempalte wird dann ca. so auschauen.
    Code:
    <tr>
    <td>Name: $row['author']</td>
    </tr>
    <tr>
    <td>$row['message']</td>
    </tr>
    Die soll sich dann eben wiederholgen, ich habs mit Smarty probiert, template laden ist kein Problem nur wie kann ich ner template eine Variable zuweisen die dann in ner Template geparst wird(Die Templ entries.tpl geladen)

    Ich hoffe ihr habt bissl verstanden was ich meine. Ich hab eigentlich eine TemplateKlasse gefunden die ich auch verwenden darf(Hab eine Gehnemigung vom Author) nur die kann ich nicht verwenden da irgendwas angepasst werden muss (Da er die Template für seinen script angepasst hat). Vielleicht könnt ihr mir da weiterhelfen.

    Hier die TemplateKlasse (siehe Anhang).

    Ps.: Frohe und besinnliche Weihnachten wünsche ich euch und natürlich einen guten Rutsch ins neue Jahr.
    Angehängte Dateien

  • #2
    @smarty http://smarty.php.net/manual/de/lang...gned.variables
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      Das habe ich mir schon angeschaut, nur ich habe es nicht soweit gebracht das es funktoniert. (beispiel mit der entries.tpl)

      Edit:
      müsste ich das so schreiben:
      PHP-Code:
      $smarty->assign('entries''entries.tpl'); 

      Kommentar


      • #4
        nein, der 2. parameter ist der wert den die variable haben soll.

        die variable musst du dann mit {$entries} ins template schreiben...




        .......... ich geh wieder zu meinen lieben, habe gerade mal das schöne neue gel-tastaturkissen und für die maus ausprobiert... jetzt muss ich nicht immer mit schmerzendem handgelenk rumlaufen oder nen handtuch aufn schreibtisch legen
        Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
        var_dump(), print_r(), debug_backtrace und echo.
        Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
        Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
        Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

        Kommentar


        • #5
          hmm noch immer nicht geschnallt, wie meinst du das genau?

          Kommentar


          • #6
            Mit dem Smarty-Befehl assign kannst du Variablen einen Wert zuweisen, welche du dann später per {varname} im Template aufrufen kannst:

            PHP-Code:
            $smarty->assign('author''$row[author]'); 
            Eine .tpl Datei anzeigen kannst du dann mit dem Befehl display:

            PHP-Code:
            $smarty->display('entries.tpl'); 
            Vergiss aber nicht die Klasse am Anfang aufzurufen...
            Mein Tipp: http://smarty.php.net/crashcourse.php

            Frohe Weihnacht

            Michael

            Kommentar


            • #7
              schreib dir doch ne kleine funktion die die tpl lädt und dann in eine variable schreibt die du dann assignst.
              und fertig ist die sache


              MFG
              Alex

              Kommentar


              • #8
                Das ist schon klar, nur ich hab da nen kleinen Problem, ich will der index.tpl sagen das er die boardbit.tpl laden soll.

                Hier mein phpcode:
                PHP-Code:
                <?php

                  
                require('./global.php');

                  
                #### Hole Katgegorien ####
                  
                function GetBoards() {
                   
                $qry mysql_query("SELECT * FROM _boards ORDER BY position");
                   while(
                $boards mysql_fetch_array($qry)) {
                   
                $tpl_c = new template//smarty "laden"
                   
                $tpl_c->assign('btitle'$boards['name']);
                   
                $tpl_c->output('boardbit.tpl');
                   
                GetSubBoards($boards['board_id']);
                   }    
                  }  
                  
                  
                ### Hole Unterkategorien ####
                  
                function GetSubBoards($board_id) {
                   
                $qry mysql_query("SELECT * FROM _subboards WHERE board_id = $board_id ORDER BY position"); 
                   while(
                $sboards mysql_fetch_array($qry)) {
                   
                $tpl_c = new template//smarty "laden"
                   
                $tpl_c->assign('stitle'$sboards['name']);
                   
                $tpl_c->output('boardbit.tpl');
                   }
                  }
                  
                  
                  
                GetBoards();
                  
                $tpl->output('index.tpl');
                 
                  


                ?>
                So wird die boardbit.tpl gleich ausgegeben obwohl in der index.tpl garnix steht. Versteht ihr was ich meine?

                Hier die index.tpl und boardbit.tpl

                index.tpl
                Code:
                <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
                <html>
                <head> 
                 <title>Unbekannt</title>
                 <link rel="stylesheet" type="text/css" href="{$stylepfad}/style.css">
                </head>
                
                <body>
                Test<br />
                
                $boardbit <!--- Da soll jetzt die boardbit.tpl angezeigt werden.-->
                </body>
                </html>
                und hier die board.tpl
                Code:
                {$btitle}<br>($stitle)
                <br><br>

                Ich hoffe ihr könnt mir weiterhelfen.
                Zuletzt geändert von .elementrio; 25.12.2005, 19:47.

                Kommentar


                • #9
                  sry wegen doppelpost, aber ich habe es noch immer nicht bekommen. Könnt ihr vielleicht weiterhelfen?

                  Kommentar


                  • #10
                    Öhm...

                    Schon mal was vom Smarty-Handbuch gehört? Nein? Dann wirds zeit...
                    http://smarty.php.net/manual/de/


                    Code:
                        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
                        <html>
                        <head> 
                         <title>Unbekannt</title>
                         <link rel="stylesheet" type="text/css" href="{$stylepfad}/style.css">
                        </head>
                    
                        <body>
                        Test<br />
                    
                        {include file="boardbit.tpl"} <!--- Da soll jetzt die boardbit.tpl angezeigt werden.-->
                        </body>
                        </html>

                    Kommentar


                    • #11
                      Original geschrieben von .elementrio
                      sry wegen doppelpost, aber ich habe es noch immer nicht bekommen. Könnt ihr vielleicht weiterhelfen?
                      preg_match_all nutzten, um die blöcke
                      {include fie=""} zu bekommen, und dann per backreference das bekommen, was bei file=".." steht, und halt die entsprechende datei includen!

                      Kommentar

                      Lädt...
                      X