Smarty und IF Schleifen

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

  • Smarty und IF Schleifen

    Hi Leute,

    ich setzte gerade ein template in smarty um, nur hab ich folgendes problem,
    es funktioniert zwar alles, aber das sieht blöd aus.

    ich brauch einmal die isset abfrage und wenn dort $navi.1.$pageid gesetzt ist,
    dann brauch ich

    <li class="sub_head">{$navi.parent.1.$pageid}</li>

    und wenn $navi.1.$parentid gesetzt ist brauch ich

    <li class="sub_head">{$navi.parent.1.$parentid}</li>

    das problem ist mir gefällt das nicht dass ich das nun zweimal im code habe,
    weil das ja das gleiche macht.

    Ich finde allerdings hier keine lösung, wisst Ihr eine?

    Also so dass ich das mit einer If Schleife aufbauen kann.

    Grüße

    PHP-Code:
    {if isset($navi.1.$pageid) }
        <
    li class="sub_head">{$navi.parent.1.$pageid}</li>
            {foreach 
    name=subnav key=subnavk item=subnav from=$navi.1.$pageid}
                {if 
    $subnavk==$smarty.get.name}
                    <
    li class="sub_o"><a href="{$subnav}class="sub_o">{$subnavk}</a></li>
                {else}
                    <
    li class="sub"><a href="{$subnav}class="sub">{$subnavk}</a></li>
                {/if}        {/foreach}    
        {/if}
        {if isset(
    $navi.1.$parentid) }
        <
    li class="sub_head">{$navi.parent.1.$parentid}</li>
            {foreach 
    name=subnav key=subnavk item=subnav from=$navi.1.$parentid}
                {if 
    $subnavk==$smarty.get.name}
                    <
    li class="sub_o"><a href="{$subnav}class="sub_o">{$subnavk}</a></li>
                {else}
                    <
    li class="sub"><a href="{$subnav}class="sub">{$subnavk}</a></li>
                {/if}
            {/foreach}    
        {/if} 
    Zuletzt geändert von p_rehm; 08.05.2006, 01:17.

  • #2
    ich liebe If Schleifen
    Location: http://www.phpinsider.com/smarty-forum/
    Slava
    bituniverse.com

    Kommentar


    • #3
      das problem ist ja nicht die if abfrage, sondern dass die abhängig sein müssen.

      also in dem sinne abhängig dass ich auf die variable die in den if abfragen matcht
      nachher aufrufen muss. und nicht die andere.
      Zuletzt geändert von p_rehm; 08.05.2006, 01:17.

      Kommentar


      • #4
        Was gibt es denn für eine Beziehung zwischen $pageid und $parentid? Kann man beispielsweise sagen, dass nur eine von beiden Variablen gesetzt sein kann?

        Falls nicht, wäre ein Lösung wie diese denkbar:

        PHP-Code:
        {php}
            
        $setvars = array();
            if (isset(
        $navi[1][$pageid])) $setvars[] = $pageid;
            if (isset(
        $navi[1][$parentid])) $setvars[] = $parentid;
        {/
        php}
        {foreach 
        from=$setvars item=var}
            <
        li class="sub_head">{$navi.parent.1.$var}</li>
            {foreach 
        name=subnav key=subnavk item=subnav from=$navi.1.$var}
                {if 
        $subnavk==$smarty.get.name}
                    <
        li class="sub_o"><a href="{$subnav}class="sub_o">{$subnavk}</a></li>
                {else}
                    <
        li class="sub"><a href="{$subnav}class="sub">{$subnavk}</a></li>
                {/if}
            {/foreach}    
        {/foreach} 

        Kommentar


        • #5
          es gibt keine if schleifen.
          if ist eine verzweigung.
          ich kann ein wenig c,c++,c#,java, php und bei diesen sprachen existiert if schleife einfach nicht
          vielleicht gibt es if schleife bei Smarty die zwar in php geschrieben wurde, hat sich aber zu eigener sprache entwickelt.
          Gerade aus diesem grund habe ich dir ein link zu proffesionelen Smarty forum gesendet (in mehreren sprachen, auch auf deutsch)
          mehr kann ich leider nicht helfen, da ich meine eigene Templatensystem benutze.
          viele Grüße
          Slava
          Slava
          bituniverse.com

          Kommentar


          • #6
            hehe, ja das wort war falsch gewählt.

            ich denke eh, dass sich das problem nicht lösen lässt.

            Kommentar


            • #7
              Original geschrieben von onemorenerd
              Was gibt es denn für eine Beziehung zwischen $pageid und $parentid? Kann man beispielsweise sagen, dass nur eine von beiden Variablen gesetzt sein kann?
              Es kann nur eines gesetzt sein. Das ist ja das Problem.

              Mir fiel einfach nichts ein.

              Wobei deine Lösung ja auch passen müsste, nur eins erfüllt ist.

              Werd ich gleich mal testen.

              ---

              wobei ich ja nachdem ich php ausgeführt habe die variablen wieder an smarty assignen muss... denk ich mal.
              Zuletzt geändert von p_rehm; 08.05.2006, 01:36.

              Kommentar

              Lädt...
              X