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

Re: Документация по компонентам
« Ответ #150 : 20.05.2006, 17:29:11 »
Ну это понятно...хочу выводить данные на этой же странице вверху формы. Выводить буду типа так:

<div id="unik" style="display: none;">
Тут данные
</div>

Это вроде понятно. Непонятно то, что как данные в этот див передадуться после нажатия на кнопку предварительный просмотр. Как бы схема будет такой:
Предварительный просмотр->дальше куда?->в див который указан выше. Или схема не такая? Понятно, что див будет скрываться и при помощи JS отображаться...когда в див передали данные. Как передать данные в этот див? Куда данные должны передаться до дива?
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Документация по компонентам
« Ответ #151 : 20.05.2006, 17:45:03 »
Предварительный просмотр->дальше куда?->в див который указан выше. Или схема не такая?
можно и так. можно с перегрузкой страницы.
просто в первом случае код полностью формирует js, а во втором PHP

Понятно, что див будет скрываться и при помощи JS отображаться...когда в див передали данные. Как передать данные в этот див? Куда данные должны передаться до дива?
ну так это опять же зависит...
если данные сформированы ДО построения дива, это наверно лучше делать на рнр, если же данные формируются после, то это только JS по принципу document.id.innerHTML, но это зависит от местоположения объекта
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3

Re: Документация по компонентам
« Ответ #152 : 20.05.2006, 17:57:18 »
Вот буду очень рад, если пример какой нить дашь.  ;) Вот у меня див будет выше формы:

Код
<div id="unik" style="display: none;"></div>
<form action="index.php?option=$option" method="GET" name="Form">
<input type="text" name="adres" value="" size="10" class="text">
<input type="submit" value="отправить" class="button">
<input type="reset" value="Предварительный просмотр" class="button">
</form>
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Документация по компонентам
« Ответ #153 : 20.05.2006, 18:21:00 »
ну вот так, "на бегу":

<script>
function show(){
   unik.innerHTML = myform.adres.value;
}
</script>
<div id="unik"></div>

<form action="index.php?option=$option" method="GET" name="myform">
<input type="text" name="adres" value="allowable text" size="10" class="text">
<input type="button" onclick="show()" value="отправить" class="button" name="button">
</form>

при нажатии на кнопку текст из инпута будет скопирован в див
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

dreamwind

  • Захожу иногда
  • 166
  • 27 / 13
Re: Документация по компонентам
« Ответ #154 : 20.05.2006, 19:03:53 »
Господа, давайте не будем учить детей плохому?

<script>
function show(){
   unik.innerHTML = myform.adres.value;
}
</script>
<div id="unik"></div>

Будет работать только в ИЕ, используйте хотя бы

document.getElementById('unik').nnerHTML=myform.adres.value;

да и к элементу формы лучше обращаться

document.forms['myform'].adres

А еще лучше передавать объект формы прямо из button:

<script type="text/javascript">
function show(form){
   document.getElementById('unik').innerHTML = form.adres.value;
}
</script>

<div id="unik"></div>

<form action="index.php?option=$option" method="GET" name="myform">
<input type="text" name="adres" value="allowable text" size="10" class="text">
<input type="button" onclick="show(form)" value="отправить" class="button" name="button">
</form>

Re: Документация по компонентам
« Ответ #155 : 21.05.2006, 09:48:05 »
dreamwind
Спасибо за помощь!!)) Буду смотреть.
Господа, давайте не будем учить детей плохому?
Это Вы конечно зря так..))

userxp
Спасибо! Что получится дам знать!)
*

PyKaB

  • Захожу иногда
  • 88
  • 19 / 13
Re: Документация по компонентам
« Ответ #156 : 22.05.2006, 12:11:10 »
а вот еще вопросик(нравиться мне эта тема - прям интелектуальная инструкцая по апи + пхп + ява )) ). Хочу сделать колонку "опубликовано" ну и кнопку соответствующую. хочется чтоб работала кнопка при включенном чекбоксе(чекбоксы джумловским методом сделанны) и работало изменение по щелчку на иконку в строке(красный крест где). как такое делается?

Re: Документация по компонентам
« Ответ #157 : 22.05.2006, 17:44:27 »
а вот еще вопросик(нравиться мне эта тема - прям интелектуальная инструкцая по апи + пхп + ява )) ). Хочу сделать колонку "опубликовано" ну и кнопку соответствующую. хочется чтоб работала кнопка при включенном чекбоксе(чекбоксы джумловским методом сделанны) и работало изменение по щелчку на иконку в строке(красный крест где). как такое делается?

А где хочешь сделать в админ части или на самом сайте?
*

PyKaB

  • Захожу иногда
  • 88
  • 19 / 13
Re: Документация по компонентам
« Ответ #158 : 22.05.2006, 18:30:25 »
в админ части...
*

grusha

  • Осваиваюсь на форуме
  • 21
  • 2 / 0
Re: Документация по компонентам
« Ответ #159 : 22.05.2006, 19:39:03 »
 а мне ктонить подскажите .......
у меня есть 2 таблицы categories и subcategories.
В таблице categories есть 2 поля : 'id' и 'name'
В Таблице subcategories 3 поля :'id' 'parent' 'name'
в таблице categories 'name' - название ,скажем , городов и имеет id
в таблице subcategories 'name' - название улиц и имеет parent=id из таблици categories.

вообщем мне надо чтоб при выборе города автоматически показывались улицы только этого города , сейчас я сделал у меня показывает все улицы независимо от того какой город выбран.
надо чтобы если в таблице categories у города id=1 то из базы subcategories выбирались улици у которых parent=1.
у еще вопросик...
это сделано как выпадающее меню , можно ли сделать обновление улиц без перезагрузки страници .
« Последнее редактирование: 22.05.2006, 19:57:19 от grusha »
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Документация по компонентам
« Ответ #160 : 22.05.2006, 20:20:03 »
вот такой запрос примерно 'SELECT name FROM #__subcategories WHERE parent='.$row->id , где $row->id - id таблицы categories
вопрос был - без перегрузки страницы.

2 grusha:
или грузи всё в массивы javascript или используй технологии AJAX
если инфы не много, то первое проще.
сколько записей в таблицах?
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

grusha

  • Осваиваюсь на форуме
  • 21
  • 2 / 0
Re: Документация по компонентам
« Ответ #161 : 23.05.2006, 00:28:17 »
записей будет около 500
*

grusha

  • Осваиваюсь на форуме
  • 21
  • 2 / 0
Re: Документация по компонентам
« Ответ #162 : 23.05.2006, 00:31:04 »
вот такой запрос примерно 'SELECT name FROM #__subcategories WHERE parent='.$row->id , где $row->id - id таблицы categories

спасибо , но он же будет брать id из subcategories а мне надо чтоб id он брал из categories
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Документация по компонентам
« Ответ #163 : 23.05.2006, 00:37:09 »
скажем по 50 символов * 4 (для массива) * 500 = прим. +100 кБ к ёмкости страницы.

я знаю?.. думай.
ИМХО - не есть гут.
попробуй пересчитать по реальным данным

а что, не перегружать - так критично?
« Последнее редактирование: 23.05.2006, 00:39:19 от userxp »
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

grusha

  • Осваиваюсь на форуме
  • 21
  • 2 / 0
Re: Документация по компонентам
« Ответ #164 : 23.05.2006, 00:44:07 »
ну с перерезагрузкой я разберусь а вот с выбором по таблице немогу ......
и правильно ли вообще что я в двух таблицах сделал два поля name или это неимеет значения ??
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Документация по компонентам
« Ответ #165 : 23.05.2006, 00:54:57 »
в общем:
если ты хочешь делать выборку с перезагрузкой, то придётся делать всё равно два запроса
1) просто SELECT id, name FROM .... - это для главного списка
при выборе нужно в GET дописать свой идентификатор, потом, после перезагрузки отбираешь $_GET['имя_параметра'] и по нему отсеиваешь:
2) SELECT поля FROM таблица WHERE условие выборки по $_GET['имя_параметра'] -> получишь отфильтрованные данные
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

grusha

  • Осваиваюсь на форуме
  • 21
  • 2 / 0
Re: Документация по компонентам
« Ответ #166 : 23.05.2006, 01:22:08 »
спасибо большое, буду пробовать
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Документация по компонентам
« Ответ #167 : 23.05.2006, 01:33:42 »
да пожалуйста, просто не хочется поисывать подробно, поскольку это как-то не совсем относится к джумле - это общий подход реализации и это можно прочитать в книгах, да и с уже готовыми примерами и пояснениями.
а джумла - это просто часть этой реализаци.
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3

Re: Документация по компонентам
« Ответ #168 : 23.05.2006, 06:53:26 »
в админ части...

Я делал вот так:

Код
<?php
for ($i=0, $n=count( $rows ); $i < $n; $i++) {

$row = &$rows[$i];

$pub = $row->published ? 'unpublish' : 'publish';
$im_g = $row->published ? 'tick.png' : 'publish_kr.png';
?>

<input type="checkbox" id="cb<?php echo $i;?>" name="id[]" value="<?php echo $row->id; ?>" onclick="isChecked(this.checked);" />  // Это чекбокс

<a href="javascript: void(0);" onclick="return listItemTask('cb<?php echo $i;?>','<?php echo $pub;?>')"><img src="images/<?php echo $im_g;?>" width="12" height="12" border="0" alt="" /></a>  // Это сама картинка по которой будешь переключать
}


К этому у тебя должен быть свой файл с классом, и должна быть описана функция публикации, у меня она выглядит так:

Код
<?php

    function publish_x( $cid=null, $publish=1,  $option ) {
global $database;
    if (!is_array( $cid ) || count( $cid ) < 1) {
$action = $publish ? 'publish' : 'unpublish';
echo "<script> alert('" . "messaga!!!" . " $action'); window.history.go(-1);</script>\n";
exit;
}
    $cids = implode( ',', $cid );
    $database->setQuery( "UPDATE #__tablename SET published='$publish' WHERE id IN ($cids)" );
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
exit();
}
    mosRedirect( "index2.php?option=$option" );
}
?>
Сразу скажу, что у меня с первого раза не получилось...)) Так что у тебя тоже может такое быть. Но во всяком случае работать должно!)

« Последнее редактирование: 23.05.2006, 06:55:32 от Quexx »
*

PyKaB

  • Захожу иногда
  • 88
  • 19 / 13
Re: Документация по компонентам
« Ответ #169 : 23.05.2006, 12:57:28 »
хм... особо не понял... а когда будет вызываться publish_х?

Re: Документация по компонентам
« Ответ #170 : 23.05.2006, 13:26:51 »
хм... особо не понял... а когда будет вызываться publish_х?

Тебе нужно пробовать...чтобы понять. Вызываться будет когда по картинкам будешь кликать или когда выберешь чекбокс и нажмешь в меню публиковать/непубликовать. Publish_x это у меня, а ты можешь обозвать как тебе захочется. Потом ее нужно загнать в swich примерно таким образом:

Код
<?php
  switch ($task) {
case "publish":
publish_x( $id, 1, $option );
break;
case "unpublish":
publish_x( $id, 0, $option );
break;
?>

Re: Документация по компонентам
« Ответ #171 : 24.05.2006, 17:55:46 »

Пример использования функции strtotime()
<?php
echo strtotime("now"), "\n";
echo 
strtotime("10 September 2000"), "\n";
echo 
strtotime("+1 day"), "\n";
echo 
strtotime("+1 week"), "\n";
echo 
strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo 
strtotime("next Thursday"), "\n";
echo 
strtotime("last Monday"), "\n";
?> 


Вот не могу понять где тут мне может пригодится strtotime? Если возможно расскажи подробнее)) И допустим у меня есть в базе дата удаления 2006-06-25, как мне сравнить с текущей датой эту дату, и вывести юзеру сколь осталось дней?
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Документация по компонентам
« Ответ #172 : 24.05.2006, 18:44:41 »
сорьки, но ща сильно занят :(
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3

Re: Документация по компонентам
« Ответ #173 : 25.05.2006, 07:48:48 »
Оке...Ну если появится минутка, то напиши. Может я к тому времени..что и сам додумаю..))

Re: Документация по компонентам
« Ответ #174 : 25.05.2006, 08:19:29 »
Вот не могу понять где тут мне может пригодится strtotime? Если возможно расскажи подробнее)) И допустим у меня есть в базе дата удаления 2006-06-25, как мне сравнить с текущей датой эту дату, и вывести юзеру сколь осталось дней?
Обязательно это средствами php делаь? Если значение с которым нужно узнать разницу в БД имхо решать такую задачу надо стредствами БД.
Например так:
SELECT DATEDIFF(NOW(),'2006-06-25')
*

PyKaB

  • Захожу иногда
  • 88
  • 19 / 13
Re: Документация по компонентам
« Ответ #175 : 25.05.2006, 09:29:16 »
toolbar.****.html.php подключается из toolbar.****.php,  а тот, в свою очередь, вызывается в файле: administrator/modules/mod_toolbar.php...

если тебе необходимо использовать русские языковые константы, то лучше их подключить в файле toolbar.****.php
а вот и нет :) тут дело не чисто :) в toolbar.****.php не определенна $mosConfig_lang, поэтому подключить проблематично, НО если подключить в admin.***.php, в котором $mosConfig_lang определен, то языковые константы работают в toolbar.****.html.php.... получается, что admin.***.php подключается первый и потом где-то удаляется переменная $mosConfig_lang.

Re: Документация по компонентам
« Ответ #176 : 25.05.2006, 15:41:31 »
Обязательно это средствами php делаь? Если значение с которым нужно узнать разницу в БД имхо решать такую задачу надо стредствами БД.
Например так:
SELECT DATEDIFF(NOW(),'2006-06-25')

Не так SELECT DATEDIFF(NOW(),'2006-06-25'), А так SELECT PERIOD_DIFF(NOW(),'2006-06-25'). Но это все равно не подходит, проверять нужно не одну строку, а больше 300..так что тут без рнр ни как.

to USERXP

Все проблему решил по описаному выше тобой примеру! Разницу между дат вычислил путем перевода даты из базы:

  $a 
strtotime ("$row->dropdate");
  
$c $a time(); 


Результат сам поделил на сутки и секунды. Получил что хотел. Удаление из базы проделал простым запросом.)) Ну и все соответственно в цикле.

ЗЫ. Чуть не забыл +1 сделать.)) Спасибо помог в очередной раз!
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Документация по компонентам
« Ответ #177 : 25.05.2006, 15:53:28 »
Спасибо/Пожалуйста!
Молодец, что разобрался.
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3

Re: Документация по компонентам
« Ответ #178 : 25.05.2006, 19:09:47 »
Не так SELECT DATEDIFF(NOW(),'2006-06-25'), А так SELECT PERIOD_DIFF(NOW(),'2006-06-25'). Но это все равно не подходит, проверять нужно не одну строку, а больше 300..так что тут без рнр ни как.
А в чем собственно проблемы? Зачем прекладывать на php ту работу с которой отлично справится БД...
А PERIOD_DIFF счиатет разниу в месяцах... а вы если память не изменяет хотели разницу в днях.

Re: Документация по компонентам
« Ответ #179 : 26.05.2006, 07:19:56 »
А в чем собственно проблемы? Зачем прекладывать на php ту работу с которой отлично справится БД...
А PERIOD_DIFF счиатет разниу в месяцах... а вы если память не изменяет хотели разницу в днях.

Да так и есть, и память вам не изменяет, именно в днях я и хотел. Вот тогда зачем Вы мне предложили PERIOD_DIFF? Ну не в этом суть я же говорил что сравнить нужно более 300 строк в которых не одна и таже дата, а все разные и получается что текущую дату нужно сравнить с тремя сотнями разных дат. Вот покажите мне пример запроса в базу (SELECT PERIOD_DIFF), без помощи рнр чтобы запрос вернул 300 значений - разностей дат.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Документация по созданию user profile плагина для Joomla 1.6

Автор n_drey

Ответов: 13
Просмотров: 3006
Последний ответ 05.10.2011, 21:03:46
от n_drey