Template: Variablen aus übergeordneten Blöcken nötig?!

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

  • Template: Variablen aus übergeordneten Blöcken nötig?!

    Hallo Template-User,

    meine eigene Template-Klasse läuft soweit. Jetzt habe ich - weiß nicht mehr wo - gelesen, dass in verschachtelten Blöcken/Schleifen der Zugriff auf Variable der äußeren Schleifen möglich ist.

    Meine Klasse unterstützt Blöcke/Schleifen auch mit Verschachtelung. Nun überlege ich die obige Funktion für mich auch zu realsieren - aber wo könnte ich das brauchen ?? Oder ist diese Funktion total sinnlos? Sagt mir eure Meinung bzw. gebt mir Beispiel wo eine solche Funktion notwendig ist.

    Kleines Beispiel:
    PHP-Code:
    Block1
        
    {var1}
        
    blablabla
        Block2
            
    {var2}
            {
    Block1:var3}
            
    blablabla
        
    /Block2
    /Block1 
    Varibalen ohne : sind sozusagen lokale (eigener Block), mit Doppelpunkt vorweg wird ein äußerer Block / äußere Schleife angesprochen.

    Es geht nicht um technische Umsetzung, sondern um den Sinn dieser Funktion.

    Danke für alle hilfreichen Tipps!

  • #2
    ... na los, gebt's mir! Hier im Forum laufen doch ständig Diskussionen über Templates - braucht man nun die Option Variabeln aus übergeordneten Blöcken anzusprechen oder ist das Unfug?

    Ich möchte nur eure Meinung hören (villeicht ein Beispiel für sinnvolle Fälle ...) ich brauchen keine Code!

    Danke!

    Kommentar


    • #3
      Original geschrieben von Patrick_PQ
      braucht man nun die Option Variabeln aus übergeordneten Blöcken anzusprechen oder ist das Unfug?
      Kommt drauf an *g*

      Aber es sollte ja nicht schwer sein, das umzusetzen, insofern kannst du's ruhig einbauen, musst es janicht nutzen *g*
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        @happi: vielen Dank für deine Antwort!

        Du hast ja recht - kommt ganz drauf an was man will ...

        Ich möchte meine Klasse eigentlich möglichst schlank und einfach halten. Daher überlege ich jetzt ob sich überhaupt Einsatzgebiete für so eine Funktion bieten. Bislang habe ich das noch nicht gebraucht (sonst hätte ich ja auch nicht gefragt).

        Mit etwas Geduld würde ich diese Funktion sicher auch in meine Klasse einbauen können, aber dadurch wird sie ja auch wieder etwas langsamer. Jede Prüfung bzw. komplexere RegEx benötigt Zeit ... auch wenn's nur Kleinkram ist.

        Vielleicht kann mir noch jemand ein Beispiel für einen sinnvollen Einsatz dieser Funktion geben ?

        Kommentar


        • #5
          hmmm ....


          also ich würde da eventuell erstmal abwarten und däumchendrehen ...

          denn wenn du es momentan nicht brauchst, würd ich es nicht implementieren ...

          wenn du es brauchst, fügst du deiner klasse einfach die neue funktion zu ...
          die alten skripte laufen noch, die neuen, welche das brauchen auch ...

          so wird alles gut und du sparst dir die zeit, bis du einen sinnigen einsatz dafür hast ...

          gruss
          iglo

          Kommentar


          • #6
            Sowas überlegt man sich eigentlich bevor man beginnt zu proggen Ich habe es meine so gelöst:
            Code:
            {block 'NAME_OF_BLOCK'}
            {varNamex} <br />
            bla {anotherVar}
            {/BLOCK}
            Wenn nun anotherVar in dem BLOCK-Array nicht vorhanden ist, wird geprüft ob sie evtl. im "globalen" Array vorhanden ist. Wenn Sie es ist, wird sie genommen. Andernfalls Wird mit NULL replaced. Da ich alles auf Existenz überprüfe, stellt das kein Problem dar. Als Entwickler muss man so sehr sauber arbeiten, um keine unerwünschten Effekte zu bekommen
            h.a.n.d.
            Schmalle

            http://impressed.by
            http://blog.schmalenberger.it



            Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
            ... nur ohne :-)

            Kommentar


            • #7
              @iglo: Danke, die Sache mit der zusätzlichen Funktion und dem Hinweis auf Abwärtskompatibilität finde ich sehr gut.

              @schmalle: Ich habe es bei mir ähnlich gelöst. Alle Vars die nicht vorhanden sind werden gelöscht. Allerdings suche ich Vars im Block auch nur im Array mit den Daten für diesen Block. Dadurch kann ich die Var "titel" in mehreren Blöcken mit verschiedenen Inhalten verwenden.

              Ich hätte - wie oben beschrieben - dem Namen der Variable jetzt den Blocknamen und einen Doppelpunkt vorangestellt. Deine Lösung finde ich allerdings auch sehr gut.

              Jetzt habe ich erst einmal wieder ein paar Ansätze und Dinge über die ich nachdenken kann.

              Vielen Dank an alle Helfer!

              Kommentar

              Lädt...
              X