[Помогите] Акции - вывод товаров случайным образом

Тема в разделе "OpenCart", создана пользователем Павел_Б, 10 мар 2013.

  1. Павел_Б

    Павел_Б

    Регистрация:
    12 янв 2013
    Сообщения:
    67
    Симпатии:
    6
    Здравствуйте.
    Подскажите пожалуйста, как сделать вовод случайных акционных товаров в модуль АКЦИИ.
    Сейчас выводятся первые 5 акционных товара, которые сортируются по названию. Как сделать Rendom?
    Всем спасибо :wink: и конечно + в репутацию))
    Вот пациент
     
  2. ruslan216455

    ruslan216455

    Регистрация:
    6 ноя 2012
    Сообщения:
    220
    Симпатии:
    22
    можно сделать простую выборку из базы написать на php
     
    Павел_Б нравится это.
  3. Bnopen

    Bnopen Команда форума

    Регистрация:
    3 мар 2013
    Сообщения:
    1.155
    Симпатии:
    514
    Павел_Б, ищем файл у себя - catalog/model/catalog/product.php
    Там находим функцию - getProductSpecials
    В этой функции ищем код:
    Код:
    if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
    if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
    $sql .= " ORDER BY LCASE(" . $data['sort'] . ")";
    } else {
    $sql .= " ORDER BY " . $data['sort'];
    }
    } else {
    $sql .= " ORDER BY p.sort_order";
    }
    Здесь меняем в помледнем else $sql .= " ORDER BY p.sort_order"; на $sql .= " ORDER BY RAND()";
    Т.О получаем код -
    Код:
    if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
    if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
    $sql .= " ORDER BY LCASE(" . $data['sort'] . ")";
    } else {
    $sql .= " ORDER BY " . $data['sort'];
    }
    } else {
    $sql .= " ORDER BY RAND()";
    }
    Таким образом, по умолчанию должно выводится в случайном порядке.
    Отпишитесь как работает - т.к. случайный вывод товаров делал в категории - но такое же и должно работать для модуля акции - прописав по аналогии для этой функции.
     
    cereberlum нравится это.
  4. stifutkin

    stifutkin

    Регистрация:
    22 дек 2012
    Сообщения:
    172
    Симпатии:
    43
    Как вариант найти модуль JV_Products in module. Там реализована данная возможность.
     
  5. namza80

    namza80

    Регистрация:
    22 янв 2014
    Сообщения:
    1
    Симпатии:
    0
    ---
    Это что, прикол такой?
    Неужели ни кто не знает как сделать акции в 1.5.5.1 рандомно?
    Зря регистрировался что ли?
    ---
    Вот так можно сделать в рекомендуемых:
    В catalog/controller/module/featured.php перед строкой 21
    $products = array_slice($products, 0, (int)$setting['limit']);
    Вставляем функцию перемешивания массива в случайном порядке
    shuffle ($products);