Новости Joomla

Вышел релиз Revo PageBuilder Toolkit for YOOtheme Pro 1.6

Вышел релиз Revo PageBuilder Toolkit for YOOtheme Pro 1.6.2PageBuilder Toolkit - это специализированный плагин для конструктора страниц Yootheme Pro, содержит набор различных утилит для ускорения процесса работы и отладки макета, множественные улучшения в интерфейсе, включая поддержку dark mode, подсказки, быстрая смена разрешения в окне просмотра и много чего еще.v.1.6.2 Что нового?- Индикатор статусов: теперь не просто показывает состояние запросов, но и делает автоматические попытки их отправки при кратковременных сбоях в сети, а если это не помогло, то переводит конструктор в ручной режим, что позволяет сохранит макет и настройки темы прежде чем вы потеряете все, что было сделано с момента последнего сохранения- Подсветка ошибок в макете: плагин анализирует код страницы и может автоматически подсвечивать data атрибуты с кучей мусора, которые попадают в код страницы при копипасте из Figma в TinyMCE (пригодится для старых макетов, в текущей работе плагин сам очищает код мусора). Также есть подсветка семантических ошибок сборки - дубли h1 тега на странице и вложенных друг в друга заголовков.- Улучшена поддержка будущего релиза Yootheme Pro 5 и редактора CodeMirror 6Плагин для русскоязычных пользователей доступен в каталоге расширений SovMart и распространяется за символическую плату (100р). Разработчики Joomla расширений и партнеры автора могут получить плагин бесплатно.Для работы плагина необходим конструктор страниц Yootheme Pro.Разработчик плагина - участник нашего сообщества Александр Судьбинов (@alexrevo), член официальной группы поддержки Yootheme Pro. Страница расширенияОписание на сайте автора@joomlafeed#joomla #yootheme

WT IndexNow плагин для Joomla - отправка страниц сайта на переиндексацию в поисковые системы

WT IndexNow плагин для Joomla - отправка страниц сайта на переиндексацию в поисковые системы

👩‍💻 WT IndexNow плагин для Joomla - отправка страниц сайта на переиндексацию в поисковые системы.Пакет плагинов, обеспечивающий ручную и автоматическую отправку url адресов Joomla в поисковые системы на переиндексацию по протоколу IndexNow. Согласно документации протокол поддерживают все крупнейшие поисковые системы, кроме Google. Протокол служит для получения от сайтов URL, которые нужно переиндексировать заново или проиндексировать в первый раз как можно быстрее. Отправка адресов сайта таким образом существенно ускорит индексацию нового или изменённого контента поисковыми системами.Поисковые системы по этому протоколу обмениваются друг с другом данными, поэтому отправив URL в одну из них вы сообщаете их сразу всем. Протокол IndexNow поддерживают:- Amazon- Microsoft Bing- Naver- Seznam.cz- Yandex - YepСуточный лимит URL - 10000 в сутки. Возможна отправка вручную и автоматически. Поддерживаются:- материалы и категории материалов Joomla- контакты и категории контактов Joomla- SW JProjects - компонент каталога расширений для Joomla- JoomShopping - компонент интернет-магазина для Joomla- Phoca Download - компонент каталога файлоа для Joomla- Phoca Cart - компонент интернет-магазина для Joomla- RadicalMart - компонент интернет-магазина для JoomlaПакет плагинов работает с Joomla 4.3+. Тестировался на Joomla 5 и Joomla 6.Смотреть видео:- ВК Видео- RuTubeСсылки:Страница расширенияGitHub расширенияРаздел Поддержка протокола IndexNow в справке Яндекса@joomlafeed#joomla #seo #indexnow

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

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

Автор kit2m2

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