2016-08-01 1 views
0

Как я могу проверить имя элемента foreach и отобразить его?Как проверить, что итерация получила имя?

Мой на данный момент реализована код, который проверяет, является ли элемент четный или нечетный:

{foreach $panels as $item} 
{if [email protected] is odd} 
{outputHomePanels} 
{/if} 
{/foreach} 

Весь код:

{function name=outputHomePanels} 
       <div menuItemName="{$item->getName()}" class="panel panel-default panel-accent-{$item->getExtra('color')}{if $item->getClass()} {$item->getClass()}{/if} {$item->getName()}"{if $item->getAttribute('id')} id="{$item->getAttribute('id')}"{/if}> 
        <div class="panel-heading"> 
         <h3 class="panel-title"> 
          {if $item->getExtra('btn-link') && $item->getExtra('btn-text')} 
           <div class="pull-right"> 
            <a href="{$item->getExtra('btn-link')}" class="more-link"> 
             {$item->getExtra('btn-text')} 
            </a> 
           </div> 
          {/if} 
          <div class="clientarea-icon {$item->getName()}"> 
          {if $item->hasIcon()}<i class="{$item->getIcon()}"></i>{/if} 
          </div> 
          <div class="clientarea-title"> 
          {$item->getLabel()} 
          </div> 
          {if $item->hasBadge()}<span class="badge">{$item->getBadge()}</span>{/if} 
         </h3> 
        </div> 
        {if $item->hasBodyHtml()} 
         <div class="panel-body"> 
          {$item->getBodyHtml()} 
         </div> 
        {/if} 
        {if $item->hasChildren()} 
         <div class="list-group{if $item->getChildrenAttribute('class')} {$item->getChildrenAttribute('class')}{/if}"> 
          {foreach $item->getChildren() as $childItem} 
           {if $childItem->getUri()} 
            <a menuItemName="{$childItem->getName()}" href="{$childItem->getUri()}" class="list-group-item{if $childItem->getClass()} {$childItem->getClass()}{/if}{if $childItem->isCurrent()} active{/if}"{if $childItem->getAttribute('dataToggleTab')} data-toggle="tab"{/if}{if $childItem->getAttribute('target')} target="{$childItem->getAttribute('target')}"{/if} id="{$childItem->getId()}"> 
             <div class="clientarea-icon {$childItem->getLabel()|stristr:'<' : true}"> 
              <i class="icon-clientarea-product"></i> 
             </div> 
             <div class="clientarea-title"> 
              {assign var="splitItem" value=" - "|explode:$childItem->getLabel()} 
{$splitItem[1]} 
             </div> 
             {if $childItem->hasBadge()}&nbsp;<span class="badge">{$childItem->getBadge()}</span>{/if} 
            </a> 
           {else} 
            <div menuItemName="{$childItem->getName()}" class="list-group-item{if $childItem->getClass()} {$childItem->getClass()}{/if}" id="{$childItem->getId()}"> 
             {if $childItem->hasIcon()}<i class="{$childItem->getIcon()}"></i>&nbsp;{/if} 
             {$childItem->getLabel()} 
             {if $childItem->hasBadge()}&nbsp;<span class="badge">{$childItem->getBadge()}</span>{/if} 
            </div> 
           {/if} 
          {/foreach} 
         </div> 
        {/if} 
       </div> 
      {/function} 

мне нужно проверить, если имя элемента является «Активные продукты /Сервисы".

Как я могу это достичь?

+0

Это работает? {if $ item @ name == "Active Products/Services"} – vitorsdcs

+0

Объясните бит больше и добавьте данные $ панелей здесь. –

+0

@GovindSamrow Я редактирую больше кода. –

ответ

0
if ($item == "Active Products/Services") { 

    // code here 

} 
+0

Пробовал, это, но это не работает. См. Мой обновленный вопрос. –

0

Это выглядит как код Smarty, а не код PHP. Также ваша семантика несколько запутанна. Если вы имеете в виду, как вы должны проверить на совпадение по значению ключа массива, то ....

{foreach $panels as $name=>$item} 
    {if ("Active Products/Services" == $name) } 
    ... 
    {/if} 
    {if [email protected] is odd} 
    {outputHomePanels} 
    {/if} 
{/foreach} 

Ото, если вы хотите только «outputHomePanels» где имя «Активные товары/услуги» то ...

{ if ($name = isset($item['Active Products/Services']) ? $item['Active Products/Services'] : false) } 
    {outputHomePanels} 
{/if} 

... но вы не должны внедрять логику приложения в smarty - это должно быть в PHP.

+0

Пробовал, это, но это не работает. См. Мой обновленный вопрос. –

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