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

Damarkuzz

  • Захожу иногда
  • 116
  • 1 / 0
Использую Virtuemart3.
Имеется подобное дерево категорий: Категория1->Категория2->Продукт
Требуется взять фото товара как изображение для Категория1 из Продукт1.
Используя код ниже всё получается, но только если мы ставим этот код для Категория2..
Прошу помощи, пытался всячески адаптировать код, но не получается.

Код
		          <?php 
$productModel = VmModel::getModel('product');
$prod_in_category = $productModel->getProductListing(false, 1, false, true, true, true, $category->virtuemart_category_id);
$productModel->addImages($prod_in_category[0],1);
if(!empty($prod_in_category[0]->images[0])){
echo $prod_in_category[0]->images[0]->displayMediaThumb("",false);
} else {
echo $category->images[0]->displayMediaThumb("",false);
}
 ?>
« Последнее редактирование: 20.09.2020, 10:51:20 от Damarkuzz »
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
А где Вы хотите выводить такое фото категории: на странице категории или в списке категорий?

Если в списке - такой подход не очень хорош с точки зрения быстродействия и нагрузки.

Но могут быть и другие варианты достижения цели.
Возможно, будет интересно: Интеграция с Ozon
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
Думаю, более оптимальным решением было бы сделать скрипт, который пробегается по категориям и, если у них нет изображения, то проставляет, взяв из товара, генерируя нужный размер. Можно даже нужный формат, например, webp.
Такой скрипт запускать по расписанию, скажем, 1-2 раза в день.
Возможно, будет интересно: Интеграция с Ozon
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
В макете категории Вирт
Код
$productModel = VmModel::getModel('Product');
$productModel->addImages($this->products[0]);
if(!empty($this->products[0]->images[0]))
echo $this->products[0]->images[0]->displayMediaThumb ('class="sample-product__img"', FALSE);
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
В макете категории Вирт

Почему-то мне кажется, что картинка нужна не для вывода в макете категории )
Но дождёмся ответа ТС.
Возможно, будет интересно: Интеграция с Ozon
*

Damarkuzz

  • Захожу иногда
  • 116
  • 1 / 0
В макете категории Вирт
Код
$productModel = VmModel::getModel('Product');
$productModel->addImages($this->products[0]);
if(!empty($this->products[0]->images[0]))
echo $this->products[0]->images[0]->displayMediaThumb ('class="sample-product__img"', FALSE);
Благодарю за ответы. Проблема в том, что требуется вызвать не фото продуктов категории первичной вложенности, а продукты категории вторичной вложенности.
То есть:
   Категория 1
   -Категория 2
   --Товар 1
Нужно, чтобы для категории 1 вызывалось изображение Товар 1.

Надеюсь, объяснил понятно, не запутал.
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
А где Вы хотите выводить такое фото категории: на странице категории или в списке категорий?
Возможно, будет интересно: Интеграция с Ozon
*

Damarkuzz

  • Захожу иногда
  • 116
  • 1 / 0
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
На странице категории
Для самой этой категории или Для её подкатегорий?
Возможно, будет интересно: Интеграция с Ozon
*

Damarkuzz

  • Захожу иногда
  • 116
  • 1 / 0
Для самой этой категории или Для её подкатегорий?
Для самой категории, которая Категория 1
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
Думаю, Вы можете получить id первой дочерней категории, например, так:

Код
if (!empty($this->category->children[0]->virtuemart_category_id)) {
    $sub_id = $this->category->children[0]->virtuemart_category_id;
    // код, используя $sub_id
}

а потом подставить $sub_id в $prod_in_category вместо $category->virtuemart_category_id
Возможно, будет интересно: Интеграция с Ozon
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
Возможно, в Вашем случае $this не надо.
Вы правите переопределение шаблона? Или какой файл?
Возможно, будет интересно: Интеграция с Ozon
*

Damarkuzz

  • Захожу иногда
  • 116
  • 1 / 0
Возможно, в Вашем случае $this не надо.
Вы правите переопределение шаблона? Или какой файл?

Путь: /components/com_virtuemart/views/category/tmpl/default.php
*

Damarkuzz

  • Захожу иногда
  • 116
  • 1 / 0
Возможно, в Вашем случае $this не надо.
Вы правите переопределение шаблона? Или какой файл?
Вставляю код:
Код
		     <?php
$productModel = VmModel::getModel('product');
$prod_in_category = $productModel->getProductListing(false, 1, false, true, true, true, $sub_id);
$productModel->addImages($prod_in_category[0],1);
if (!empty($category->children[0]->virtuemart_category_id)) {
$sub_id = $category->children[0]->virtuemart_category_id;
}
else {
echo $category->images[0]->displayMediaThumb("",false);
}
?>
Ничего не отображается, но и страница не крашится.
*

Damarkuzz

  • Захожу иногда
  • 116
  • 1 / 0
Хотя нет, крашится с ошибкой
Код
Call to a member function displayMediaThumb() on null
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
Вставляю код:
Код
		     <?php
$productModel = VmModel::getModel('product');
$prod_in_category = $productModel->getProductListing(false, 1, false, true, true, true, $sub_id);
$productModel->addImages($prod_in_category[0],1);
if (!empty($category->children[0]->virtuemart_category_id)) {
$sub_id = $category->children[0]->virtuemart_category_id;
}
else {
echo $category->images[0]->displayMediaThumb("",false);
}
?>
Только это вставили или ещё условие, которое я писал?
Покажите целиком.
Возможно, будет интересно: Интеграция с Ozon
*

Damarkuzz

  • Захожу иногда
  • 116
  • 1 / 0
Благодарю всем за помощь, в итоге работает для моей задачи данный код:
Код
		
<?php
    $productModel = VmModel::getModel('product');
    $sub_id = $this->category->children[0]->virtuemart_category_id;
    $prod_in_category = $productModel->getProductListing(false, 1, true, true, true, true, $sub_id);
    $productModel->addImages($prod_in_category[0],1);
    echo '<img class="def1-cat-img" src="'.$prod_in_category[0]->file_url.'">';
?>
Отдельная благодарность @rsn
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
Код
<?php
    $productModel = VmModel::getModel('product');
    $sub_id = $this->category->children[0]->virtuemart_category_id;
    $prod_in_category = $productModel->getProductListing(false, 1, true, true, true, true, $sub_id);
    $productModel->addImages($prod_in_category[0],1);
    echo '<img class="def1-cat-img" src="'.$prod_in_category[0]->file_url.'">';
?>

Я бы всё-таки предложил вставить условие
Код
if (!empty($this->category->children[0]->virtuemart_category_id)) {
    // код
}
Иначе - если, в категории не будет подкатегорий, то результат может быть для Вас неожиданным.
Возможна ошибка. Или предупреждение. Или вывод фото товара из Корневой категории.

Кроме того, лучше делать такие правки не в этом файле:
Путь: /components/com_virtuemart/views/category/tmpl/default.php
(его лучше не трогать)
- а сделать переопределение этого файла в своём шаблоне. Так корректнее. VirtueMart поддерживает переопределения.
Возможно, будет интересно: Интеграция с Ozon
*

Damarkuzz

  • Захожу иногда
  • 116
  • 1 / 0
Я бы всё-таки предложил вставить условие


Вот так получается, в общем. В категории 2 на всех страницах подобного шаблона не грузит фотографию первой категории. Код, который Вы помогли составить отображается в "Категория 1"
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
Код, который Вы помогли составить отображается в "Категория 1"
Вы же и спрашивали для Категория 1  ^-^
Кто же знал, что Вам надо, что этот же был расчитан одновременно на 2 случая )

Попробуйте так:
Код
if (!empty($this->category->children[0]->virtuemart_category_id)) {
    // код для Категории 1
}
else {
    // код для Категории 2, когда берет фото просто дочернего товара
}
(если я правильно понял, как выводите Категории 2)
Возможно, будет интересно: Интеграция с Ozon
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
не грузит фотографию первой категории
Если это подкатегории - для подкатегории с названием "3" установлено фото?
(как для 3Т, например)
Возможно, будет интересно: Интеграция с Ozon
*

Damarkuzz

  • Захожу иногда
  • 116
  • 1 / 0
Если это подкатегории - для подкатегории с названием "3" установлено фото?
(как для 3Т, например)
Нет, у всех категорий вообще нет изображений, оно есть только у фото. Моя задача сделать так, чтобы не требовалось добавлять фото для категорий.
Спойлер
[свернуть]
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
А какой файл и фрагмент кода у Вас отвечает за вывод изображений для категорий 3Т, 5, 5Т на этой странице, которую Вы показали выше?
Возможно, будет интересно: Интеграция с Ozon
*

Damarkuzz

  • Захожу иногда
  • 116
  • 1 / 0
А какой файл и фрагмент кода у Вас отвечает за вывод изображений для категорий 3Т, 5, 5Т на этой странице, которую Вы показали выше?
Решил создать новую тему, мне показалось, что то, что я не упомянул двойной вывод фото уже другой топик Как устранить конфликт вызова фото в Virtuemart3?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Перенести описание категории вниз страницы

Автор jimka

Ответов: 1
Просмотров: 1943
Последний ответ 18.07.2024, 08:02:46
от Vastriet
Сортировка по доп. полям на странице списка категории

Автор revil

Ответов: 4
Просмотров: 2206
Последний ответ 02.06.2024, 13:42:45
от tigra-uki
Как сделать картинку ссылкой на материал без Вводного изображения?

Автор OZlaim

Ответов: 0
Просмотров: 1462
Последний ответ 30.05.2024, 01:28:37
от OZlaim
Пропало описание товара

Автор AnnaFadeeva

Ответов: 2
Просмотров: 1100
Последний ответ 02.11.2023, 13:32:54
от AnnaFadeeva
Как сделать отображение времени создания материала?

Автор Pzhigalov

Ответов: 0
Просмотров: 1560
Последний ответ 27.09.2023, 22:45:29
от Pzhigalov