Новости Joomla

‼️👩‍💻 Релиз безопасности Astroid 3.3.11 - шаблона-конструктора для Joomla.

‼️👩‍💻 Релиз безопасности Astroid 3.3.11 - шаблона-конструктора для Joomla.

14 часов назад (на момент публикации заметки) была обнаружена уязвимость в популярном шаблоне-конструкторе Astroid Framework. При атаке на сайт устанавливается бэкдор — системный плагин под названием plg_system_blpayload. Если вы обнаружили этот плагин на своем веб-сайте, значит, он скомпрометирован, и вам необходимо восстановить чистую резервную копию, созданную до установки плагина.

Уязвимость позволяет загружать файлы на сайт и в дальнейшем получить права администратора Joomla.
В рамках атаки (из-за которой и была обнаружена уязвимость) на сайт устанавливался плагин plg_system_blpayload, который при каждой загрузке страницы снаружи он скрытно связывается с (платформой для SEO, работающей на черном рынке (ссылку помещать не будем, просим поверить на слово). Получает список скрытых спам-ссылок (сайты азартных игр, фишинга, мошенничества), подобранный под ваш домен, затем внедряет эти ссылки в HTML-код вашей страницы непосредственно перед рендером - невидимые для посетителей, но полностью читаемые поисковыми роботами. Это называется "отравление SEO" ("отрпавление поисковой выдачи").

Однако, эта уязвимость может использоваться в других целях. Поэтому необходимо срочно проверить ваши сайты, где стоит Astroid Framework и обновить его до версии не ниже 3.3.11. Релиз безопасности выпущен 4 часа назад (на момент написания заметки).

Скачать релиз безопасности Astroid

@joomlafeed

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

artserge

  • Захожу иногда
  • 118
  • 11 / 0
В стандартном функционале VirtueMart самые популярные (покупаемые) товары считаются по принципу "выбрать товары отсортировав по количеству подтвержденных покупок"

Меня это не устроило - возникла задача сделать вывод без учета подтверждения - т.е. если товар кто-то купил, то он автоматом считается в топ.

Код отвечающий за эту выборку находится в administrator\components\com_virtuemart\models\product.php

Код
case 'topten':
$orderBy = ' ORDER BY p.`product_sales` '; //LIMIT 0, '.(int)$nbrReturnProducts;  //TODO set limitLIMIT 0, '.(int)$nbrReturnProducts;
$where[] = 'pp.`product_price`>"0.0" ';
$this->filter_order_Dir = 'DESC';
break;


изменяем условие на
Код
case 'topten';

$joinedTables .= ' JOIN `#__virtuemart_product_ordercount` AS po using (`virtuemart_product_id`)';
$orderBy = ' ORDER BY po.`orders_count` ';
$where[] = 'pp.`product_price`>"0.0"  ';
$this->filter_order_Dir = 'DESC';
break;

и переносим кусок кода

Код
if ($joinLang) {
$select = ' l.`virtuemart_product_id` FROM `#__virtuemart_products_' . VMLANG . '` as l';
$joinedTables = ' JOIN `#__virtuemart_products` AS p using (`virtuemart_product_id`)';
}
else {
$select = ' p.`virtuemart_product_id` FROM `#__virtuemart_products` as p';
$joinedTables = '';
}

выше нашей выборки, т.е. например перед switch ($this->filter_order) {

Ну и создаем вьюшку которая хранит ID товара и кол-во его покупок. Кол-во заказанных единиц товара я не учитываю - вдруг кто-то купит 1000 каких-нибудь мелких гаек, и товар жирно вылезет в топ)

Код
CREATE VIEW `ПРЕФИКС_virtuemart_product_ordercount` AS (select `vp`.`virtuemart_product_id` AS `virtuemart_product_id`,count(`vo`.`virtuemart_product_id`) AS `orders_count` from (`ПРЕФИКС_virtuemart_products` `vp` join `ПРЕФИКС_virtuemart_order_items` `vo`) where (`vo`.`virtuemart_product_id` = `vp`.`virtuemart_product_id`) group by `vo`.`virtuemart_product_id` order by count(`vo`.`virtuemart_product_id`) desc);

Решение может и не супер виртуозное, зато редактируем только 1 файл.
Как вариант - можно поставить в базе триггер на добавление товара в #__virtuemart_order_items который бы изменял значение sales_count в #__virtuemart_products , но тогда придется искать место где при обновлении статуса заказа этот счетчик меняется, и там отключать этот апдейт.

А так - в #__virtuemart_products имеем кол-во подтвержденных продаж, в #__virtuemart_product_ordercount  - кол-во всех продаж, подтвержденных и не подтвержденных)

Пишу больше для того чтоб не забыть и поделиться - вдруг кому пригодится.
*

kasper9820

  • Захожу иногда
  • 127
  • 4 / 6
  • ...ISponsor!
Отличный топик, как вывести количество совершенных продаж (не штук) в карточку товара и в категорию.
Еще интересует, как вывести в карточку перечень покупателей (зарегистрировавшихся), которые покупали товар с их данными (аватар, имя и т.д.). Заранее спасибо
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывод названий всех категорий и товаров в них на главной ((vm3))

Автор PavelK

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

Автор kreker92

Ответов: 0
Просмотров: 3152
Последний ответ 08.11.2021, 18:02:40
от kreker92
[Решено] Список товаров на главной VirtueMart

Автор vitoxa_ya

Ответов: 6
Просмотров: 11270
Последний ответ 21.10.2020, 23:27:08
от alfa212
Удаление всех товаров из корзины одним кликом.

Автор Chifu

Ответов: 10
Просмотров: 10212
Последний ответ 19.04.2020, 20:21:03
от grub
Сортировка в VirtueMart 2 по умолчанию, по наличию товаров и по цене

Автор vfxbro

Ответов: 7
Просмотров: 4320
Последний ответ 27.04.2019, 09:51:05
от rsn