Template Funktion verbessern

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

  • Template Funktion verbessern

    Hi, ich bins mal wieder ^^ also hab folgende Frage:

    wollte mal meine Template Funktion so verbessern, dass ich im Template While Schleifen verwenden kann, kann mit jmd sagen was ich dazu alles brauche? thx schonmal im voraus..
    Hier die bisherige TEmplate Funktion:

    PHP-Code:
    function tpl($template,$array) {
      
    $oeffnen fopen("templates/".$_SESSION['lang']."/".$template.".tpl""r");
      
    $tpl_array = array();
      while (!
    feof($oeffnen)) {
       
    $zeile fgets($oeffnen50000);
       
    array_push ($tpl_array$zeile);
      }
      
    fclose($oeffnen);
      
    $tpl_string implode (""$tpl_array);
      
    $tpl_string strtr($tpl_string$array);
      echo 
    $tpl_string;
     } 
    1123581321

  • #2
    sag mal umständlicher kriegt man eine datei wirklich nich in einen String...
    such mal das hier file_get_contents
    und dann öffnest Du für jeden klitzekleinen mist ne Datei???
    benutz mal arrays
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      naja auf meine frage war das keine antwort.. O.o
      1123581321

      Kommentar


      • #4
        na Du willst Deine Template Funktion verbessern das mach das doch.
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #5
          die Funktion die Du da hast mit schleifen zu verbessern, so wie Du das siehst is genauso müll wie die funktion die Du da hast ansich...
          Beantworte nie Threads mit mehr als 15 followups...
          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

          Kommentar


          • #6
            hm, also ok, was rätst du mir nun?
            1123581321

            Kommentar


            • #7
              schau dir einfach mal eine der unzähligen templateklassen an die es gibt und probier zu verstehen wie sie funktionieren.

              was du da zusammengebaut hast ist totaler umstand und macht im moment nichts anderes als eine datei zu laden und ein paar zeichen auszutauschen.

              sieh dir mal die funktionsreferenz von php auf http://de.php.net an
              und da z.b. die funktion file_get_contents, die wird die hälfte deiner funktion erstmal überflüssig machen.

              Kommentar


              • #8
                ok, stimmt, is um einiges kürzer und unkomplizierter, mein code sieht jetzt so aus:
                PHP-Code:
                 $title 'Der Titel';
                 
                $body 'Der Body';
                 
                $file 'templates/template.tpl';
                 
                $string file_get_contents($file);
                 
                $array = array('{title}'=>$title'{body}'=>$body);
                 
                $string_replaced strtr($string$array);
                 echo 
                $string_replaced
                thx soweit schonmal, wie krieg ich jetzt das so hin, dass ich ne schleife in dem template ausführen kann?
                1123581321

                Kommentar


                • #9
                  Überlegen, denken, suchen (hie rim Forum, vorzugsweise Brainstorming)
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    hm, wäre dankbar wenn du es mir etwas genauer sagen könntest..
                    1123581321

                    Kommentar


                    • #11
                      Brainstorming

                      Dadrin suchen kannst du selbst?
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar


                      • #12
                        naja schon, aber wonach soll ich denn suchen? ich hab ja keinen plan?
                        1123581321

                        Kommentar


                        • #13
                          Template Schleife

                          Template Block

                          Template wiederholen

                          oder einfach nur nach Template?
                          Ich denke, also bin ich. - Einige sind trotzdem...

                          Kommentar


                          • #14
                            so habs jetzt ohne suchi geschafft und meine kopf mal eingeschaltet, aber wie immer is diese lösung garantiert nicht die beste, is meine erste klasse:

                            PHP-Code:
                            <?php
                             
                            class tpl {
                              var 
                            $template;
                              function 
                            select ($file) {
                               
                            $path 'templates/'.$_SESSION['lang'].'/';
                               
                            $location $path.$file.'.tpl';
                               if(!
                            file_exists($location)) {
                                die(
                            'Das Template '.$location.' existiert nicht');
                               } else {
                                
                            $this->template[$file] = file_get_contents($location);
                               }
                              }
                              function 
                            assign ($file$replace$replaced) {
                               
                            $this->template[$file] = str_replace($replace$replaced$this->template[$file]);
                              }
                              function 
                            assign_endless ($file$array$replace$format_1$format_2) {
                               
                            $anzahl count($array);
                               for(
                            $a=0;$a<$anzahl$a++) {
                                
                            $anzahl_2 $anzahl 1;
                                if(
                            $a == $anzahl_2) {
                                 
                            $this->template[$file] = str_replace('{'.$replace.'}''{'.$replace.'_'.$a.'}'$this->template[$file]);
                                } else {
                                 
                            $this->template[$file] = str_replace('{'.$replace.'}''{'.$replace.'_'.$a.'} {'.$replace.'}'$this->template[$file]);
                                }
                               }
                               for(
                            $a=0;$a<$anzahl;$a++) {
                                
                            $this->template[$file] = str_replace('{'.$replace.'_'.$a.'}'$format_1.$array[$a].$format_2$this->template[$file]);
                               }
                              }
                              function 
                            output ($file) {
                               echo 
                            $this->template[$file];
                              }
                             }
                            ?>
                            1123581321

                            Kommentar

                            Lädt...
                            X