Новости Joomla

‼️ 👩‍💻 Обновление безопасности для Tassos Framework!

‼️ 👩‍💻 Обновление безопасности для Tassos Framework!

7 января 2026 года греческому разработчику Тассосу Мариносу сообщили об уязвимости в системном плагине Tassos Framework, который входит в состав его расширений для Joomla.

⚠️ Проблема затрагивает следующие расширения:
- Convert Forms - конструктор форм обратной связи для Joomla
- EngageBox - конструктор всплывающих окон для Joomla
- Google Structured Data - пакет плагинов микроразметки для Joomla
- Advanced Custom Fields - пакет плагинов пользовательских полей (видео-сервисы, карты и иже с ними)
- Smile Pack - пакет расширений
- MailChimp Auto-Subscribe

Незамедлительно была проведена полная внутренняя проверка кода, внедрены дополнительные меры проверки и повышения безопасности, а также выпущены исправленные версии всех затронутых расширений. Проблема полностью решена.

👉 Суть уязвимости.
Уязвимость заключалась в том, как плагин Tassos Framework обрабатывал определенные AJAX-запросы через com_ajaxточку входа Joomla. При определенных условиях внутренняя функциональность фреймворка могла быть вызвана без надлежащих ограничений.

В худшем случае это могло позволить неавторизованному злоумышленнику читать файлы, доступные веб-серверу. Это также могло позволить удалять файлы с сервера при выполнении определенных условий.

При определенных обстоятельствах запросы к базе данных могли быть изменены для извлечения данных из базы данных Joomla. В совокупности эти возможности потенциально могли быть использованы для повышения уровня доступа и выполнения несанкционированного кода.

В настоящее время нет никаких доказательств того, что эта уязвимость была использована в реальных условиях.

Немедленно обновите расширения до безопасных версий (Joomla 4/5/6 | Joomla 3):
- Convert Forms - v5.1.1 / v.4.1.1
- EngageBox - v.7.1.1 / v,6,3,9
- Google Structured Data - v.6.1.1 / v.5.6.9
- Advanced Custom Fields - v.3.1.1 / v.2.8.10
- Smile Pack - v.2.1.1 / v.1.2.4.
- MailChimp Auto-Subscribe - v.5.1.1+ / v.5.0.4

Все указанные версии включают в себя релиз безопасности плагина Tassos Framework System Plugin v6.0.62.

Если у вас установлено несколько расширений Tassos, достаточно обновить только одно, чтобы применить патч. Однако всегда рекомендуется обновлять все расширения.

@joomlafeed

👩‍💻 Joomla включена в программу Google Summer of Code 2026.

👩‍💻 Joomla включена в программу Google Summer of Code 2026.

Google Summer of Code (GSoC) - программа компании Google, которая позволяет участникам программы под руководством опытных наставников писать код для организаций, занимающейся открытым исходным кодом. Joomla принимает участие в этой программе не в первый раз и в 2026 году снова включена в список GSoC. Для программы утверждается список "идей", воплотить которые должны участники под руководством наставников.

Проекты Joomla в рамках программы GSoC 2026.

Проект I: Ajax-бэкенд.
- Действия в административной панели без необходимости обновлять страницу.
- Автоматическое сохранение содержимого во время редактирования.
- Расширенный фильтр - поиск и фильтрация по пользовательским полям.

Проект II: Автоматизация рабочих процессов (workflow + task scheduler).
Joomla имеет функцию процессов и планировщика задач. Теперь эти две функции следует объединить, чтобы пользователь мог настраивать назначенные рабочие процессы таким образом, чтобы переходы выполнялись автоматически, с возможностью точного определения времени. Должна быть возможность создавать циклы или прямые запланированные рабочие процессы. Предполагается, что интерфейс должен учитывать хороший пользовательский опыт, удобство использования и современные стандарты доступности. Ожидается, что будет добавлен интерфейс для управления процессами и их расписанием на страницах категорий и материалов. Так же ожидается, что сторонние компоненты также смогут воспользоваться этим функционалом.

Проект III: Мультикатегории.
В настоящее время Joomla! не позволяет назначать один элемент нескольким категориям. Хотя система тегов часто используется в качестве замены, существует острая потребность в нативной поддержке нескольких категорий, чтобы привести Joomla! в соответствие с другими современными системами управления контентом.

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

Принять участие GSoC 2026
Подробнее о проектах Joomla GSoC 2026
Чат GSoC в Mattermost (международное сообщество Joomla)

Вышли релизы Joomla 6.0.3 и Joomla 5.4.3

Релиз Joomla 6.0.3 и Joomla 5.4.3

Проект Joomla рад сообщить о выпуске Joomla 6.0.3 и Joomla 5.4.3. Это релиз исправлений ошибок и улучшений для серии Joomla 6.0 и Joomla 5.4.

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

artMelnikov

  • Захожу иногда
  • 57
  • 3 / 0
Всем привет.
Задача была такая:
на странице категории товара рядом с полем выбора сортировки должен присутствовать чекбокс, позволяющий скрыть товары, которых нет в наличии.

Пример здесь: http://4play.by/catalog/category/65.html

Огромное Спасибо за решение товарищам a-littlebox и mr.brightside с форума вирты!

Решение:

Красным цветом выделен код, который необходимо добавить в файлы.

В файле: administrator/components/com_virtuemart/html/shop_browse_queries.php
Цитировать
$where_clause[] = "((`product_parent_id`='0') OR (`product_parent_id`='')) ";
$filter_in_stock = $_SESSION['filter_in_stock'];
if( !$perm->check("admin,storeadmin") ) {
    $where_clause[] = "`product_publish`='Y' ";
    $where_clause[] = "`category_publish`='Y' ";
    if((CHECK_STOCK && PSHOP_SHOW_OUT_OF_STOCK_PRODUCTS != "1") or $filter_in_stock == "1") {
        $where_clause[] = 'product_in_stock > 0';
    }
}
if( $perm->check("admin,storeadmin") &&  $filter_in_stock == "1") $where_clause[] = 'product_in_stock > 0';

В файле: components/com_virtuemart/virtuemart_parser.php
Цитировать
define( '_VM_PARSER_LOADED', 1 );  
   if ($_REQUEST['filter_in_stock'] == "1") $_SESSION['filter_in_stock'] = "1";
    if ($_REQUEST['filter_in_stock'] == "0")  $_SESSION['filter_in_stock'] = "0";

}
?>

В файле: components/com_virtuemart/themes/default/templates/browse/includes/browse_orderbyform.tpl.php
Цитировать
<?php
    
}
?>
<?
if ($_SESSION['filter_in_stock'] == "1")
  $filter_in_stock_status = "checked";
?>
<input type="hidden" name="filter_in_stock" value="0"> <!-- send value equal 0 if not checked -->
<input type="checkbox" id="filter_in_stock_label" name="filter_in_stock"  value="1" onclick="order.submit()" <?echo $filter_in_stock_status?>>
<label for="filter_in_stock_label">Показывать только товары в наличии</label>

</form>
Так как в коде последнего файла присутствует кириллица, сохраняйте его в кодировке UTF-8.

Всё, хак реализован!

Внимательно проверяйте, все символы ли вы ввели. Хак проверен и работает на разных версиях. Окружающий код может немного отличаться, это не должно повлиять на результат.

Если хотите, чтобы галочка "Показывать только товары в наличии" стояла по-умолчанию, то
В файле: components/com_virtuemart/virtuemart_parser.php
нужно после добавленного нами
Цитировать
define( '_VM_PARSER_LOADED', 1 );  
   if ($_REQUEST['filter_in_stock'] == "1") $_SESSION['filter_in_stock'] = "1";
   if ($_REQUEST['filter_in_stock'] == "0") $_SESSION['filter_in_stock'] = "0";

дописать еще
Цитировать
   if ($_SESSION['filter_in_stock'] == "1");
   if ($_SESSION['filter_in_stock'] == "0");
   else $_SESSION['filter_in_stock'] = "1";

Прикрепил файлы реализованного хака для версии VirtueMart 1.1.8 stable. Для других версий лучше самим вносить изменения в файлы.
http://ifolder.ru/26712322
« Последнее редактирование: 02.11.2011, 15:52:47 от artMelnikov »
*

dxpsite

  • Осваиваюсь на форуме
  • 16
  • 1 / 0
отличный способ.. не ожидал)))) спасибо!
*

artMelnikov

  • Захожу иногда
  • 57
  • 3 / 0
Всегда пожалуйста!))
*

vtx

  • Захожу иногда
  • 221
  • 19 / 0
есть один баг. если товаров нет, то форма сортировки изчезает и невозможно отменить выбор.
временно сделал в shop.browse.php правку
Код
if ( $num_rows > -1 && @$_REQUEST['output'] != "pdf") { // заменить на 0, если не выводить сортировку при отсутствии товары
но было бы неплохо если сделать что-то типа:
$new_url = ltrim($curent_url,'filter_in_stock=1&');
vmRedirect ($new_url)

и прибить где-то ссылкой
*

artMelnikov

  • Захожу иногда
  • 57
  • 3 / 0
Да, есть такой баг. Если кто-нибудь найдет решение, буду очень благодарен!
*

Stivik

  • Новичок
  • 3
  • 0 / 0
artMelnikov, вообще отлично я обязательно реализую твой хак, подскажи ещё, а как ты выводишь то, что у тебя товар в наличии или под заказ и его условное количество.
Очень нужно.  ! хочу рекламу дать, а там это требуется.
*

artMelnikov

  • Захожу иногда
  • 57
  • 3 / 0
Если я правильно понял, то смотри тут:
http://joomlaforum.ru/index.php/topic,6468.msg924858.html#msg924858
Хак добавляет возле кнопки "Купить" Надпись "В наличии" либо "Под заказ". При этом в админке должна быть выключена функция "Проверять наличие на складе?", иначе на товарах с остатком меньше 1 кнопка "Купить" будет меняться на "уведомить чего-то там"
*

Stivik

  • Новичок
  • 3
  • 0 / 0
artMelnikov, да но у тебя на сайте лучше сделано чем в том хаке, есть ли возможность выложить файлы?!
мне нравиться то что он графически обозначает и ещё текстом.
*

artMelnikov

  • Захожу иногда
  • 57
  • 3 / 0
Если ты про 4play то это не мой сайт а mr.brightside с forum.virtuemart.
Вот одно решение:
http://kegla.net/showpost.php?p=253&postcount=12
Видел еще где-то, но не могу найти щас. Увижу, напишу.
*

artMelnikov

  • Захожу иногда
  • 57
  • 3 / 0
Хотел было сделать наоборот, чтоб по-умолчанию показывались только товары, имеющиеся в наличии и был пустой чекбокс с надписью "Показать товары под заказ", и если поставить туда галку, то показывались товары которых нет в наличии. Крутил-вертел, ничего не получилось. Поэтому оставил как есть.
« Последнее редактирование: 24.10.2011, 09:27:47 от artMelnikov »
*

artMelnikov

  • Захожу иногда
  • 57
  • 3 / 0
Небольшое дополнение. Чтоб надпись "Показывать только товары в наличии" была тоже кликабельной, нужно:
В файле: components/com_virtuemart/themes/default/templates/browse/includes/browse_orderbyform.tpl.php
строчку
Цитировать
<input type="checkbox" name="filter_in_stock"  value="1" onclick="order.submit()" <?echo $filter_in_stock_status?>>Показывать только товары в наличии
заменить на
Цитировать
<input type="checkbox" id="filter_in_stock_label" name="filter_in_stock"  value="1" onclick="order.submit()" <?echo $filter_in_stock_status?>>
<label for="filter_in_stock_label">Показывать только товары в наличии</label>

В первом посте я уже изменил.
*

zzaj

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Да, есть такой баг. Если кто-нибудь найдет решение, буду очень благодарен!
Поблема всё еще актуальна! Эсли уже есть решение, то можно его в студию? ) Очень полезная вещь.
*

chinacrash

  • Новичок
  • 1
  • 0 / 0
А как вместо чекбокса сделать ссылки, все товары, товары в наличии?
*

SolopoV

  • Давно я тут
  • 577
  • 16 / 0
  • зеленею...
Notice: Undefined index: filter_in_stock in ****/components/com_virtuemart/virtuemart_parser.php on line 293
Это ругательство на
Код
	if ($_REQUEST['filter_in_stock'] == "1") $_SESSION['filter_in_stock'] = "1";
    if ($_REQUEST['filter_in_stock'] == "0")  $_SESSION['filter_in_stock'] = "0";

Как быть?
*

swerf

  • Новичок
  • 1
  • 0 / 0
А есть ли реализация данного чекбокса для VirtueMart 2.06? очень нужно!
*

alexxsav

  • Осваиваюсь на форуме
  • 27
  • 2 / 0
  • http://c-site.ru
Ктонибудь нашел реализацию для VM 2?
*

nukez

  • Новичок
  • 1
  • 0 / 0
Ктонибудь нашел реализацию для VM 2?

Решение для VM2
в файле /administrator/components/com_virtuemart/models/product.php

после строки if ($onlyPublished) {
            $where[] = ' p.`published`="1" ';
         }

вставляем
   // добавляем сортировку по наличию
   if ($_REQUEST['filter_in_stock'] == "1") $_SESSION['filter_in_stock'] = "1";
   if ($_REQUEST['filter_in_stock'] == "0")  $_SESSION['filter_in_stock'] = "0";
   $filter_in_stock = $_SESSION['filter_in_stock'];
   // заканчиваем сортировку

приводим строку
} else if (VmConfig::get('stockhandle','none')=='disableit') {
к виду
} else if (VmConfig::get('stockhandle','none')=='disableit' or $filter_in_stock == "1") {

в Файле /templates/ваш шаблон/html/com_virtuemart/category/default.php

в удобном месте в начале файла (у меня перед /* Show child categories */) вставляем
$urlcat = $_SERVER['QUERY_STRING'];
if ($_SESSION['filter_in_stock'] == "1") {
$filter_in_stock_status = "checked";
$filter_in_stock = $_SESSION['filter_in_stock']-1;}
else {$filter_in_stock = $_SESSION['filter_in_stock']+1;
$filter_in = '&filter_in_stock=';
}
$lit = '&filter_in_stock='.$filter_in_stock;
$urlcat = str_replace($lit, "", $urlcat);


После <?php echo $this->orderByList['orderby']; ?> или в нужное место шаблона вставим

<input type="hidden" name="filter_in_stock" value="0"> <!-- send value equal 0 if not checked -->
<input type="checkbox" id="filter_in_stock_label" name="filter_in_stock"  value="1" onclick="return location.href = '/index.php?<?php echo $urlcat.'&filter_in_stock='.$filter_in_stock;?>'" <? echo $filter_in_stock_status; ?>>
<label for="filter_in_stock_label">Только в наличии</label>


все работает на VM 2.0.23, на других не проверял, но думаю по аналогии все пашет
*

JediG

  • Новичок
  • 7
  • 0 / 0
Как бы это хак реализовать для VirtueMart 3
Очень полезная вещь, а до сих пор никто не сделал.

Попробовал сделать как для VM2, но к сожалению не работает. Чекбокс появился, а функции нет.
*

OutLaw1

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
+++ нужно для VM3 сделать! Помогите нубам ))
*

JediG

  • Новичок
  • 7
  • 0 / 0
Слежу за темой. Пришлось купить платный фильтр, но решение мне не нравится. Даже сейчас отключил бы его и сделал так как было. Не понятно почему разработчики ВМ не реализовали эту опцию по-умолчанию. Мне она кажется очень логичной.
*

OutLaw1

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Да согласен, эти фильтры типо myext, cherrypicker достаточно костыльные темы подходят только для сортировки доп полей и прочей лабуды.
А вот общий стандартный фильтр должен быть надежен, удобен и поддерживать пагинацию нормально. Стандартная VirtueMart сортировка  имеет очень мало настроек и иногда глючит. Но не хочу гнать на разработчиков они и так многое сделали и ещё бесплатно.

Думаю придется в будущем нанять профессионала, чтобы нормально допилить все необходимые функции.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Товарная накладная и товарный чек

Автор mikeles

Ответов: 6
Просмотров: 6380
Последний ответ 21.09.2019, 19:48:12
от kungurskiy
Как реализовать: товары, которых нет в наличии в конец списка категории?

Автор Girevik

Ответов: 1
Просмотров: 2640
Последний ответ 02.11.2017, 10:52:04
от P_B
Модуль недавно просмотренные товары для VirtueMart 1.1.X

Автор aleks_yug

Ответов: 97
Просмотров: 31245
Последний ответ 25.10.2016, 15:03:07
от Igoritaly
Скидка на категорию [почти решено]

Автор baloon

Ответов: 4
Просмотров: 2894
Последний ответ 06.04.2016, 20:00:27
от Ejov
404 для товаров которые удалены

Автор holovla

Ответов: 1
Просмотров: 3039
Последний ответ 06.05.2015, 19:42:13
от holovla