Сортировка брендов по имени

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

Towedlied
Towedlied
Репутация: 0
Сообщения: 1
Зарегистрирован: 31.07.2018
С нами: 5 лет 7 месяцев

Сообщение #1 Towedlied » 31.07.2018, 10:24

Добрый день, как можно сделать отображение списка брендов по имени от A-Z (А-Я). Сейчас бредны выводятся пользователю сортировкой по позиции, брендов более 50. В админке этого не надо, только пользователю. Спасибо)

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

Сообщение #2 korshunov » 31.07.2018, 11:32

Такого удовольствия разработчики в принципе не предусморели.
Если требуется, то надо дорабатывать по образцу того, как сделано для товаров, начиная с API...

makki M
makki M
Репутация: 199
Сообщения: 697
Зарегистрирован: 12.08.2016
С нами: 7 лет 7 месяцев
Откуда: Киев
Сайт

Сообщение #3 makki » 31.07.2018, 12:11

Towedlied писал(а):Добрый день, как можно сделать отображение списка брендов по имени от A-Z (А-Я). Сейчас бредны выводятся пользователю сортировкой по позиции, брендов более 50. В админке этого не надо, только пользователю. Спасибо)
1) В файле api/Brands.php

1.1) после строки

Код: Выделить всё

$other_filter = '';
добавьте

Код: Выделить всё

$order = 'b.position';
if(!empty($filter['sort'])) {
    switch ($filter['sort']) {
        case 'name':
            $order = 'b.name ASC';
            break;
    }
}

1.2) ниже в sql запросе (в строке 94 в OkayCMS 2.2.x) вместо

Код: Выделить всё

ORDER BY b.position
напишите

Код: Выделить всё

ORDER BY $order

2) В файле view/BrandsView.php
вместо

Код: Выделить всё

$brands = $this->brands->get_brands(array('visible_brand'=>1));
напишите

Код: Выделить всё

$brands = $this->brands->get_brands(array('visible_brand'=>1, 'sort'=>'name'));
Cоздание и расширение функционала интернет-магазина на платформе OkayCMS 2 (с 3-й и 4-й версией не работаю)

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

Сообщение #4 korshunov » 31.07.2018, 14:36

В разработке присутствует та же принципиальная ошибка, что и в стандарте системы для товаров:
viewtopic.php?f=7&t=916

Исправляется легкой заменой
$order = 'b.name ASC';
на
$order = 'l.name ASC';


Название раздела: Вопросы по работе с OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Вопросы по работе с OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 35 гостей