Ankündigung

Einklappen
Keine Ankündigung bisher.

Variable als {xyz} definieren?

Einklappen

Neue Werbung 2019

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

  • Variable als {xyz} definieren?

    Hallo!

    Ich hab nun vor ein kleines Template System für eines meiner nächsten Projekte zu schreiben und stoße gerade auf ein kleines Problem, bei dem ich nicht mehr weiterkomme.

    Variable als {xyz} definieren?

    Ich habe mal in einem Templatesystem gesehen, dass im HTML Template als Title einfach nur {title} definiert ist. Das möchte ich bei meinem auch gerne so übernehmen. Nur wie geht das?

    Matze

  • #2
    naja das funtkioniert so:

    du durchsuchst die seite nach diesen { } und wo eins ist ersetzt du das dazwischen mit dem inhalt

    Kommentar


    • #3
      Ja und wie genau?

      Kommentar


      • #4
        soll ich dir nun ein ganzen tpl system posten`?

        such doch in google..

        kern wird auf jeden fall die php function preg_match sein zb

        nimm das : pb-tpl - Eine einfache aber effektive PHP-Template-Klasse

        Kommentar


        • #5
          Erstmals Hallo Nightuser und Willkommen im Forum.

          Entschuldige bitte den unfreundlichen Ton in Dominik's Post. Wird mal Zeit, dass Hoefti hier ne Nettiquette postet.

          Zu deinem Problem kann ich dir nur raten, nicht mit der Tür ins Haus zu fallen. Ein Template-System ist eine ziemlich grosse Aufgabe, die nicht einfach zu meistern ist, selbst für erfahrene PHP'ler.

          Ich würde dir von daher ein fertiges Template-System, wie Smarty, empfehlen.

          Auch wenn du dennoch ein eigenes Template-System schreiben möchtest, kannst du den Quellcode als Referenz gebrauchen.

          Für ganz rudimentäre Dinge, lässt sich preg_replace einsetzen. Damit kannst du gemäss einem Pattern nach Zeichen(-ketten) suchen und diese nach deinen Wünschen ersetzen.

          Gruss
          De Igäl
          Das Recht auf Dummheit gehört zur Garantie der freien Entfaltung der Persönlichkeit.
          Mark Twain

          Kommentar


          • #6
            Hey Igäl, danke für Deine Antwort!

            Ich kenn mich schon mit PHP aus, so ist es nicht. An str_replace hab ich auch schon gedacht, aber ich dachte es gibt noch einen anderen Weg das zu lösen.

            Matze

            Kommentar


            • #7
              Es gibt immer andere Wege. Der Einfachste von allen ist jedoch immer der, ein bestehendes Rad zu nehmen, anstatt es neu zu erfinden

              Wie gesagt:
              - Bestehendes Templatesystem benutzen
              oder
              - Mit preg_replace die Scripts nach deinen Template-Patterns abklappern und durch "gültige" Tags zu ersetzen
              oder
              - Bestehendes Templatesystem nach alternativen Lösungsansätzen durchforsten

              Benutze seit einiger Zeit das Smarty-Templatesystem und ich bin vollumfänglich zufrieden damit. Ist ein rundes Rad. Kann ich dir nur empfehlen

              Gruss
              De Igäl
              Das Recht auf Dummheit gehört zur Garantie der freien Entfaltung der Persönlichkeit.
              Mark Twain

              Kommentar


              • #8
                smarty ist für soetwas viel zu groß...folgender link reicht vollkommen aus:

                pb-tpl - Eine einfache aber effektive PHP-Template-Klasse

                schau es dir doch mal an...

                ps, zu dem was war da unfreundlich

                das ist keinewegs unfreundlich
                Code:
                soll ich dir nun ein ganzen tpl system posten`?
                
                such doch in google..
                das er google verwenden kann ist wohl klar, und das erste war eine normale frage. da kenn ich ganz unhöflichere fragen

                Kommentar


                • #9
                  Zitat von Dominik Beitrag anzeigen
                  ps, zu dem was war da unfreundlich

                  das ist keinewegs unfreundlich
                  Code:
                  soll ich dir nun ein ganzen tpl system posten`?
                  
                  such doch in google..
                  das er google verwenden kann ist wohl klar, und das erste war eine normale frage. da kenn ich ganz unhöflichere fragen
                  Sowas kann man doch eigentlich auch per PN bereden oder nicht? Hat hier nämlich nicht sehr viel zu suchen und hilft dem Fragenden auch nicht weiter.

                  Kommentar


                  • #10
                    du solltest nicht nur den unteren teil meines beitrages lesen

                    Kommentar


                    • #11
                      Hallo,


                      ohne alles durchgelesen zu haben, gebe ich dir diesen Ansatz:


                      PHP-Code:
                      function assign($key$value)
                      {
                          
                      $this->assigns[$key] = $value;
                      }
                       
                      function 
                      parse($txt)
                      {
                          return 
                      $txt preg_replace('/\{(.*)\}/i'$this->assigns[$1], $txt);

                      dürfte sich seblst erklären, wenn man genau hinguckt... Wie gesagt nur ein Ansatz aber sollte dir völlig reichen.


                      Ambience
                      Ich gebe gerne ICQ-Support gegen ein kleines Endgelt.

                      Kommentar


                      • #12
                        Danke Dominik!

                        Kommentar

                        Lädt...
                        X