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













