Новости Joomla

🏆 Открыто голосование за Joomla в премии CMS Critic People’s Choice Awards 2025

🏆 Открыто голосование за Joomla в  премии CMS Critic People’s Choice Awards 2025

🗓 Голосование продлится до 27 февраля 2026 года.

👩‍💻 Проголосовать! 👩‍💻

Номинации, в которых можно проголосовать за Joomla:
⭐️ Best Free CMS
⭐️ Best Open Source CMS
⭐️ Best Enterprise CMS

Также в номинации Best e-Commerce Solution участвуют компоненты интернет-магазинов для Joomla:
⭐️ HikaShop
⭐️ Virtuemart

В номинации Best Website Builder оказались:
⭐️ YooTheme
⭐️ SP Page Builder

Что такое CMS Critic Awards?
С 2012 года премия CMS Critic Awards занимает особое место в сообществе систем управления контентом (CMS). Это единственный в своем роде сайт, который составляет рейтинг системы управления контентом и связанных с ними решений на рынке — от малого до крупного и подчеркивает их инновации и услуги.

Каждый год награда CMS Critic Awards присуждается одному победителю в различных отраслевых категориях, таких как: «Лучшая облачная CMS», «Лучший DXP», «Лучшая Headless CMS и других. Затем результаты оглашаются через СМИ вместе с выбором редакции CMS Critic.
В этом году премия вернулась к своим традициям и только TOP-5 движков по количеству номинаций попали в 2-й этап - голосование.

@joomlafeed

👩‍💻 Вместе мы развиваем Joomla: станьте Joomfluencer!

👩‍💻 Вместе мы развиваем Joomla: станьте Joomfluencer!

Вы уверенно чувствуете себя перед камерой, динамичны, обаятельны и всегда улыбаетесь? Чувствуете себя искателем приключений, готовым поделиться своими исследованиями CMS Joomla!, взять интервью у видных деятелей сообщества, пообщаться лично или по видеосвязи с волонтерами Joomla или отправиться на поиски новых идей?

Joomla ищет одного или нескольких волонтеров, готовых вдохнуть новую жизнь в обсуждение Joomla, ее CMS, пользователей, сообщества и многого другого.

Возможны самые разные форматы и темы: шортсы, интервью, аналитика и разборы в режиме реального времени, быстрые советы и рекомендации, знакомство с миром Joomla, изучение открытого исходного кода... Нет никаких ограничений!

Joomla! уже активно представлена ​​во многих социальных сетях:
- 155K подписчиков на Facebook,
- 55K подписчиков на X (ранее Twitter),
- 16K подписчиков на YouTube,
- 14K подписчиков на LinkedIn,
- 5,7K подписчиков в Instagram
а так же другие площадки ждут вас. Аккаунты Threads и Bluesky относительно новые, но их популярность только растёт!

А если хватит энергии, можно рассмотреть и TikTok!

❓ Итак, вы готовы?
👉 Свяжитесь с отделом маркетинга по адресу: marketing@community.joomla.org

Подробности в статье в Joomla Community Magazine.

@joomlafeed

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

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
Просмотров: 1412
Последний ответ 18.12.2015, 02:57:58
от threemonkeys
К стандартному модулю поиска от разработчиков - немного полезностей

Автор kit2m2

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