Новости Joomla

Готовлю большой выпуск, включающий интервью с участниками Joomla Ну что, интересная инициатива от...

Готовлю большой выпуск, включающий интервью с участниками Joomla Ну что, интересная инициатива от...

Готовлю большой выпуск, включающий интервью с участниками Joomla 🖨Ну что, интересная инициатива от @webtolkru в виде интервью с разными участниками весьма меня увлекла. Я, вооружившись данным примером, решил подготовить выпуск для NorrNext (@norrnext) и экстраполировал идею на международный масштаб. Теперь готовлю эксклюзивный выпуск с участниками Joomla сообщества со всего мира, которые, в той или иной мере, внесли свой вклад в развитие и популяризацию системы. Будут беседы с людьми из разных стран и фото с юбилейной символикой 📸Работа в процессе 👆 📝О результатах оповещу отдельно.

Плагин - «Конвертация таблиц в сетку Bootstrap 5» для Joomla 5

👩‍💻 Плагин - «Конвертация таблиц в сетку Bootstrap 5» для Joomla 5.Работает везде, где работают плагины группы content. Проверено в материалах, модулях, в описаниях товаров JoomShopping.Плагин конвертирует любую таблицу в адаптивную блочную сетку Bootstrap 5.В админке, в редакторе создаете таблицу, размещает в её ячейках контент, а на сайте эта таблица выводиться как адаптивная сетка из блоков. На мобильных устройствах контент размещенный в таблице будет виден и ничто не вылезет за пределы сайта как раньше.Версия плагина: 1.0.0. Разработчик предупреждает, что плагин пока не корректно работает со сложными таблицами (где много объединенных ячеек или столбцов) - данная проблема будет решена в следующих версиях. В дальнейшем планируется также добавление настроек.Стоимость: 2 500р. Тем, кто даст обратную связь по работе плагина и развёрнутый комментарий, тот получит скидку в 50% на любое другое платное расширение разработчика или сможет сделать заказ на разработку по льготной цене.Разработчик - участник нашего сообщества Дмитрий (@kit2m2).ПодробнееСайт разработчика@joomlafeed#joomla #JoomShopping #расширения

0 Пользователей и 1 Гость просматривают эту тему.
  • 2 Ответов
  • 1399 Просмотров
*

devirus

  • Захожу иногда
  • 140
  • 6 / 0
По умолчанию бестселлеры сортируются по общему количеству проданных товаров за все время.
При чем если пришел клиент и купил сразу 100000 лейкопластырей, они могут зависнуть в бестселлерах на несколько месяцев.

Кому как, возможно в разных тематиках по разному, но считаю такой подход не верным.
Бестселлеры должны считаться за некоторый период времени (допустим последние 2 недели). Плюс, количество купленное в одном заказе (т. е. одним человеком), не должно влиять на популярность этого товара (должен влиять только сам факт продажи).

Потому написал для себя такой плагин (это две разные версии).

Учитывать только продажи за последние 14 дней:
Код
function onBeforeQueryGetProductList($type, &$adv_result, &$adv_from, &$adv_query, &$order_query, &$filters){
        if ($type=="bestseller_products"){
            $adv_from .= "LEFT JOIN `#__jshopping_orders` AS orders ON OI.order_id = orders.order_id";
            $adv_query .= " AND orders.order_date > '" . date("Y-m-d", mktime(0, 0, 0, date("m"), date("d")-14,   date("Y"))). "' ";
        }
}

Учитывать только продажи за последние 14 дней + не учитывать количество в заказе.
Чтобы не трогать исходник, пришлось вынести весь метод в onBeforeDisplayProductListView.

Код
function onBeforeDisplayProductListView(&$view){

        $count = 3;
        $tProduct = JTable::getInstance('product', 'jshop');
        $adv_result = $tProduct->getBuildQueryListProductDefaultResult();
        $adv_query = "";
        $adv_from = "";

        //Get bestsellers
        if (JRequest::getInt('category_id')){

            $jshopConfig = JSFactory::getConfig();
            $db = JFactory::getDBO();
            $array_categories = JRequest::getInt('category_id');
            $filters = array();

            $tProduct->getBuildQueryListProductSimpleList("best", $array_categories, $filters, $adv_query, $adv_from, $adv_result);

            $adv_from .= "LEFT JOIN `#__jshopping_orders` AS orders ON OI.order_id = orders.order_id";
            $adv_query .= " AND orders.order_date > '" . date("Y-m-d", mktime(0, 0, 0, date("m"), date("d")-14,   date("Y"))). "' ";
    
            $query = "SELECT SUM(1) as max_num, $adv_result FROM #__jshopping_order_item AS OI
                      INNER JOIN `#__jshopping_products` AS prod   ON prod.product_id=OI.product_id
                      INNER JOIN `#__jshopping_products_to_categories` AS pr_cat ON pr_cat.product_id = prod.product_id
                      LEFT JOIN `#__jshopping_categories` AS cat ON pr_cat.category_id = cat.category_id
                      $adv_from
                      WHERE prod.product_publish = '1' AND cat.category_publish='1' ".$adv_query."
                      GROUP BY prod.product_id
                      ORDER BY max_num desc LIMIT ".$count;
            $db->setQuery($query);
            $bestsellers = $db->loadObjectList();
            $bestsellers = listProductUpdateData($bestsellers);

            $view->assign('bestsellers', $bestsellers);

        }
    }

p. s. на самом деле выкладываю, чтобы более толковые люди проверили и, возможно, подсказали более правильное решение *DRINK*
« Последнее редактирование: 24.06.2014, 00:42:10 от devirus »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Цитировать
на самом деле выкладываю, чтобы более толковые люди проверили и, возможно, подсказали более правильное решение
а я то наивный предполагал, чтобы другим помочь, кому такое надо... а вы исключительно в личных интересах :)

Код
NOW() - INTERVAL [b]14 DAY[/b]
1. движок форума не понимает BB-code внутри тега code.
2. обычно нет смысла грузить MySQL вычислением того, что можно сделать на PHP
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

devirus

  • Захожу иногда
  • 140
  • 6 / 0
Цитировать
вычислением того, что можно сделать на PHP
Дельный совет, разберусь с форматами дат и доработаю.

p. s. моя корыстность полезна миру :)

upd: поправил первый пост (дату считает php, а не mysql).
« Последнее редактирование: 24.06.2014, 00:42:59 от devirus »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Bestseller - не верный принцип работы

Автор threemonkeys

Ответов: 7
Просмотров: 1331
Последний ответ 18.12.2015, 02:57:58
от threemonkeys
К стандартному модулю поиска от разработчиков - немного полезностей

Автор kit2m2

Ответов: 0
Просмотров: 1142
Последний ответ 12.10.2013, 00:23:02
от kit2m2