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

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

  • 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')

Новости

  • 25 марта, вторник
  • Мы обновили систему тарифов, учитывая опыт работы с клиентами и современные рыночные условия. Новая тарифная сетка разработана специально для того, чтобы лучше отвечать вашим потребностям. Резкого повышения цен не произошло. Более того, некоторые тарифы даже стали выгоднее и доступнее. 
  • 17 января
  • В преддверии 2025 года была выпущена сборка 7.2.5, которая не приносит радикальных изменений в функциональности, но способствует повышению стабильности работы системы и расширению возможностей облачного сервиса для создания сайтов.
  • 18 июня 2024 г.
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.

Форум