Небольшой хард код, который позволит пользователю сортировать товары с фронта.
Менять будем 2 файла.
1. components\com_zoo\controllers\default.php
сразу после $this->item_order = $params->get('config.item_order'); (строка 228)
ставим
if (isset($_GET['order'])) { if ($_GET['order'] == 'name ASC') { $_SESSION['order'] = $_GET['order']; $this->item_order = array( '_jbzoo_0_field_corename', '_jbzoo_0_mode_s', '_jbzoo_0_order_asc' ); } elseif ($_GET['order'] == 'name DESC') { $_SESSION['order'] = $_GET['order']; $this->item_order = array( '_jbzoo_0_field_corename', '_jbzoo_0_mode_s', '_jbzoo_0_order_desc' ); } elseif ($_GET['order'] == 'price DESC') { $_SESSION['order'] = $_GET['order']; $this->item_order = array( '_jbzoo_0_field_b0d2b218-87a9-4573-85b7-350d2eec1061__price', '_jbzoo_0_mode_n', '_jbzoo_0_order_desc' ); } elseif ($_GET['order'] == 'price ASC') { $_SESSION['order'] = $_GET['order']; $this->item_order = array( '_jbzoo_0_field_b0d2b218-87a9-4573-85b7-350d2eec1061__price', '_jbzoo_0_mode_n', '_jbzoo_0_order_asc' ); } }
В этом примере будет сортировка по цене и названию Сверьте Id цены. b0d2b218-87a9-4573-85b7-350d2eec1061
По тому же принципу можно добавить любое другое поле.
2. media\zoo\applications\jbuniversal\templates\catalog\category.php
строка 57
сразу после
?> <script type="text/javascript"> jQuery(document).ready(function($){ $('.order').click(function(){ $('form#order input[name="order"]').val($(this).data('order')); $('form#order').submit(); return false; }) }); </script> <div class="sort"> <form id="order" method="get"> <input type="hidden" name="order"> </form> <? if (isset($_SESSION['order']) && $_SESSION['order'] == 'name ASC' || isset($_GET['order']) && $_GET['order'] == 'name ASC'): ?> <a href="#" data-order="name DESC" class="order desc">По названию</a> <? else: ?> <a href="#" data-order="name ASC" class="order asc">По названию</a> <? endif; ?> <? if (isset($_SESSION['order']) && $_SESSION['order'] == 'price ASC' || isset($_GET['order']) && $_GET['order'] == 'price ASC'): ?> <a href="#" data-order="price DESC" class="order desc">По цене</a> <? else: ?> <a href="#" data-order="price ASC" class="order asc">По цене</a> <? endif; ?> </div> <?
.sort { position: absolute; top: 26px; right: 0; } .sort a { margin-left: 13px; color: #4d4d4d; font-weight: bold; } .sort a:hover { color: #1a79c3; } .order.desc:after { content: ''; background-image: url(../images/sortu.png); background-repeat: no-repeat; background-position: 0 5px; display: inline-block; width: 10px; height: 10px; margin-left: 4px; } .order.asc:after { content: ''; background-image: url(../images/sortd.png); background-repeat: no-repeat; background-position: 0 5px; display: inline-block; width: 10px; height: 10px; margin-left: 4px; }
Картинку из вложения кидаем в папку Images вашего шаблона.
Получаем сортировку по цене и названию как здесь
Прикрепленные файлы
Сообщение отредактировал SmetDenis: 18 February 2014 - 06:16