Количество элементов? (Smarty)

Тема в разделе "PHP", создана пользователем DaJ, 2 окт 2008.

Модераторы: latteo
  1. DaJ

    DaJ Создатель

    Регистр.:
    29 янв 2008
    Сообщения:
    11
    Симпатии:
    1
    Как узнать количество элементов у массива, с помощью Smarty? или...
     
  2. silent9

    silent9 Постоялец

    Регистр.:
    7 июн 2008
    Сообщения:
    136
    Симпатии:
    10
    с помощью смарти такое не делается.. подсчет идет в скриптах, а в шаблонизаторе только вывод
    можеш конечно попробовать с {foreach} поизвращаться)
     
  3. DaJ

    DaJ Создатель

    Регистр.:
    29 янв 2008
    Сообщения:
    11
    Симпатии:
    1
    хорошо, а как это осуществить, на ПХП узнать количество элементов в масиве, и затем вернуться снова в шаблон и использовать это значение?
     
  4. silent9

    silent9 Постоялец

    Регистр.:
    7 июн 2008
    Сообщения:
    136
    Симпатии:
    10
    $elements=count($array);
    $this->smarty->assign("elements", $elements);
     
  5. megadude

    megadude

    Регистр.:
    6 сен 2006
    Сообщения:
    184
    Симпатии:
    66
    B Smarty - {$array|@count}
     
    drawing4 нравится это.
  6. DaJ

    DaJ Создатель

    Регистр.:
    29 янв 2008
    Сообщения:
    11
    Симпатии:
    1
    а вот последняя конструкция, это как?
    если можно поподробнее...
     
  7. megadude

    megadude

    Регистр.:
    6 сен 2006
    Сообщения:
    184
    Симпатии:
    66
    index.php
    Код:
    include('Smarty.class.php');
    $smarty = new Smarty;
    
    $smarty->assign('id', array(1,2,3,4,5));
    $smarty->display('index.tpl');
    index.tpl
    Код:
    <h1>{$id|@count}</h1>
     
  8. DaJ

    DaJ Создатель

    Регистр.:
    29 янв 2008
    Сообщения:
    11
    Симпатии:
    1
    а что если я изменять могу только шаблоны, вернее действия все могу совершать только в шаблонах (шаблоны ShopCMS :) )?
    и найти где же содержаться эти переменные трудновато (у которых надо сосчитать все элементы)...
     
  9. pslava

    pslava

    Регистр.:
    16 май 2007
    Сообщения:
    618
    Симпатии:
    122
    Сделай цикл и в цикле увеличивай переменную на 1, в итоге получишь количество элементов в массиве
     
  10. DaJ

    DaJ Создатель

    Регистр.:
    29 янв 2008
    Сообщения:
    11
    Симпатии:
    1
    думал есть более изящное решение, типа не документированный финт...

    Добавлено через 24 минуты
    все решилось вот такой конструкцией:
    Код:
    {section name=u loop=$products_to_show}{assign var="maxEl" value="`$maxEl+1`"}{/section}