Для начала нужно найти файл "category.php" в папке "\components\com_jshopping\controllers\".
В этом файле после кода "$category->getDescription();" (без кавычек) нужно вставить следующий код:
If ($_GET['extra_fields']){
$EFGet = JRequest::getString('extra_fields');
$ExtraFieldsGet = Explode(",", $EFGet);
If (Count($ExtraFieldsGet)){
$_ExtraFields = &JTable::getInstance('productfieldvalue', 'jshop');
$AllExtraFields = $_ExtraFields->getAllList();
$ListExtraField = Array();
ForEach($AllExtraFields As $ExtraField){
$ListExtraField[$ExtraField->id] = $ExtraField->field_id;
}
$FilterExtraFields = Array();
ForEach($ExtraFieldsGet As $ExtraFieldGet){
$FilterExtraFields[$ListExtraField[$ExtraFieldGet]][] = $ExtraFieldGet;
}
JRequest::setVar('extra_fields', $FilterExtraFields, 'POST');
} }
Не забудьте сохранить изменения.
После этих манипуляций можно относительно легко, хотя и вручную, создавать ссылки на отфильтрованные списки товаров.
Для создания ссылки нужно определить значение "id" у категории, из которой требуется отфильтровать товары. Допустим, это "01" (без кавычек).
Затем нужно определить значения "id" у характеристик, по которым требуется отфильтровать список товаров. Допустим, это 12 и 13.
Когда нужные значения для фильтра определены, их можно вставлять в следующий шаблон ссылки:
index.php?option=com_jshopping&controller=category&task=view&category_id=01&extra_fields=12,13&Itemid=xxx
где вместо "xxx" должен быть указан ваш "Itemid".
Дополнительные приёмы фильтрации товаров ссылкой
Если требуется отфильтровать товары по определенному значению определенной характеристики без связи с определенной категорией, тогда нужно немного пошаманить над файлом "products.php", который находится в папке "\components\com_jshopping\controllers\".
В этом файле после кода "$filters = getBuildFilterListProduct($contextfilter, array());" (без кавычек) нужно вставить следующий код:
If ($_GET['extra_fields']){
$ExtraFieldsGet = Explode(",", $_GET['extra_fields']);
If (Count($ExtraFieldsGet)){
$_ExtraFields = &JTable::getInstance('productfieldvalue', 'jshop');
$AllExtraFields = $_ExtraFields->getAllList();
$ListExtraField = Array();
ForEach($AllExtraFields As $ExtraField){
$ListExtraField[$ExtraField->id] = $ExtraField->field_id;
}
$FilterExtraFields = Array();
ForEach($ExtraFieldsGet As $ExtraFieldGet){
$FilterExtraFields[$ListExtraField[$ExtraFieldGet]][] = $ExtraFieldGet;
}
$filters['extra_fields'] = $FilterExtraFields;
}
}
Затем определяем значения "id" характеристик, по которой требуется отфильтровать список. Допустим, это 12 и 13.
Шаблон ссылки в этом случае будет следующим:
index.php?option=com_jshopping&controller=products&task=view&extra_fields=12,13&Itemid=xxx
где вместо "xxx" должен быть указан ваш "Itemid".