Порой есть задача реализовать несколько типов отображения товаров в каталоге, например, табличного вида и галереи. Сделать это достаточно просто — тут поможет в реализации задачи работа с куками через яваскрипт.
Определим переменную в куках view, отвечающую за тип отображения. Создадим 2 ссылки с видом отображения в шаблоне products.tpl

<a onclick="document.cookie='view=table;path=/';document.location.reload();" href="javascript:;">таблицей</a> 
<a onclick="document.cookie='view=gallery;path=/';document.location.reload();" href="javascript:;">галереей</a>

Тут мы пишем переменные в куки и перегружаем страницу. При желании можете по аналогии задать и третий. четвертый вид отображения.
Поскольку на выборку данных наши манипуляции никакого влияния не оказывают, то править PHP-файлы нет смысла.
Теперь сделаем непосредственное отображение каталога. Вся логика в шаблоне products.tpl сводится к добавлению условия

{if $smarty.cookies.view == 'table'}{* табличное отображение *}
{foreach $products as $p}
...
{/foreach}
{else}{* иначе отображение галереей *}
{foreach $products as $p}
...
{/foreach}
{/if}

Вот и вся сложная логика. а применима не только в симпле, и не только во второй. Действую аналогичным образом в любом коде использующем шаблонизаторы — его можно использовать.

Опубликовать в Яндекс
Опубликовать в Facebook
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в LiveJournal
Опубликовать в Google Plus
Опубликовать в Google Buzz