Вход • Регистрация

Сортировка товаров по рейтингу

  • 26 декабря 2016 г. , редакция: 26 декабря 2016 г.
  • Решил костыльным методом.

    В shop.model дописал вытаскивание рейтинга для товара в отдельный ключ, чтобы тащилось цифрой, а не звездочками.
    Код
    $result_rating = DB::query("SELECT rating FROM {rating} WHERE element_id=%d", $row['id']);
    $row['rating-int'] = DB::result($result_rating);

    Во вьюхе list прописал сортировку массива по рейтингу с числовым значением и привязал ее по GET /&sort=popular

    Код

    $url = $_SERVER['REQUEST_URI'];
    $pieces = explode('/', $url);
    if($pieces[2] == '&sort=popular') {
    usort($result['rows'], function($a, $b){
    if($a['rating-int'] === $b['rating-int'])
    return 0;

    return $a['rating-int'] < $b['rating-int'] ? 1 : -1;
    });
    }

    • 26 декабря 2016 г.
    • Почему костыльным? Все верно: отдельным запросом забираем из таблицы рейтинга значения, затем сортируем товары по этим значениям.
      Только для выуживания sort из адреса не надо
      Код
      $url = $_SERVER['REQUEST_URI'];
      $pieces = explode('/', $url);
      if($pieces[2] == '&sort=popular') { ...

      Переменная sort есть и разрешена в контроллере модуля:
      Код
      public $rewrite_variable_names = array('page', 'show', 'param', 'sort', 'brand');

      и доступна в переменной $this->diafan->_route->sort по умолчанию.
      Достаточно просто
      Код
      if($this->diafan->_route->sort == 'popular')

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум