Новости Joomla

👩‍💻 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.

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

В процессе работы с Joomla бывает необходимо работать с пользовательским интерфейсом более тонко, чем обычно. Все формы Joomla состоят из стандартных полей, содержанием, стилем отображения, состоянием (включено/выключено, доступно для редактирования или нет и т.д.) можно управлять с помощью плагинов. Да и для нестандартных проектов хорошей практикой является создание одного системного или нескольких плагинов групп "под проект", в которых храниться весь "нестандарт".

В этой статье описаны все триггеры, которые вызываются через Event Dispatcher из administrator/components/com_fields/src/Helper/FieldsHelper.php, с привязкой к жизненному циклу (порядку этапов работы запроса), аргументам, изменяемым данным и дальнейшему распространению по Joomla. Это поможет вам работать с Joomla свободнее и не опасаясь при этом потерять изменения при очередном обновлении движка.

Подходы, описанные в статье, полезны в тех случаях, когда вы работаете с данными в com_fields - механизме создания и редактирования пользовательских полей ядра Joomla и при использовании FieldsHelper. Многие сторонние компоненты не используют эту возможность, поэтому данная статья будет полезна лишь частично.

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

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
всем здра!
опять туплю с мускулем.
нужно одним запросом получить данные доп полей + значения из таблицы com_content.
доп.поля тягаются так
Код
		$db = JFactory::getDBO();
$query = '
select *
from #__fields_values
where item_id IN ('.$params.')
';
$db->setQuery($query);
вопрос, как дописать, чтобы забирало ещё id, заголовок, категорию, и вводнуое изображение статей из com_content по такому же условию $params?
в $params передаются id-шники статей через запятую.
спасибо.

*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Код: sql
SELECT fv.value, c.id, c.title, c.images FROM #__fields_values as fv LEFT JOIN #__content as c ON c.id = fv.item_id WHERE fv.item_id IN($params)
Возможно будут ошибки, но суть запроса остается...
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
спасибо, но легче не стало  ;D
нужен рабочий код, потому что я не понимаю, что тут происходит и поправить не могу.
гуманитарная планка не движется дальше простых селектов  ;D
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Код: php
$db = JFactory::getDbo();
$query = $db->getQuery(true);

$query->select('fv.*, c1.id, c1.title, c1.catid, c2.title as cat_title')
->select('c1.images->>"$.image_intro" as image_intro')
->from('#__fields_values as fv')
->leftJoin('#__content as c1 ON c1.id = fv.item_id')
->leftJoin('#__categories as c2 ON c2.id = c1.catid')
->where('fv.item_id IN(' . $params . ')');

$db->setQuery($query);
« Последнее редактирование: 20.09.2020, 16:35:20 от NewUsers »
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

sivers

  • Живу я здесь
  • 2606
  • 361 / 0
нужен рабочий код
NewUsers привел рабочий код. только категорию добавить забыл
Код
$query = '
SELECT fv.value, c.id, c.catid, c.title, c.images
FROM #__fields_values as fv
LEFT JOIN #__content as c ON c.id = fv.item_id
WHERE fv.item_id IN ('.$params.')
';
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
чет я не уверен в правильности собственного вопроса уже ))).
на выходе кака какая-то получается, не понятно, как её парсить.
по ходу, проще 2 запроса делать все же. сначала надо понять, как правильно получить доп. поля с группировкой по ид статьи.
а ещё не понятно, почему у вас первый запрос обращается не к com_content а в доп. поля, хотя поля из его таблицы вроде...
*

sivers

  • Живу я здесь
  • 2606
  • 361 / 0
а ещё не понятно, почему у вас первый запрос обращается не к com_content а в доп. поля, хотя поля из его таблицы вроде...
Так там связка из 2 таблиц идет (LEFT JOIN), записи приводятся в соответствие по полю ИД материала, которое присутствует в обеих таблицах (ON c.id = fv.item_id), соответственно, в селекте можно указывать поля из обеих таблиц. Записи, для которых соответствия ИДов не найдено - в выборку не попадают.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
спасибо, попробую по-позже разобраться, но шансов мало  ;D

откатился к изначальному запросу - в шапке. сейчас затык с группировкой данных доп. полей. по юзеру.
если сделать
Код
$rows = $db->loadObjectList();
, то будут все нужные поля
а если
Код
$rows = $db->loadAssocList('item_id');
то получим 2 массива (2 юзера), но внутри массива останется только одно поле.
видимо, этот момент не победить и надо тупо самому собирать массивы по юзерам и их полям?

*

sivers

  • Живу я здесь
  • 2606
  • 361 / 0
но вот при попытке вытащить данные красиво они почему-то пропадают. Т.е. вместо нескольких параметров внутри массива или объекта с ид статьи остается только один параметр.
Понял. Это потому, что $db->loadAssocList('item_id'); создает массив с ключами = ИДами материалов. А эти ИДы одинаковые у многих значений полей (у всех, которые относятся к этому материалу они совпадают). А потому затираются. Тут придется с циклом:
Код
<?php
$query = '
SELECT fv.field_id, fv.value, c.id, c.catid, c.title, c.images
FROM #__fields_values as fv
LEFT JOIN #__content as c ON c.id = fv.item_id
WHERE fv.item_id IN ('.$params.')
';
$db->setQuery($query);
$rows = $db->loadObjectList();
$items = array();
foreach($rows as $row) $items[$row->item_id][$row->field_id] = $row;
Здесь будет сгруппировано сперва по материалам (юзерам), потом (второй индекс) по ИДам доп.полей. Т.е. все данные будут доступны.
« Последнее редактирование: 20.09.2020, 19:01:41 от sivers »
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
$row->item_id - Null. внутри цикла, оттого остается только 1.
т.е в запросе не хватало fv.item_id
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
в общем, все работает (только запрос подправить, чтобы ид итемов тащил).
ну и, чтобы мусор не тащить, а только нужные поля, можно ещё добавить ниже WHERE
Код
AND fv.field_id IN (3,2,9)
где значения  в скобка - ид-шники нужных доп. полей.

спасибо NewUsers & sivers, чутка поумнел  ;D
зы
почему-то думал, что присоединение будет в виде отдельного блока с данными статей, а не так, что они в каждую строку добавятся.
интересно, если много данных тащить, то не будет ли менее затратно делать 2 запроса и получать 2 массива?
типа, если в запрос добавить ещё и текст статьи, то это ж ужас будет - дублировать его по количеству доп.полей.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Вывод значений из custom fields материала в модуле по имени поля

Автор goga_pgasovav

Ответов: 3
Просмотров: 2844
Последний ответ 30.12.2024, 13:22:11
от goga_pgasovav
[Решено] Получить category description image в index.php шаблона

Автор goga_pgasovav

Ответов: 6
Просмотров: 2397
Последний ответ 12.07.2024, 17:06:14
от goga_pgasovav
Архив статей – в чём суть?

Автор Gerostrat

Ответов: 3
Просмотров: 1060
Последний ответ 14.03.2024, 21:03:48
от sivers
[Решено] Перестали работать переходы по меню сайта

Автор AlexP750

Ответов: 12
Просмотров: 2822
Последний ответ 06.02.2024, 12:42:26
от AlexP750
Замена данных сайта на данные поддомена

Автор rezchik

Ответов: 5
Просмотров: 1271
Последний ответ 05.02.2024, 11:45:36
от web1