Template

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

  • Template

    Hallo,
    also ich arbeite gerade an einem Template. Die Grundsachen habe ich schon kapiert allerding habe ich folgende Probleme.
    Ich setzte die Markierungen in der template.html so:
    #menu# usw.
    danach lese ich Sie dann aus und zwar so:
    Code:
    $text = implode("", file("template.html")); // Einlesen der Datei 
    $text = str_replace("#menu#","$menu",$text);
    Was ist aber wenn ich eine Seite includen möchte?
    Dann gibt er mir immer den Seitennamen aus, das ist auch klar wie mache ich das das er die includete Datei ausliest?
    Code:
    $text = implode("", file("template.html")); // Einlesen der Datei 
    $text = str_replace("#include#","$site",$text);
    Mfg
    BenBay

  • #2
    gar nicht. das was du im include machst, einfach nicht direkt ausgeben , sondern in eine VAR schreiben. dann kannst du das wieder ersetzen.
    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


    • #3
      äehm, und wie?
      Code:
      $ausgabe = ???????????;
      Mfg
      BenBay

      Kommentar


      • #4
        PHP-Code:
        // statt
        echo 'ausgabe';
        echo 
        'text';

        // machst du 
        $ausg '';
        $ausg.= 'ausgabe';
        $ausg.= 'text'
        und jetz frage nicht wie das geht. das sind php grundlagen
        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


        • #5
          Wenn ich dir einen Tip geben darf:
          Warum machst du es nicht über eine Klasse?
          class_temp.inc.php
          PHP-Code:
          define("TEMPLATE_ER_FILE","Konnte die Datei nicht laden.");
          class 
          Template
          {
              var 
          $template_file;
              var 
          $text;

              function 
          Template($filename "")
              {
                  if (!
          $filename)    { return false; }
                  if (
          $filename) {$this->template_file $filename;}
                  if (!
          $open = @fopen($this->template_file,'r'))
                  {
                      die(
          TEMPLATE_ER_FILE);
                  }
                  
          $this->text fread($open,filesize($this->template_file));
                  
          fclose($open);
              }

              function 
          change($array "")
              {
                foreach(
          $array as $key=>$replace_string)
                {
                  
          $this->text str_replace("{".$key."}"$replace_string$this->text);
                }
              }

              function 
          out()
              {
                  print 
          $this->text;
              }

          Das ganze bindet man dann inetwa so ein.
          PHP-Code:
              include('class_temp.inc.php');
              include(
          $language);

              
          $result mysql_query("..."

              
          for($i=0$i<$num$i++)
              {
                  
          $get['ip'] = stripslashes(mysql_result($result$i"serverip"));
                  
          $get['email'] = stripslashes(mysql_result($result$i"adminemail"));
              }
              
          mysql_close($connect);
              
          $template $template."admin_login.tpl";
              
          $tpl = new Template($template);
              
          $tpl->change($lang);
                          
          $tpl->change($get);
              
          $tpl->out(); 
          So kann man jetzt einach assoziative Arrays and die Klassenfunktion change übergeben welche Sie dann mit den in der template gesetzten Platzhaltern ersetzt.

          Die Template Platzhalter sind dann praktisch der Array Key
          also $lang['email'] wird dann in ...<td>....{email}...</td>... eingesetzt.

          Mfg Markus

          Mfg Markus

          Kommentar

          Lädt...
          X