Небольшой хард код, который позволит пользователю сортировать товары с фронта.
Менять будем 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