Mein Template System

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

  • Mein Template System

    ICh habe ein kleines Template system geschrieben,
    diese Funtzt net richtig, hier erstmal der code von der datei die alles verarbeitet:
    PHP-Code:
    <?php
    function template($dateiname$ersetzen$platzhalter) {
    $datei file_get_contents("templates/".$_SESSION[template_name]."/".$dateiname);
    $i 0;
    $value1 count($platzhalter);
    while(
    $i $value1) {
    $datei str_replace($platzhalter[$i], $ersetzen[$i], $datei);
    $i++;
    }
    return(
    $datei);
    }
    ?>
    Ich habe eine datei Gebaude.php, und zwei möglichkeiten mit den templates umzugehen:
    einmal:
    setze ich an den fuß der datei diesen code:
    PHP-Code:
    $platz_h[] = array("{titel}");
    $ersetzen_h[] = array("Gebäude");
    $platz = array("{daten}");
    $ersetzen[] = $string;
    echo(
    template("header.php"$ersetzen_h$platz_h));    
    echo(
    template("gebaude.php"$ersetzen$platz));    
    include(
    "templates/{$_SESSION[template_name]}/footer.php"); 
    dort wird die datei header.oho direkt angesprochen, und ich kann dort keinen PhP code einbringen.
    dann habe ich die möglichkeit dies so zu machen:
    PHP-Code:
    $platz_h[] = array("{titel}");
    $ersetzen_h[] = array("Gebäude");
    $platz = array("{daten}");
    $ersetzen[] = $string;
    include(
    "header.php");
    echo(
    template("gebaude.php"$ersetzen$platz));    
    include(
    "templates/{$_SESSION[template_name]}/footer.php"); 
    Bei dieser methode wird der String aus der geöffneten datei nicht überarbeitet, bei der anderen möglich keit funktioniert alles, ich weiß nicht weiter , weil ich ja eigentlich nichts an der sache um die es hier geht verändere. Ich frage mich warum bei der letzteren möglichkeit der String nicht überarbeitet wird.
    Ich gebe hier nochmal die datei Header an zum verständnis, das ist die header datei, die bei der inclusion verwendet wird:
    PHP-Code:
    <?php
    $ersetzen_h
    [] = file_get_contents("templates/".$_SESSION[template_name]."/includes/logo.tpl");
    $platz_h[] = "{logo}";
    echo(
    template("header1.php"$ersetzen_h$platz_h));
    include(
    "verweise.php");
    echo(
    template("header2.php"$ersetzen_h$platz_h));
    ?>
    mfg Hennieliminator

    ps: danke schonmal im vorraus

  • #2
    leute bitte es ist wichtig

    Kommentar


    • #3
      Original geschrieben von Hennieliminator
      leute bitte es ist wichtig
      nicht drängeln! wenn einer lust hat, beschäftigt er sich damit!

      gruß
      peter
      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
      Meine Seite

      Kommentar


      • #4
        mhh na ok du hast recht sorry...

        Kommentar


        • #5
          Ich habe Lust...
          $platz_h[] = "{titel}";
          $ersetzen_h[] = "Gebäude";
          oder
          $platz_h = array("{titel}");
          $ersetzen_h = array("Gebäude");

          und im header.php andere Variabelnnamen als im index.php geben,
          um die vom index.php nicht unfreiwillig zu überschreiben. HTH.

          Kommentar


          • #6
            Re: Mein Template System

            Original geschrieben von Hennieliminator
            ICh habe ein kleines Template system geschrieben,
            diese Funtzt net richtig,
            das funzt net? das ist aber echt schade für dich.

            ps: danke schonmal im vorraus
            wofür bedankst du dich?
            vielleicht fürs komplette lesen deines kauderwelschs? - ich habs getan, bitte.

            dabei habe ich übrigens eine konkrete problembeschreibung ebenso vermisst, wie eine konkrete frage.

            leute bitte es ist wichtig
            was meinst du mit es?

            Kommentar


            • #7
              @3DMax:
              Sorry vllt etwas undeutlich formuliert:
              Bei der ersten möglichkeit funktioniert eigentlich alles, nur ich kann halt keinen PHP code in der Header.php ausführen, da sie als string ankommt.
              Bei der zweiten möglichkeit funktioniert nur der header, das ersetzen von den platzhaltern in gebaude.php (die template datei) funktioniert nicht mehr, ich habe im grunde nur den code auf die datei header.php (nicht die template datei), der mit dem header zu tun hat, verschoben und habe halt die anweisungen so aufgeteilt, dass die navigation und das logo mit eingebracht werden können. Ich habe also nichts an den Variablen von der Gebaude.php und template gemacht. Aber jetzt kommt das problem: Das ersetzen von den platzhaltern in der gebaude.php (template) wird nicht mehr gemacht, als ob die while schleife nicht einmal durchlaufen wird.

              ich hoffe es ist nun etwas verständlicher

              achso und konkrete frage:
              wer kann mir sagen wo der fehler liegt oder was ich falsch mache

              und ich bedanke mich schonmal im vorraus bei denen die mir helfen...
              Zuletzt geändert von Hennieliminator; 28.10.2006, 14:23.

              Kommentar


              • #8
                Hallo Henrik, an deinem Code ist alles richtig (nicht sofort durchschaubar, aber trotzdem). Es liegt an was anderem. Vielleicht ist der gepostete Code ein Ausschnitt und der Fehler ist in der Nähe passiert.
                Viel Glück.

                Kommentar


                • #9
                  Ein Mini Templateparser, evtl. hilft er dir ja....

                  Aus meiner Wühlkiste:
                  PHP-Code:
                  <?php
                  error_reporting
                  (E_ALL);
                  ini_set('display_errors'TRUE); // evtl. hilfreich


                  function template($string,$array
                  {
                    
                  $pattern '/{([^}]*)}/ie';
                    
                  $eval 'isset($array["$1"])?$array["$1"]:"$0"';
                    return 
                  preg_replace($pattern,$eval,$string);
                  }

                  $string "Ein {Tier} sprang über {Hindernis} </br>";

                  $var = array();

                  $var['Tier'] = 'Hund';
                  $var['Hindernis'] = 'den Graben';
                  echo 
                  template($string,$var) ;

                  $var['Tier'] = 'Pferd';
                  $var['Hindernis'] = 'das Gatter';
                  echo 
                  template($string,$var) ;

                  ?>
                  Wir werden alle sterben

                  Kommentar

                  Lädt...
                  X