friedsch: Template Smarty

Hallo,

vor kruzem enteckte ich die Templateengine Smarty. Sehr praktisch!!!
Leider habe ich noch wenig Ahnung davon.
Kennt vieleicht jemand eine gute Referenz ähnlich selfHTML?
Habe bisher nur die von smarty.php.net gefunden.

Vielleicht kann mir auch jemand direkt bei meinem Problem helfen.
Ich habe aus PHP ein Multidimensioneles Array.

$navi= array("h_navi" => array(1 => "h_Nav1",
                               2 => "h_Nav2" ...),

"u_nav1" => array(3 => "u_nav1.1",
                               4 => "u_nav1.2",
                               5 => "u_nav2.1"),

"bezug" => array(3 => 1,
                              4 => 1,
                              5 => 2));
das Unterarray beschreibt den Bezug der Unternavigationspunkte zu den Hauptnav.
Die Ausgabe soll dann wie folgt aussehen:
 * h_Nav1
   * u_nav1.1
   * u_nav1.2
 * h_Nav2
   * u_nav2.1

Vielleicht denke ich auch einfach viel zu umständlich. So ist das, wenn man den Insideview hat.

Für anregende Vorschläge wäre ich sehr Dankbar.

  1. Hallo friedsch,

    Kennt vieleicht jemand eine gute Referenz ähnlich selfHTML?
    Habe bisher nur die von smarty.php.net gefunden.

    ich bin bisher mit http://smarty.php.net/docs.php immer zurechtgekommen

    * h_Nav1
       * u_nav1.1
       * u_nav1.2
     * h_Nav2
       * u_nav2.1

    dafür brauchst du zwei ineineander geschachtelte foreach-Schleifen[1]:

    <ul>
    {foreach from=$navi key=ebene1 item=ebene2arr}
      <li>{$ebene1}
        {if count($ebene2arr) > 0}
          <ul>
            {foreach from=$ebene2arr item=ebene2}
              <li>{$ebene2}</li>
            {/foreach}
          </ul>
        {/if}
      </li>
    {/foreach}
    </ul>

    wenn du dann mit $tmpl->assign('navi',$navi);[2] das Array dem Template zuweist, sollte es funktionieren.

    Grüße aus Nürnberg
    Tobias

    [1] http://smarty.php.net/manual/de/language.function.foreach.php
    [2] wobei $tmpl bei dir eben so heißen muss wie die Variable der du »new Smarty« zugewiesen hast

    1. Hallo,

      Kennt vieleicht jemand eine gute Referenz ähnlich selfHTML?
      Habe bisher nur die von smarty.php.net gefunden.

      mal kurze Einmischung: ist smarty so'ne Art Standard? Ich wollte mich demnächst auch mit Template-Technik befassen und habe bisher so gar keinen Schimmer, wo ich da überhaupt anfangen soll/muß/kann.

      Gruß, Andreas

      --
      http://forum.andreas-lindig.de <img src="http://forum.andreas-lindig.de/bilder/logo.png" border="0" alt="">
      einfach mal testen und Meinung hinterlassen
      1. Hallo Andreas,

        mal kurze Einmischung: ist smarty so'ne Art Standard?

        zu dem Zeitpunkt[1] wo ich eine Templesystem brauchte[2], kannte ich (vom phpBugTracker her) nur Smarty - also habe ich das genommen :-)
        Kurz darauf habe ich in der Zeitschrift "php solutions"[3] einen Artikel über Smarty gelesen, wo Smarty als das robusteste System gelobt wird - inwiefern das stimmt, kann ich nicht sagen, aber es scheint mir das mit dem umfangreichsten Funktionsumfang und der ausführlichsten Dokumentation zu sein, auch in den Benchmarks[4] hat Smarty am besten abgeschnitten (allerdings weiß ich nicht, wie alt die Benchmarks wirklich sind).

        Ich wollte mich demnächst auch mit Template-Technik befassen und habe bisher so gar keinen Schimmer, wo ich da überhaupt anfangen soll/muß/kann.

        auf [4] und [5] stehen einige Template-System - allerdings ist bei den meisten die Dokumentation miserabel ...

        Grüße aus Nürnberg
        Tobias

        [1] das ist allerdings noch nicht lange her :-)
        [2] das was ich selbst geschrieben hatte wurde mir zu kompliziert ...
        [3] http://www.phpsolmag.org/
        [4] http://www.phpinsider.com/benchmarks_phemplate/
        [5] http://www.dclp-faq.de/q/q-stil-content-code.html

        1. Hallo.

          zu dem Zeitpunkt[1] wo ich eine Templesystem brauchte[2],

          ... hattest du zu viel Diablo gespielt.
          MfG, at

          1. Hallo at,

            zu dem Zeitpunkt[1] wo ich eine Templesystem brauchte[2],
            ... hattest du zu viel Diablo gespielt.

            nachdem ich nachgeschaut habe, was das überhaupt ist: nö, wieso?

            Grüße aus Nürnberg
            Tobias

            1. Hallo.

              zu dem Zeitpunkt[1] wo ich eine Templesystem brauchte[2],
              ... hattest du zu viel Diablo gespielt.
              nachdem ich nachgeschaut habe, was das überhaupt ist: nö, wieso?

              Weil mir am Wort

              Templesystem

              etwas aufgefallen war.
              MfG, at

              1. Hallo at,

                Weil mir am Wort

                Templesystem
                etwas aufgefallen war.

                uups, da fehlst du ja noch - das du auch immer alles so genau lesen musst :-)

                Grüße aus Nürnberg
                Tobias