serejatoje
@serejatoje

Как вывести элемент массива в Smarty?

Всем привет! Имеется такой шаблон Smarty:

{if $smarty.get.oid}
    {include file=fend.catalog__object__view.tpl}
{else}
    {catalog__define_sid sid=$sid assign=csid sss=$sss}
    {if $csid}
        {counter start=0 print=false}
        <div id="navi_3">
        {foreach from=$sss[$sid] item=i key=key}
            {counter assign=lnk_cnt}
            <a href="{$php_self}?sid={$i->g('uid')}&csid={$i->g('id')}{if $smarty.get.type}&type={$smarty.get.type}{/if}"{if $i->g('id') == $csid} class="selected"{/if}{if $i->g('id') == $csid || $i->g('oc') == 0} onClick="return false;"{/if}{if $i->g('oc') == 0} class="disabled"{/if}>{$i->g('tit')} <span class="s1">({$i->g('oc')}) <b>ЗДЕСЬ ЭЛЕМЕНТ МАССИВА</b></span></a>
            {if $lnk_cnt != count($sss[$sid])}
                <span class="s2">>></span>
            {/if}
        {/foreach}
        </div>
        {catalog__load__by_sid sid=$csid assign=os}
    {else}
        {if $sid==94 || $sid==95 || $sid==67 || $sid==68}
            {catalog__load__by_sid sid=$sid assign=os}
        {else}
            {catalog__load__by_ss ss=$sss[$sid] sid=$sid assign=os}
        {/if}
    {/if}
    {if $os} 
        {catalog__option__load__all assign=opts}
        {catalog__option__value__load__all assign=ovs}
        {catalog__image__load__by__objects objects=$os assign=is}
        {catalog__sync os=$os opts=$opts ovs=$ovs is=$is}
        {table_colomns from=$os item=i tpl='fend.catalog__object__list__item.tpl' columns=2 table_styles='id="cat"' td_styles='class="cat_item"'}
    {else}                       
    	<div style="padding: 10px;">{lang v=admin.catalog__no_items}</div>
    {/if}
{/if}


На 10 строке кода (между тегом B) нужно вывести значение.. На страничке указываю $tpl->assign_by_ref('count', $count), тобишь даю шаблону прямую ссылку на переменную count. Хорошо. Но у меня не получается вывести этот массив $count в шаблоне так, чтобы выводимый индекс массива был = {$i->g('id')}, тоесть $count[ $i->g('id') ] шаблон просто не выводится. Переменная $i берется из foreach, тут понятно.. но почему не выводится значение - непонятно. Кто может помочь советом? Надеюсь доходчиво объяснил.
  • Вопрос задан
  • 2474 просмотра
Пригласить эксперта
Ответы на вопрос 1
27cm
@27cm
TODO: Написать статус
В Smarty 3 должно так работать:
{$count[$i->g('id')]}
www.smarty.net/docs/en/language.syntax.variables.tpl

Как вариант попробуйте так:
{assign var="id" value=$i->g('id')}
{$count.$id}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы