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

kate1987

  • Захожу иногда
  • 51
  • 0 / 0
Здравствуйте. Использую Joomla3 + JoomShopping-4.4.0
Была задача разместить аттрибуты на странице категории в таком виде
http://joxi.ru/pTbqUhjKTJC4Tm0FSVo
Аттрибуты отобразила без проблем с помошью темы в форуме и сделала из радиобытон кнопки таким образом
Код
<script>
// RadioButton
$('.radioblock').find('.radio').click(function(){
var valueRadio = $(this).html();
$(this).parent().find('.radio').removeClass('active');
$(this).addClass('active');
$(this).parent().find('input').val(valueRadio).attr('checked','checked')
});
    </script>

Код
  $html.='<div class="radio">'.$obj->$key.'</div><input type="hidden" name="'.$name.'" id="'.$id_text.'" value="'.$obj->$key.'"'.$sel.' '.$params.'> '."".$separator;


и
стилей
Код
/* = Переключатели Radio Button */
.radio {
display: block;
height: 25px;
background: #fdac74;

cursor: pointer;
text-indent: 10px;
font-size: 13px;
float:left;
color:#8f4d00;
min-width:27px;
margin-right:10px;
}




.radioblock label {
    float: left;

}
.radio.active {
background: #ffdfc8;
}
.radio.error {
border-color: #ff0000;
}

Проблема в том что внутри этих самых копочек аттрибутов выводится параметр $obj->$key то есть номер, а не название аттрибута, если я здесь
Код
  $html.='<div class="radio">'.$obj->$key.'</div><input type="hidden" name="'.$name.'" id="'.$id_text.'" value="'.$obj->$key.'"'.$sel.' '.$params.'> '."".$separator;
ставлю obj->$val вместо  $obj->$key  тогда значение аттрибута в корзине пустое

Прошу помощи. Как отобразить в кнопках название а не ид аттрибута?
*

kate1987

  • Захожу иногда
  • 51
  • 0 / 0
Никто не может подсказать?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Код: javascript
var valueRadio = $(this).html();
что содержит valueRadio после выполнения данного кода?

а потом вы делаете
Код: javascript
$(this).parent().find('input').val(valueRadio)
т.е. задаете для инпута value = valueRadio. и если valueRadio содержит не значение, а название атрибута, то понятно дело ничего хорошего из этого не выходит.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

kate1987

  • Захожу иногда
  • 51
  • 0 / 0
Код: javascript
var valueRadio = $(this).html();
что содержит valueRadio после выполнения данного кода?

а потом вы делаете
Код: javascript
$(this).parent().find('input').val(valueRadio)
т.е. задаете для инпута value = valueRadio. и если valueRadio содержит не значение, а название атрибута, то понятно дело ничего хорошего из этого не выходит.

Я понимаю что то что в valueRadio выводится, а там как я уже писала  $obj->$key, если поставить  obj->$val  тогда товар в корзину не добавляется понимате?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
я то прекрасно понимаю :) вы видимо меня не очень :) и на вопросы не хотите отвечать.

1. $(this).html() возвращает содержимое div. Поскольку div у нас содержит Значение атрибута, то все работает верно.
2. Если заменить содержимое дива на Имя, то будет возвращаться не Значение атрибута, а его Имя. И потом это возвращенное значение записывается в value инпута. И соответственно ничего не работает, потому что value должно содержать Значение атрибута, а никак не Имя

Выводы: поскольку $(this).html() возвращает только одно - содержимое элемента, то использовать его если в диве Имя не представляется возможным. Для хранения параметров и получения их в js придумали очень удобные HTML-атрибуты data-*. Записав сначала в такой атрибут $obj->$key, а потом считав его (а не содержимое дива), вы получите желаемый эффект. Содержимое дива при этом может быть абсолютно любым, хоть Имя атрибута, хоть что угодно другое
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

kate1987

  • Захожу иногда
  • 51
  • 0 / 0
(function ($) {
    $(document).ready(function() {
 



        $('input[type="radio"]').each(function() {
            var self = $(this);
            self.hide();
            if (this.getAttribute('checked')) {
                self.after('<div class="radio-style checked" data-id="' + this.getAttribute('id') + '"  data-name="' + this.getAttribute('id') + '"></div>');
            } else {
                self.after('<div class="radio-style" data-id="' + this.getAttribute('id') + '" data-name="' + this.getAttribute('id') + '"></div>');
            }
        })

        $('.radio-style').live('click', function(){
            var self = $(this);
            var id = this.getAttribute('data-id');
            var name = this.getAttribute('data-name');

            if(self.hasClass('checked')) {
                $('input[name="'+name+'"]').attr('checked', '');
                $('div[data-name="'+name+'"]').removeClass('checked');
                self.removeClass('checked');
                $('#' + id).attr('checked', '');
            } else {
                $('input[name="'+name+'"]').attr('checked', '');
                $('div[data-name="'+name+'"]').removeClass('checked');
                self.addClass('checked');
                $('#' + id).attr('checked', 'checked');
            }
        })
    });
})(jQuery);

   // RadioButton
   //var $j = jQuery.noConflict();
   
   
   
   //$j('#pid_<?php print $product->product_id?>_block_attr_sel_<?php foreach($attributes as $attribut){?><?php print $attribut->attr_id?><?php }?>').find('.input_type_radio').click(function(){
      //var valueRadio = $j(this).html();
      //$j(this).parent().find('.input_type_radio').removeClass('active');
      //$j(this).addClass('active');
      //$j(this).parent().find('input').attr('checked','checked');
//   });
    </script>

вот что то такое сделала, но товар не добавляется, и при выборе нового аттрибута предыдуший не обнояется(( иссякли все идеи уже
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
что за функция
Код: javascript
this.getAttribute
?

я это... я что-то не понял, зачем вы стока всего переписали? вам всего то надо было для дива там где сейчас значение атрибута выводится (там, где вы имя хотите вывести) добавить какой нибудь например
data-attr-id="'.$obj->$key.'" и содержимое при этом уже как угодно пишите, да
Код: javascript
var valueRadio = $j(this).html();
заменить на
Код: javascript
var valueRadio = $j(this).data('attrId');
« Последнее редактирование: 31.01.2014, 18:49:13 от dmitry_stas »
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

kate1987

  • Захожу иногда
  • 51
  • 0 / 0
да название вывело но добавлять аттрибут в корзину не хочет тк.к добавляет попараметру записаному в valueRadio. Так как там не ид а название добавлять не хочет((

вот как для инпута параметр аттрибута изменяется $(this).parent().find('input').val(valueRadio).attr('checked','checked')

*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Тема
Цитировать
Re: Отображение аттрибутов на странице категории в виде кнопок
теперь
Цитировать
да название вывело но добавлять аттрибут в корзину не хочет
:)

разные задачи априори.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
kate1987, та ну шо ж за апврп4еек4ц3! вы читаете что я пишу, или просто делаете, что считаете нужным? я могу прекратить, если вам оно не надо.

вы заменили на var valueRadio = $(this).data('attrId'); и в <span... добавили data-attr-id="'.$obj->$key.'" ? вы сделали это?

PS и я по двум темам не успеваю :) вы или тут, или там :)
« Последнее редактирование: 31.01.2014, 20:18:44 от dmitry_stas »
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

kate1987

  • Захожу иногда
  • 51
  • 0 / 0
я извиняюсь не пойму к какой a href? этой
Код
 href="<?php print $product->buy_link?> data-attr-id="'.$obj->$key.'"">
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
я исправил уже. span судя по сообщению в соседней теме, тот что раньше был <div class="radio">
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

kate1987

  • Захожу иногда
  • 51
  • 0 / 0
Нет не хочет добавлять в корзину(( Пишет выбирите параметры

Код
<script>
// RadioButton
var $j = jQuery.noConflict();
$j('#pid_<?php print $product->product_id?>_block_attr_sel_<?php foreach($attributes as $attribut){?><?php print $attribut->attr_id?><?php }?>').find('.input_type_radio').click(function(){
var valueRadio = $j(this).data('attrId');
$j(this).parent().find('.input_type_radio').removeClass('active');
$j(this).addClass('active');
$j(this).parent().find('input').val(valueRadio).attr('checked','checked');
});
    </script>

Код
  $html.='<span class="input_type_radio" data-attr-id="'.$obj->$key.'">'.$obj->$val.'</span><input type="radio" name="'.$name.'" id="'.$id_text.'" value="'.$obj->$key.'"'.$sel.' '.$params.'> '."".$separator;
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Код: javascript
$j('#pid_<?php print $product->product_id?>_block_attr_sel_<?php foreach($attributes as $attribut){?><?php print $attribut->attr_id?><?php }?>')
что это и для чего это?

kate1987, у вас в первом посте - полностью рабочий код. добавление в корзину работает как нужно, за исключением того, что вас там не устраивало, что у вас в диве выводится $obj->$key. так? для чего вы объясните мне пожалуйста наделали это все что есть сейчас? верните все обратно как было в первом посте, и сделайте только те 2 вещи которые я написал тут. то, что вы собственно уже сделали. и больше ничего менять не нужно по отношению к первоначальному рабочему коду
« Последнее редактирование: 31.01.2014, 22:23:21 от dmitry_stas »
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

kate1987

  • Захожу иногда
  • 51
  • 0 / 0
Да вы правы все работает ^-^ ^-^ Юольшое спасибо Я просто хотела поправить для плагина который добавляет аттрибуты, который нашла попозже
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Цитировать
Да вы правы все работает
Я искренне рад :)

Цитировать
хотела поправить для плагина который добавляет аттрибуты, который нашла попозже
Ну... Тяжело найти черную кошку в темной комнате, особенно если ее там нет… Я то знаю только то, что вы в теме показываете :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывести заголовок прописанный в пункте меню вместо названия категории

Автор anatolij

Ответов: 13
Просмотров: 3140
Последний ответ 04.12.2024, 15:20:00
от kit2m2
В описании категории не работает плагин Jshortcodes

Автор SLV

Ответов: 1
Просмотров: 1946
Последний ответ 09.09.2024, 17:35:29
от kit2m2
Сортировка товаров внутри категории

Автор oslyabya

Ответов: 1
Просмотров: 2270
Последний ответ 02.08.2024, 22:06:39
от nevigen
Как исключить отображение текста в определенных категориях?

Автор art22

Ответов: 4
Просмотров: 1586
Последний ответ 25.07.2023, 19:53:58
от art22
Сравнить общее количество товаров категории с количеством на странице

Автор goga_pgasovav

Ответов: 6
Просмотров: 1761
Последний ответ 25.01.2023, 20:12:58
от goga_pgasovav