2014-02-14 4 views
0

нужно удалить первый элемент после всех этих заявлений, я пытаюсь добавить key=i ко второму foreach, и добавить {if $i!=0}, но не работает для меня, потому что у меня есть многоуровневая система и после всех if заявлений первого $i отличается для всех страниц.Удалить первый элемент после того, как если оператор

{foreach from=$page.path item=e} 
    {assign var=element value=0} 
    {foreach from=$menu3 item=r} 
    {if $e.page_id==$r.page_id}{assign var=element value=$r}{/if} 
     {if $element._left < $r._left && $element._right > $r._right} 
     {if $r._level==$element._level+1 && $r._level==$page._level} 
     <a href="{$r.url}">{$r.name}</a> 
     {/if} 
     {/if} 
    {/foreach} 
{/foreach} 

P.S. Извините за мой английский.

+0

Я решаю его с другим выражением if else – Ap333

ответ

0

Добавить имя вам Еогеасп и сделать что-то вроде этого, чтобы получить индекс

{foreach from=$items key=myId item=i name=foo} 
    {$smarty.foreach.foo.index} <!-- It will show index --> 
{/foreach} 
+0

Я уже пытаюсь добавить индекс и показать его, а для разных страниц первый индекс отличается. – Ap333

0

Я предполагаю, что вы не хотите, чтобы отобразить первый элемент в каждом из меню у вас есть, не так ли?

{foreach from=$page.path item=e} 
    {assign var=first_skipped value=0} 
    {assign var=element value=0} 
    {foreach from=$menu3 item=r} 
     {if !$first_skipped} 
      {assign var=first_skipped value=1} 
     {else} 
      {if $e.page_id==$r.page_id}{assign var=element value=$r}{/if} 
      {if $element._left < $r._left && $element._right > $r._right} 
       {if $r._level==$element._level+1 && $r._level==$page._level} 
       <a href="{$r.url}">{$r.name}</a> 
       {/if} 
      {/if} 
     {/if} 
    {/foreach} 
{/foreach} 
+0

Что такое first_skipped? – Ap333

+0

Его переменная, которая действует как флаг. Он устанавливается в 0 для каждой страницы и обновляется до 1 после первого элемента в каждом меню. – xzag

+0

Не понимаю, как это использовать = ( – Ap333

Смежные вопросы