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

leha111

  • Захожу иногда
  • 226
  • 0 / 0
Учусь делать компоненты.

https://mb4.ru/cms/joomla4/724-developing-a-basic-component-for-joomla-4.html

schooltechcontent.xml
Код
<?xml version="1.0" encoding="utf-8"?>
<extension type="component" method="upgrade">
<!-- атрибут 'version' для тега расширения больше не используется -->
 
    <name>SchoolTechContent</name>
    <!-- Следующие элементы являются необязательными и не содержат ограничений на форматирование -->
    <creationDate>Janiary 2022</creationDate>
    <!-- Фиктивный автор, не стесняйтесь заменять его в любом месте, где вы его видите -->
    <author></author>
    <authorUrl></authorUrl>
    <copyright></copyright>
    <license></license>
    <!-- Строка 'version' записывается в таблицу компонентов -->
    <version>0.0.1</version>
    <!-- Описание является необязательным и по умолчанию используется имя сомпонента -->
    <description>
        Schootech content
    </description>
 
    <!-- Это пространство имен PHP, в котором организован
    код расширения. Он должен следовать этому формату:
   
    Vendor\Component\ComponentName
 
    "Vendor" может быть названией компании или вашим собственным именем
   
    Раздел "ComponentName" ДОЛЖЕН соответствовать имени, используемому
    везде для вашего компонента. Каким бы ни было имя этого XML-файла,
    пространство имен должно совпадать (заглавные/прописные буквы не учитываются).
    -->
    <namespace path="src/">MuCompani\Component\schooltechcontent</namespace>
           
    <administration>
        <!-- Ссылка, которая появится в меню админки Joomla "Components" -->
        <menu link="index.php?option=com_schooltechcontent">SchoolTech</menu>
        <!-- Список файлов и папок для копирования.
             Обратите внимание на атрибут "folder".
             Это имя папки в пакете компонентов для копирования в CMS Joomla 4. -->
        <files folder="admin/">
            <folder>services</folder>
            <folder>src</folder>
            <folder>tmpl</folder>
        </files>
    </administration>
 
</extension>

admin/services/provider.php
Код
<?php

defined('_JEXEC') or die;

use Joomla\CMS\Dispatcher\ComponentDispatcherFactoryInterface;
use Joomla\CMS\Extension\ComponentInterface;
use Joomla\CMS\Extension\MVCComponent;
use Joomla\CMS\Extension\Service\Provider\ComponentDispatcherFactory;
use Joomla\CMS\Extension\Service\Provider\MVCFactory;
use Joomla\CMS\MVC\Factory\MVCFactoryInterface;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;

return new class implements ServiceProviderInterface {

    public function register(Container $container): void {
        $container->registerServiceProvider(new MVCFactory('\\MuCompani\\Component\\SchoolTechContent'));
        $container->registerServiceProvider(new ComponentDispatcherFactory('\\MuCompani\\Component\\SchoolTechContent'));
        $container->set(
            ComponentInterface::class,
            function (Container $container) {
                $component = new MVCComponent($container->get(ComponentDispatcherFactoryInterface::class));
                $component->setMVCFactory($container->get(MVCFactoryInterface::class));

                return $component;
            }
        );
    }
};

admin/src/Controller/DisplayController.php
Код
<?php

namespace MuCompani\Component\schooltechcontent\Administrator\Controller;

defined('_JEXEC') or die;

use Joomla\CMS\MVC\Controller\BaseController;


/**
 * Контроллер по умолчанию компонента SchoolTechContent
 *
 * @package     Joomla.Administrator
 * @subpackage  com_schooltechcontent
 */
class DisplayController extends BaseController {
    /**
     * Представление по умолчанию для метода отображения.
     *
     * @var string
     */
    protected $default_view = 'schoolcontent';

    public function display($cachable = false, $urlparams = array()) {
        return parent::display($cachable, $urlparams);
    }

}

admin/src/View/SchoolContent/HtmlView.php
Код
<?php

namespace MuCompani\Component\schooltechcontent\Administrator\Controller;

defined('_JEXEC') or die;

use Joomla\CMS\MVC\Controller\BaseController;


/**
 * Контроллер по умолчанию компонента SchoolTechContent
 *
 * @package     Joomla.Administrator
 * @subpackage  com_schooltechcontent
 */
class DisplayController extends BaseController {
    /**
     * Представление по умолчанию для метода отображения.
     *
     * @var string
     */
    protected $default_view = 'schoolcontent';

    public function display($cachable = false, $urlparams = array()) {
        return parent::display($cachable, $urlparams);
    }

}

admin/tmpl/schoolcontent/default.php
Код
<?php

namespace MuCompani\Component\schooltechcontent\Administrator\View\SchoolContent;

defined('_JEXEC') or die;

use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView;

/**
 * @package     Joomla.Administrator
 * @subpackage  com_schooltechcontent
 *
 * [member=126442]copyright[/member]   Copyright (C) 2021 John Smith. All rights reserved.
 * @license     GNU General Public License version 3; see LICENSE
 */

/**
 * Основной вид в админке "SchoolTechContent"
 */
class HtmlView extends BaseHtmlView {

    /**
     * Отображение основного вида "SchoolTechContent"
     *
     * @param   string  $tpl  Имя файла шаблона для анализа; автоматический поиск путей к шаблону.
     * @return  void
     */
    function display($tpl = null) {
        parent::display($tpl);
    }


}

Собираю все это в архив com_schooltechcontent.zip и устанавливаю. В итоге, в меню компонента выводится

Некорректный класс контроллера: display

При копипасте из примера все работает нормально.

Где я ошибся (подозреваю, что где-то в admin/src/View/SchoolContent/HtmlView.php)?



*

ProtectYourSite

  • Живу я здесь
  • 2368
  • 139 / 4
  • Безопасность вебсайтов
Re: Ошибка при создании компонента
« Ответ #1 : 28.01.2022, 15:34:22 »
admin/src/View/SchoolContent/HtmlView.php

Код
namespace MuCompani\Component\schooltechcontent\Administrator\View\SchoolContent;

admin/tmpl/schoolcontent/default.php

Вообще убрать все и выводить только верстку,  к примеру
Код
	<h2>Hello world!</h2>
*

leha111

  • Захожу иногда
  • 226
  • 0 / 0
Re: Ошибка при создании компонента
« Ответ #2 : 31.01.2022, 07:53:24 »
admin/src/View/SchoolContent/HtmlView.php

И чем это отличается от того, что я написал ? Или это в смысле, что с ним что-то не так ? А что именно ?

Я пробовал в этом файле только эту строчку и оставить, но от опять выводит неверный класс display
« Последнее редактирование: 31.01.2022, 08:24:18 от leha111 »
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Re: Ошибка при создании компонента
« Ответ #3 : 31.01.2022, 10:32:04 »
admin/src/View/SchoolContent/HtmlView.php

И чем это отличается от того, что я написал ? Или это в смысле, что с ним что-то не так ? А что именно ?

Я пробовал в этом файле только эту строчку и оставить, но от опять выводит неверный класс display
admin/tmpl/schoolcontent/default.php

Здесь только вёрстку оставить, это же макет по сути. Там не должно быть классов.
*

leha111

  • Захожу иногда
  • 226
  • 0 / 0
Re: Ошибка при создании компонента
« Ответ #4 : 31.01.2022, 12:13:55 »
Косяк ! То, что записано, как admin/tmpl/schoolcontent/default.php - это, на самом деле, admin/src/View/SchoolContent/HtmlView.php. А реально это файл выгляди так.

Код
<?php

/**
 * @package     Joomla.Administrator
 * @subpackage  com_schooltechcontent
 *
 * [member=126442]copyright[/member]
 * @license
 */

// Нет прямого доступа к этому файлу
defined('_JEXEC') or die('Всем кыш! =D');
?>
<h2>ТЕСТ</h2>




 
*

leha111

  • Захожу иногда
  • 226
  • 0 / 0
Re: Ошибка при создании компонента
« Ответ #5 : 31.01.2022, 13:09:03 »
Попробовал немного переделать

schooltechcontent.xml

Код
<?xml version="1.0" encoding="utf-8"?>
<extension type="component" method="upgrade">
<!-- атрибут 'version' для тега расширения больше не используется -->
 
    <name>SchoolTechContent</name>
    <!-- Следующие элементы являются необязательными и не содержат ограничений на форматирование -->
    <creationDate></creationDate>
    <!-- Фиктивный автор, не стесняйтесь заменять его в любом месте, где вы его видите -->
    <author>MuCompani</author>
    <authorUrl></authorUrl>
    <copyright></copyright>
    <license></license>
    <!-- Строка 'version' записывается в таблицу компонентов -->
    <version>0.1</version>
    <!-- Описание является необязательным и по умолчанию используется имя сомпонента -->
    <description>
        Контент для сайта SchoolTech
    </description>
 
    <!-- Это пространство имен PHP, в котором организован
    код расширения. Он должен следовать этому формату:
   
    Vendor\Component\ComponentName
 
    "Vendor" может быть названией компании или вашим собственным именем
   
    Раздел "ComponentName" ДОЛЖЕН соответствовать имени, используемому
    везде для вашего компонента. Каким бы ни было имя этого XML-файла,
    пространство имен должно совпадать (заглавные/прописные буквы не учитываются).
    -->
    <namespace path="src/">MuCompani\Component\SchoolTechContent</namespace>
           
    <administration>
        <!-- Ссылка, которая появится в меню админки Joomla "Components" -->
        <menu link="index.php?option=com_schooltechcontent">SchoolTechContent</menu>
        <!-- Список файлов и папок для копирования.
             Обратите внимание на атрибут "folder".
             Это имя папки в пакете компонентов для копирования в CMS Joomla 4. -->
        <files folder="admin/">
            <folder>services</folder>
            <folder>src</folder>
            <folder>tmpl</folder>
        </files>
    </administration>
 
</extension>

admin/services/provider.php
Код
<?php

defined('_JEXEC') or die;

use Joomla\CMS\Dispatcher\ComponentDispatcherFactoryInterface;
use Joomla\CMS\Extension\ComponentInterface;
use Joomla\CMS\Extension\MVCComponent;
use Joomla\CMS\Extension\Service\Provider\ComponentDispatcherFactory;
use Joomla\CMS\Extension\Service\Provider\MVCFactory;
use Joomla\CMS\MVC\Factory\MVCFactoryInterface;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;

return new class implements ServiceProviderInterface {

    public function register(Container $container): void {
        $container->registerServiceProvider(new MVCFactory('\\MuCompani\\Component\\SchoolTechContent'));
        $container->registerServiceProvider(new ComponentDispatcherFactory('\\MuCompani\\Component\\SchoolTechContent'));
        $container->set(
            ComponentInterface::class,
            function (Container $container) {
                $component = new MVCComponent($container->get(ComponentDispatcherFactoryInterface::class));
                $component->setMVCFactory($container->get(MVCFactoryInterface::class));

                return $component;
            }
        );
    }
};

admin/src/Controller/DisplayController.php

Код
<?php

namespace MuCompani\Component\SchoolTechContent\Administrator\Controller;

defined('_JEXEC') or die;

use Joomla\CMS\MVC\Controller\BaseController;

/**
 * @package     Joomla.Administrator
 * @subpackage  com_schooltechcontent
 *
 * [member=126442]copyright[/member]   Copyright (C) 2021 John Smith. All rights reserved.
 * @license     GNU General Public License version 3; see LICENSE
 */

/**
 * Контроллер по умолчанию компонента SchoolTechContent
 *
 * @package     Joomla.Administrator
 * @subpackage  com_schooltechcontent
 */
class DisplayController extends BaseController {
    /**
     * Представление по умолчанию для метода отображения.
     *
     * @var string
     */
    protected $default_view = 'schooltemplate';

    public function display($cachable = false, $urlparams = array()) {
        return parent::display($cachable, $urlparams);
    }

}


admin/src/View/SchoolContent/HtmlView.php

Код
<?php

namespace MuCompani\Component\SchoolTechContent\Administrator\View\SchoolContent;

defined('_JEXEC') or die;

use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView;

/**
 * @package     Joomla.Administrator
 * @subpackage  com_helloworld
 *
 * [member=126442]copyright[/member]   Copyright (C) 2021 John Smith. All rights reserved.
 * @license     GNU General Public License version 3; see LICENSE
 */

/**
 * Основной вид в админке "SchoolTechContnent"
 */
class HtmlView extends BaseHtmlView {

    /**
     * Отображение основного вида "SchoolTechContnent"
     *
     * @param   string  $tpl  Имя файла шаблона для анализа; автоматический поиск путей к шаблону.
     * @return  void
     */
    function display($tpl = null) {
        parent::display($tpl);
    }


}

admin/tmpl/schooltemplate/default.php
Код
<?php

/**
 * @package     Joomla.Administrator
 * @subpackage  com_helloworld
 *
 * [member=126442]copyright[/member]   Copyright (C) 2021 John Smith. All rights reserved.
 * @license     GNU General Public License version 3; see LICENSE
 */

// Нет прямого доступа к этому файлу
defined('_JEXEC') or die('Всем кыш! =D');
?>
<h2>Hello world!</h2>

Теперь он пишет "404 Не удалось найти представление [name, type, prefix]: schooltemplate, HTML, Administrator.

"
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Re: Ошибка при создании компонента
« Ответ #6 : 01.02.2022, 11:13:58 »
Зачем ты сюда это запостил?
https://github.com/joomla/joomla-cms/issues/36908

Это не проблема CMS, грузишь людей непонятно чем, ещё и ссылки там оставляешь на русскоязычый ресурс. Закрой там issue, пожалуйста.

Цитировать
Теперь он пишет "404 Не удалось найти представление [name, type, prefix]: schooltemplate, HTML, Administrator.
Тебе эта ошибка явно же пишет, что пытается открыть представление с именем schooltemplate. А у тебя какое? SchoolContent
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибка вывода страницы регистрации на сайте Joomla! 5.4.2

Автор salesekspert

Ответов: 14
Просмотров: 1357
Последний ответ 04.02.2026, 15:39:19
от sivers
Ошибка при обновлении с 4.4 на 5.4

Автор kunsaid

Ответов: 1
Просмотров: 553
Последний ответ 25.12.2025, 14:13:16
от b2z
Ошибка БД при создании материала

Автор kunsaid

Ответов: 6
Просмотров: 2228
Последний ответ 29.10.2025, 19:36:49
от artem1977gri
Ошибка err_cache_miss

Автор geral

Ответов: 3
Просмотров: 18095
Последний ответ 01.10.2025, 07:15:51
от geral
Ошибка http 500 Whoops, looks like somethin после включение Отладки в настройках

Автор androv77

Ответов: 3
Просмотров: 1157
Последний ответ 03.04.2025, 17:55:01
от azm1n