Anadi
@Anadi
Если ответ Вам помог мой, решением отметье его!

Как отсортировать товары по свойству (не проходите мимо)?

Привет всем! На сайте делаю сортировку товара по свойствам цена, популярность, мощность и размер. С последним параметром возник трабл. Свойство размер имеет записи типа "15 x 20", 30 x 20", "25 x 10" и т.д. Сортировка работает, но хочется сделать чтоб сортировка по размеру работала по второму параметру, а не по первому.
В section.php перед вызовом компонента вывожу
if ($_GET["sort"] == "property_PRICE" ||
        $_GET["sort"] == "property_STATUS" ||
        $_GET["sort"] == "property_POWER" ||
        $_GET["sort"] == "property_SIZE") {
    $arParams["ELEMENT_SORT_FIELD"] = $_GET["sort"];
    $arParams["ELEMENT_SORT_ORDER"] = $_GET["method"];
}

В шаблоне компонента.
$arSortIndex = 0;
foreach ($arSortField as $sort_field):
     $method = $_GET["method"] == "desc" ? "asc" : "desc";
     $sort = $_GET["sort"] == "desc" ? "asc" : "desc";
     ?>
     <li class="list-group-item">
          <a href="<?= $APPLICATION->GetCurPageParam("sort=" . $sort_field . "&method=" . $method, array("sort", "method")); ?>" class="<?= $_GET["sort"] == $sort_field ? "active " : "not-active " ?><?= $_GET["method"] ?>" rel="nofollow">
               <?= $arSortText[$arSortIndex] ?>
          </a>
     </li>
     <?
$arSortIndex++;
endforeach;

Как сделать сортировку по второму параметру размера "15 x 20"? Делать выборку размера, разбивать его на подстроку и заменять на полученный GET запрос или есть иное решение?
  • Вопрос задан
  • 312 просмотров
Пригласить эксперта
Ответы на вопрос 1
megafax
@megafax
web-программист
Разделите этот параметр на 2 разных. Они будут суррогатными. Разделение делайте через событие сохранения элемента инфоблока, тогда и 1с подхватится и ручное сохранение. И сортируйте по суррогатному. Разве что первый раз для товаров придется скриптом все выставить.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы