Новости 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 Гость просматривают эту тему.
  • 59 Ответов
  • 90436 Просмотров
*

mocart

  • Захожу иногда
  • 112
  • 9 / 0
Как передать из jshop название товара <?php print $this->product->name?> и вывести в модуле формы (использую - Simpleform2)?
« Последнее редактирование: 29.08.2013, 09:57:50 от b2z »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
*

mocart

  • Захожу иногда
  • 112
  • 9 / 0
Poznakomlus, так не выходит :(

максимум чего удалось добиться - Титле страницы
приведу код для наглядности
Спойлер
[свернуть]
и он же титле потом на имейл приходит
Код
<p>"<?php echo JRequest::getVar('pageTitle');?>"</p>
*

mohax

  • Давно я тут
  • 901
  • 66 / 3
А не мудрствуя лукаво записать в сессию и дернуть ее оттуда не вариант?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Код: php
<?php 
$doc = JFactory::getDocument();
echo $doc->getTitle();
?>
зачем input?
и что у вас в массиве $doc, есть ли нужные данные
Код: php
<?php 
$doc = JFactory::getDocument();
print_r($doc);
?>
*

mocart

  • Захожу иногда
  • 112
  • 9 / 0
зачем input?
без него заголовок (пока хотя бы) не уйдет на мыло.
и что у вас в массиве $doc, есть ли нужные данные
посмотрел, но из компонента там вообще нет данных
] => Array ( [type] => component [name] => [attribs] => Array ( ) ) )
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
А не мудрствуя лукаво записать в сессию и дернуть ее оттуда не вариант?

А это по сути - единственный вариант (куки как браузерозависимые не рассматриваем, GLOBALS как полагается отключены).
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
А это по сути - единственный вариант (куки как браузерозависимые не рассматриваем, GLOBALS как полагается отключены).
нет не единственный
есть еще js, можно и из урла страницы вытянуть инфу
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
нет не единственный
есть еще js, можно и из урла страницы вытянуть инфу

js - браузерозависимое решение
url - при условии что переменные передаются в get
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Я так понимаю модуль должен вывести название товара, только когда находимся на странице товара?
Ок. Сначала отрабатывает компонент, затем модуль. Значит, мы может что-то спокойно передать из компонента в модуль. Или Возможно получится получить инфу о товаре через апи jshop.
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

mocart

  • Захожу иногда
  • 112
  • 9 / 0
А не мудрствуя лукаво записать в сессию и дернуть ее оттуда не вариант?
Ребят, если б знал как - я бы не спрашивал. Если поясните - буду премного благодарен :)

На самом деле пример встретил здесь (клацаем "экспресс"). Но там видимо отдельный модуль для JS создавали...потому что готовый такой не нашел и решил сторонним модулем попробовать сделать.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Записываем вставлять код в компоненте
Код: php-brief
<?php
$session = JFactory::getSession();
$session->set("product_name",  $this->product->name);
?>
Считываем, код в модуль
Код: php-brief
<?php
$session = JFactory::getSession();
echo $session->get("product_name");
?>
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Передать переменную через сессию и GLOBALS можно, только если код модуля выполняется позже компонента в шаблоне. Если раньше, то js - единственное приемлемое решение.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

mocart

  • Захожу иногда
  • 112
  • 9 / 0
Передать переменную через сессию и GLOBALS можно, только если код модуля выполняется позже компонента в шаблоне. Если раньше, то js - единственное приемлемое решение.
модуль в самом конце, где дебаг, он у меня все равно скрыт - я могу хоть куда его опубликовать, всплывает в окне из карточки.

сейчас попробую код Poznakomlus, пока не знаю где в компоненте именно его нужно вставить
*

mohax

  • Давно я тут
  • 901
  • 66 / 3
Передать переменную через сессию и GLOBALS можно, только если код модуля выполняется позже компонента в шаблоне. Если раньше, то js - единственное приемлемое решение.
Если я правильно помню то сначала отрабатывает компонент, потом модуль. И вроде их расположение на странице не играет роли. Хотя могу ошибаться, на практике не проверял.
*

mocart

  • Захожу иногда
  • 112
  • 9 / 0
Записываем вставлять код в компоненте
$session =& JFactory::getSession();
$session->set("product_name",  $this->product->name);
Считываем, код в модуль
$session =& JFactory::getSession();
echo $session->get("product_name");

Poznakomlus,  спасибо, все получилось! +1 ;)
Попробую и другую инфу также вытянуть.
*

mohax

  • Давно я тут
  • 901
  • 66 / 3
Посмотрел я что нужно. Там к Вас все равно JS отрабатывает и форму открывает. Почему бы при рендинге карточки товара не передавать в функцию отображения формы все необходимые данные. Типа
Код
function showform(тут все данные)

Подробно не смотрел, спать пора. Но это мне кажется достаточно удобный  вариант в вашем случае.
*

mocart

  • Захожу иногда
  • 112
  • 9 / 0
mohax, я не против развернуть логику в другую сторону, и пока все под рукой можно поэкспериментировать :)


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

И таким образом получим неплохое, я считаю, решение покупки товара "в один клик"
*

mohax

  • Давно я тут
  • 901
  • 66 / 3
mohax, я не против развернуть логику в другую сторону, и пока все под рукой можно поэкспериментировать :)


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

И таким образом получим неплохое, я считаю, решение покупки товара "в один клик"

Раз уж начали, то не посмотреть ли Вам в сторону написания дополнительного функционала к магазину (новый контроллер, модель и вьюха), которые через встроенный behavior.modal загружался бы в модальное окно. Там можно и проверку сделать и все остальное. И передавать просто ID товара, а уже в модели получать запросом данные товара. Но это уже  философия. Где-то надо остановиться))
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
вообще можно в компоненте прописать вызов модуля  ^-^
Код: php
<?php
$document   =  JFactory::getDocument();
$renderer   = $document->loadRenderer('module');
$options    = array('style' => 'raw');
$module     = JModuleHelper::getModule('mod_breadcrumbs'); //mod_breadcrumbs замените на свой
$module->params = "product_name=".$this->product->name; //задаем значения
$module->params .= "\nproduct_price=10";//каждый параметр разделяется символом новой строки \n.
echo $renderer->render($module, $options);
?>
А в самом модуле выводить так:
Код: php
<?php 
echo $params->get('product_name');
echo $params->get('product_price');
 ?>
Продолжение следует...
*

mohax

  • Давно я тут
  • 901
  • 66 / 3
вообще можно в компоненте прописать вызов модуля  ^-^
Код: php
<?php
$module->params = "product_name=".$this->product->name; //задаем значения
$module->params .= "\nproduct_price=10";//каждый параметр разделяется символом новой строки \n.
?>
А так не сработает?
Код
$module->params->set("product_name", $this->product->name) 
*

mocart

  • Захожу иногда
  • 112
  • 9 / 0
А тогда еще вопрос - как на SEO это повлияет, ведь получается что часть контента страницы с товаром дублируется и еще и под display:none? Кажется что это не совсем хорошо...

Я еще думаю в сторону jQuery - при клике на кнопку погрузить информацию из нужных div в модальное окно с формой, как считаете - так лучше будет?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Еще один вариант передачи данных из компонента в модуль проверено в Joomla 1.5 и 2.5. yes!
Публикуется на форуме ВПЕРВЫЕ!
Ни в одной документации о Joomla вы не найдете такого решения.  yes!
В компоненте пишем:
Код: php-brief
<?php
$document =  JFactory::getDocument();
$document->setBuffer( 'Znachenie', 'component', 'parametr' );
?>
В модуле считываем:
Код: php-brief
<?php
echo JFactory::getDocument()->getBuffer('component', 'parametr');
//return Znachenie
?>
*

mocart

  • Захожу иногда
  • 112
  • 9 / 0
Poznakomlus, просто супер! работает и так :)
Название товара передается - все как надо, а вот картинку и цену так не передать((
Картинка частями формируется
<img id = "main_image_<?php print $image->image_id?>" src = "<?php print $this->image_product_path?>/<?php print $image->image_name;?>" alt="<?php print htmlspecialchars($image->_title)?>" title="<?php print htmlspecialchars($image->_title)?>" />

и вот так ничего не передает
$document->setBuffer( '$image->image_id', 'component', 'параметр' );
возможно, я что-то не так понял

и цена тоже получается на ходу формируется
<?php print formatprice($this->product->getPriceCalculate())?><?php print $this->product->_tmp_var_price_ext;?>
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
В компонент код
Код: php-brief
<?php
$document =  JFactory::getDocument();
$document->setBuffer( json_encode( $image), 'component', 'image' );
?>
В модуль
Код: php-brief
<?php
$document =  JFactory::getDocument();
$image = json_decode($document->getBuffer('component', 'image'));
$image_product_path = "Введите путь к папке картинок он постоянный";
?>
<img id = "main_image_<?php print $image->image_id?>" src = "<?php print $image_product_path;?>/<?php print $image->image_name;?>" alt="<?php print htmlspecialchars($image->_title)?>" title="<?php print htmlspecialchars($image->_title)?>" />
*

Dron79

  • Захожу иногда
  • 321
  • 37 / 0
  • Век живи - век учись!
Еще один вариант передачи данных из компонента в модуль проверено в Joomla 1.5 и 2.5. yes!
Публикуется на форуме ВПЕРВЫЕ!
Ни в одной документации о Joomla вы не найдете такого решения.  yes!
В компоненте пишем:
Код: php-brief
<?php
$document = & JFactory::getDocument();
$document->setBuffer( 'Znachenie', 'component', 'parametr' );
?>
В модуле считываем:
Код: php-brief
<?php
echo JFactory::getDocument()->getBuffer('component', 'parametr');
//return Znachenie
?>
Благодарю за новую инфу.
кодинг на php.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Дополню решением с JRequest::getVar и JRequest::setVar
Код: php-brief
JRequest::setVar('name', 'Myname', 'post');//задаем
echo JRequest::getVar('name', '', 'post'); //считываем
просто и элементарно
API по свежее JInput
Код: php-brief
JFactory::getApplication()->input->set('parametr', 'znachenie');//задаем
echo JFactory::getApplication()->input->get('parametr'); //считываем
         
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Дополню решением с помощью API (setUserState, getUserState)
Код: php-brief
JFactory::getApplication()->setUserState('parametr', 'znachenie'); //задаем
echo JFactory::getApplication()->getUserState('parametr'); //считываем
*

fbr

  • Завсегдатай
  • 1689
  • 211 / 7
Дополню решением с помощью API (setUserState, getUserState)
Код: php-brief
JFactory::getApplication()->setUserState('parametr', 'znachenie'); //задаем
echo JFactory::getApplication()->getUserState('parametr'); //считываем

Супер!
Poznakomlus, спасибо))

я как раз по другому поводу искал решение подобное решение
*

mohax

  • Давно я тут
  • 901
  • 66 / 3
Дополню решением с помощью API (setUserState, getUserState)
Код: php-brief
JFactory::getApplication()->setUserState('parametr', 'znachenie'); //задаем
echo JFactory::getApplication()->getUserState('parametr'); //считываем
Так она на базе сессий и работает же. Зачем городить огород, если можно с сессией работать?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модуль mod_custom: где сохраняется добавляемый код?

Автор r0m4n

Ответов: 8
Просмотров: 4059
Последний ответ 20.12.2023, 09:52:48
от kit2m2
Формирование ссылок для компонента Joomla Tags

Автор stepan39

Ответов: 6
Просмотров: 5061
Последний ответ 05.02.2023, 15:22:13
от tweenpix
URL компонента меток

Автор tweenpix

Ответов: 0
Просмотров: 2508
Последний ответ 04.02.2023, 11:08:54
от tweenpix
Не могу установить языковой пакет для компонента Joomla Events Manager ((jem))

Автор Ded Magomed

Ответов: 0
Просмотров: 2672
Последний ответ 24.05.2022, 15:06:38
от Ded Magomed
Передать значение из шаблона в модель

Автор ruyurik

Ответов: 4
Просмотров: 1326
Последний ответ 02.04.2020, 04:47:44
от ruyurik