Собственно вопрос поднимался(еще в ноябре), ну... чуть забыл. может кто то и доведёт(оптимизирует) его до редактирования в "админке".
в общем, в includes/category.php заменяем CONF_PRODUCTS_PER_PAGE на $sel_view во всем документе.
далее в этом же документе добавляем, например после:
$smarty->assign("products_to_show_count", NULL);
кусочек:
if (isset($_POST["view_layout"])) {$_SESSION["view_layout"] = $_POST["view_layout"];}
if (isset($_SESSION["view_layout"])) $sel_view = $_SESSION["view_layout"];
else $sel_view = CONF_PRODUCTS_PER_PAGE;
$smarty->assign("sel_view",$sel_view);
и
перед $result=products_to_show($sql); добавить(в 2-ух местах):
if (!isset($_GET['show_all'])) $sql.= ' LIMIT ' . $offset . ' , ' . $sel_view;
ну и в шаблон, где хотим видеть селект:
<div>
<form method="post" name="view_out">
<select onchange="this.form.submit();" name="view_layout">
<option value="{$smarty.const.CONF_PRODUCTS_PER_PAGE}"{if $sel_view==$smarty.const.CONF_PRODUCTS_PER_PAGE}selected="selected"{/if}>{$smarty.const.CONF_PRODUCTS_PER_PAGE}</option>
<option value="20"{if $sel_view==20}selected="selected"{/if}>20</option>
<option value="50"{if $sel_view==50}selected="selected"{/if}>50</option>
</select>
</form>
</div>
как и писал, можно довести и до "админки" вывод кол-во товаров на странице: по 20, или по 50. а так ручками..
то есть появиться селект с выбором какое кол-во товара показывать на странице. ничего необычного.
как то так
зы/ по желанию можно и по другим includes и шаблонам пройтись(например brands), принцип тот же.
но не забываем бэкапится, ну мало ли что.