Новости Joomla

Joomla 6: Автоматические обновления ядра в Joomla

Joomla 6: Автоматические обновления ядра в Joomla

👩‍💻 Joomla 6: Автоматические обновления ядра в Joomla. В октябрьском номере официального журнала Joomla - Joomla Community Magazine вышла статья David Jardin, где рассказывается о внедрении функционала автоматического обновления ядра Joomla.❓Почему сейчас? Joomla же жила как-то 20 лет без автоматических обновлений?Это оказалась самая востребованная за последнее время от пользователей Joomla функция. Но, основная причина внедрения - проблемы безопасности. Всякий раз, когда в новой версии Joomla устраняется уязвимость, злоумышленники начинают анализировать код, чтобы выяснить, какая именно уязвимость была исправлена. И как только они это выясняют - начинается разработка автоматизированных скриптов для взлома как можно большего количества сайтов. Затем доступы к автоматически взломанным сайтам продаются в профильных чатах и ресурсах "пачками" по несколько сотен тысяч или миллионов сайтов. Ваш сайт могли взломать несколько лет назад, но воспользоваться уязвимостью могут не сразу, а тогда, когда у злоумышленников возникнет необходимость. И только после этого вы может быть узнаете об этом.Анализ патча, понимание проблемы и разработка скрипта требуют времени. И если владелец сайта не обновит его до истечения этого срока, сайт может быть взломан. А хакеры действуют быстро! Для критических, легко эксплуатируемых уязвимостей речь идёт о временном окне в 10–12 часов — и этого времени явно недостаточно, чтобы все успели обновить свои сайты.Здесь выходят на первый план автоматизированные обновления: проект Joomla теперь может активно устанавливать обновления (и, следовательно, исправления безопасности) на сайты, чтобы гарантировать, что сайты действительно обновляются вовремя.🕘 От первых идей до реализации прошло 5 лет. И здесь можно вспомнить, как в Joomla 5.1 внедрили TUF - The Update Framework, позволяющий устанавливать защищённое соединение между сайтом и сервером обновлений и исключает возможность supply chain attack (атаки на цепочку поставок).Об особенностях реализации и требованиях к сайту читаем подробнее в статье на JCM.@joomlafeed#joomla #secutiry #jcm

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™. Интервью с волонтёрами 🎈Ну что, друзья, вот и настал этот долгожданный момент. Мы выпустили первое издание собственного журнала под эгидой NorrNext, который включает в себя интервью с видными деятелями сообщества из разных стран и континентов.Общий нарратив: показать, что нас объединяет (Joomla) и узнать больше о людях, которые вносят свой вклад в развитие платформы в своих сообществах. 20 лет — это много. Давайте же узнаем о коллегах 🎁 Первый цикл включает такие страны, как Австрия, Испания, Латвия, Россия, Румыния, Тайланд, Черногория, Чехия.⚙️ С кем интервью: ✔️ Владимир Елисеев 🇷🇺✔️ Дмитрий Рекун 🇱🇻✔️ Дмитрий Цымбал 🇷🇺✔️ Евгений Сивоконь 🇷🇺 ✔️ Сергей Толкачёв 🇷🇺✔️ Dénes Székely 🇷🇴✔️ Jan Pavelka 🇨🇿✔️ Miljan Vujosevic 🇲🇪✔️ Sergio Iglesias 🇪🇸✔️ Sigrid Gramlinger 🇦🇹✔️ Pisan Chueatchatchai 🇹🇭‼️ Новые интервью будут добавляться до конца декабря 2025. Заходите по ссылке время от времени💡👉 Читать далее

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

rsn

  • Давно я тут
  • 520
  • 34 / 3
Бывает, что в модуле VirtueMart Products (в стандартном модуле VirtueMart) надо вывести товары не с такой сортировкой и фильтрацией, какая предложена разработчиками, а со своей, специфичной.
У меня, например, встала задача вывести в модуле товары, у которых заполнено определенное настраиваемое поле (хиты продаж помечаются настраиваемым полем, строка).
Сделал небольшой хак, решил поделиться (хотя бы и самому не забыть):

1) Правим файл modules/mod_virtuemart_product/mod_virtuemart_product.xml

В блок опции <field name="product_group"
добавляем строчку <option value="hit">Хиты продаж</option>
(можно написать языковую переменную, если хочется)

Итого секция выглядит так:

Код
        <field
          name="product_group"
          type="list"
          default="featured"
          label="MOD_VIRTUEMART_PRODUCT_DISPLAY"
          description="MOD_VIRTUEMART_PRODUCT_DISPLAY_DESC"
          >
          <option value="featured">MOD_VIRTUEMART_PRODUCT_FEATURED_PRODUCTS</option>
          <option value="discontinued">MOD_VIRTUEMART_PRODUCT_DISCONTINUED_PRODUCTS</option>
          <option value="latest">MOD_VIRTUEMART_PRODUCT_LATEST_PRODUCTS</option>
          <option value="random">MOD_VIRTUEMART_PRODUCT_RANDOM_PRODUCTS</option>
          <option value="topten">MOD_VIRTUEMART_PRODUCT_BEST_SALES</option>
          <option value="recent">MOD_VIRTUEMART_PRODUCT_RECENT_PRODUCTS</option>
          <option value="hit">Хиты продаж</option>
        </field>
На всякий случай делаем копию этого файла, немного переименовав для себя. После обновления VirtueMart эта копия не затрется, из неё можно будет снова внести правки в обновленный стандартный mod_virtuemart_product.xml.

2) Правим файл administrator/components/com_virtuemart/models/product.php

Ищем в коде switch ($group)
В этот свитч добавляем кейс (я вставил предпоследним):
              case 'hit':
                $this->searchcustoms = true;
                $joinCustom = true;
                $where[] = 'pf.`virtuemart_custom_id`="33" ';
                $orderBy = 'ORDER BY RAND()';
                break;

Соответственно, 33 - меняем на id нужного настраиваемого поля (можно посмотреть в админке).
Итого switch становится таким:
Код
switch ($group) {
  case 'featured':
    $where[] = 'p.`product_special`="1" ';
    $orderBy = 'ORDER BY RAND()';
    break;
  case 'discontinued':
    $where[] = 'p.`product_discontinued`="1" ';
    if($isSite){
      $orderBy = 'ORDER BY RAND()';
    }
    break;
  case 'latest':
    $orderBy = 'ORDER BY p.`' . $latest_products_orderBy . '` DESC, p.`virtuemart_product_id` DESC';
    break;
  case 'random':
    $orderBy = 'ORDER BY RAND() '; //LIMIT 0, '.(int)$nbrReturnProducts ; //TODO set limit LIMIT 0, '.(int)$nbrReturnProducts;
    break;
  case 'topten':
    $orderBy = 'ORDER BY p.`product_sales` DESC, p.`virtuemart_product_id` DESC'; //LIMIT 0, '.(int)$nbrReturnProducts;  //TODO set limitLIMIT 0, '.(int)$nbrReturnProducts;
    $joinPrice = true;
    $where[] = 'pp.`product_price`>"0.001" ';
    break;
  case 'hit':
    $this->searchcustoms = true;
    $joinCustom = true;
    $where[] = 'pf.`virtuemart_custom_id`="33" ';
    $orderBy = 'ORDER BY RAND()';
    break;
  case 'recent':
    $rIds = self::getRecentProductIds($nbrReturnProducts); // get recent viewed from browser session
    return $rIds;
}
Тоже делаем копию правленного файла на случай вернуть правки после обновления VirtueMart.

3) Идём в админке в настройки Модуля. Выбираем нашу добавленную Опцию Хиты продаж.

Если всё ОК, то наслаждаемся результатом :)

Если кто предложит решение поинтересней, буду только рад )
Возможно, будет интересно: Интеграция с Ozon
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как сделать товары в 2 колонки в моб версии?

Автор art22

Ответов: 4
Просмотров: 2639
Последний ответ 06.12.2022, 11:42:56
от art22
Как пересохранить все товары?

Автор stydent

Ответов: 1
Просмотров: 3153
Последний ответ 30.03.2022, 10:38:06
от itpremium
Вывод названий всех категорий и товаров в них на главной ((vm3))

Автор PavelK

Ответов: 0
Просмотров: 2596
Последний ответ 15.02.2022, 14:34:52
от PavelK
Limit показать на страницу + пагинация pagination ломают отображение товаров

Автор kreker92

Ответов: 0
Просмотров: 2646
Последний ответ 08.11.2021, 18:02:40
от kreker92
mod_virtuemart_product - как скрыть товары, которых нет в наличии?

Автор alexfom_16

Ответов: 40
Просмотров: 6436
Последний ответ 11.10.2021, 17:50:38
от hmr