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

Lepricon

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Здравствуйте!
Просмотрел на форуме много статей на эту тему, но наверно кривые руки и мало опыта работы с Joomla.

Подскажите, как сделать на Главной странице -> Список ВСЕХ категорий в 3, 4 столбца?  !!!???!!!
(Joomla! 3.8.3)
« Последнее редактирование: 17.12.2017, 00:58:24 от Lepricon »
*

kern.USR

  • Давно я тут
  • 827
  • 68 / 1
Если я вас правильно понимаю, то в шаблоне компонента com_content/categories/default_items.php (или как вы там его обозвали)
Сначала ищите нечто подобное
Код
$class = ' class="first"';

и меняете на такую конструкцию
Код
$class = ' class="first cat-item"';

После объявления переменной class, вставляете
Код
$columns=4;
Число - количество столбцов
и добавляете счётчик
Код
$i=0;

Дальше ищете цикл перебора разделов
Код
foreach($this->items[$this->parent->id] as $id => $item)

Сразу в цикле есть условие
Код
if ($this->params->get('show_empty_categories_cat') || $item->numitems || count($item->getChildren())) :
Прямо в следующей строке вставляете
Код
$i++;

там, буквально в третьей строке, найдёте такое
Код
if (!isset($this->items[$this->parent->id][$id + 1]))
{
$class = ' class="last"';
}
присвоение $class замените на это
Код
$class = ' class="last cat-item"';

Дальше находим вывод div'а оборачивающего категорию в списке
Код
<div <?php echo $class; ?> >

и меняем на
Код
<div <?php echo $class . ' ' . style="width:'.number_format(100/$columns, 1).'%;"'; ?> >

дальше находите вот такой код:
Код
<?php $class = ''; ?>
и меняете на
Код
<?php $class = 'class="cat-item"'; ?>

перед концом цикла
Код
endforeach;
есть ещё конец условия
Код
endif;
вот перед ним вставляете
Код
<?php if(($i+1)%($columns)==0): ?>
<div class="clr"></div>
<?php endif; ?>

Теперь в файле со стилями осталось дописать
Код
.cat-item{
display: inline-block;
float: left;
box-sizing: border-box;
margin-left: 0;
margin-right: 0;
}
.clr{
display: table;
width: 100%;
clear: both;
}
Чтоб добавить отступы между разделами по-горизонтали - в секцию .cat-item допишите
Код
padding-left: 15px;
padding-right: 15px;

Всё вышенаписанное истинно для стандартного шаблона. Для других гарантии не даю!
*

Lepricon

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Спасибо ОГРОМНОЕ  *DRINK* за ответ, но хотелось бы еще пару уточнений.

1. \components\com_content\views\categories\tmpl\default_items.php правильно ли я понял какой файл?

2. Файл со стилями. Это который находится в папке templates\имя шаблона\css\joomla.css?
*

Lepricon

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Почти все получилось!

Еще вопрос, как и где выставить ширину для <div class="cat-item" style="width: 0.0%;"> ?
*

kern.USR

  • Давно я тут
  • 827
  • 68 / 1
1. \components\com_content\views\categories\tmpl\default_items.php правильно ли я понял какой файл?
Нееееет!! Глупец, остановись!  *suicide*
Не нужно править шаблон в компоненте. Он слетит при первом же обновлении!
Сделай сначала копию себе в templates
Спойлер
[свернуть]

Ну только шаблон выбери тот, который у тебя по-умолчанию стоит

Цитировать
Файл со стилями. Это который находится в папке templates\имя шаблона\css\joomla.css?
Всё зависит от шаблона. Но папку верно определил! Остальось файл поправить, чтоб не слетело в случае обновления

Цитировать
Еще вопрос, как и где выставить ширину для <div class="cat-item" style="width: 0.0%;"> ?
Вот тут вот странно... У всех разделов width 0.0?
*

Lepricon

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
 ;D Остановился, бэкап был, вернул на место все.

1. Что значит "Осталось файл поправить, чтоб не слетело в случае обновления"? Что и где ему поправить?

2. Да, у всех разделов получается width 0.0. Получается divы друг на друга лезут http://joxi.ru/a2XKGwnH1G3zYm , вот если вручную добавить % http://joxi.ru/p27b3J4So1kJNm

 и еще ...

3. Может так и надо, но получается один div болтается не в блоке или ... http://joxi.ru/Grqv9RGsQPDBym
*

Lepricon

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
И да, файл редактировал по адресу templates\мой шаблон\html\com_content\categories\default_items.php правильно я понял?
*

kern.USR

  • Давно я тут
  • 827
  • 68 / 1
Что значит "Осталось файл поправить, чтоб не слетело в случае обновления"? Что и где ему поправить?
У тебя ведь в папке CSS много разных файлов? Посмотри в head'е, кто подключается последним - его и редактируй!

Да, у всех разделов получается width 0.0. Получается divы друг на друга лезут http://joxi.ru/a2XKGwnH1G3zYm , вот если вручную добавить % http://joxi.ru/p27b3J4So1kJNm
Тут 2 варианта:
1. Ты поменял название переменной 
Код
$columns=4;
2. Не верно копируется код с форума.

Для решения проблемы можно обратно поменять
Код
<div <?php echo $class . ' ' . style="width:'.number_format(100/$columns, 1).'%;"'; ?> >
на
Код
<div <?php echo $class; ?> >
а в стилях прописать
Код
.cat-item{
width: 25%; //если в 3 колонки, то 33%
}
И да, файл редактировал по адресу templates\мой шаблон\html\com_content\categories\default_items.php правильно я понял?
Да, то что нужно
*

Lepricon

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Да, причина в строке <div <?php echo $class . ' ' . style="width:'.number_format(100/$columns, 1).'%;"'; ?> >, "работать" http://joxi.ru/brRQpwKiJlqKbA она начала вот в таком формате <div <?php echo $class.' style="width: '.number_format(100/$colums, 1).'%;"'; ?> >.

Поменял как вы сказали на <div <?php echo $class; ?> >, стало работать.  *DRINK*

Поставил ширину 25%, получилось в первой "строке" 3 div'a, дальше как и заказывал по четыре http://joxi.ru/Dr84OqPF4Oqbgr
« Последнее редактирование: 19.12.2017, 15:10:17 от Lepricon »
*

kern.USR

  • Давно я тут
  • 827
  • 68 / 1
Поставил ширину 25%, получилось в первой "строке" 3 div'a, дальше как и заказывал по четыре http://joxi.ru/Dr84OqPF4Oqbgr
Тут я ошибся немного =) Два раза счётчик увеличил
Вот это
Код
<?php if(($i+1)%($columns)==0): ?>
   <div class="clr"></div>
<?php endif; ?>
Замените на это:
Код
<?php if(($i)%($columns)==0): ?>
   <div class="clr"></div>
<?php endif; ?>
*

Lepricon

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Как отблагодарить? Все работает!  *DRINK*
*

Lepricon

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Не сочтите за наглость, тут назрел еще вопрос.

Может подскажите, как сделать категории картинкой и переходом по клику на картинку?
*

kern.USR

  • Давно я тут
  • 827
  • 68 / 1
В смысле, картинкой? Чтоб вместо картинка+текст была только картинка?
*

Lepricon

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Нет, сейчас текст это Заголовок категории http://joxi.ru/Dr84OqPF4OR0vr
Если добавляем картинку в Описание категории и вставляем ссылку, то получаются скачки из-за текста http://joxi.ru/D2P30wdUpVn9gm
Если добавить картинку во вкладке Параметры, то она не будет как ссылка.
И вроде как нельзя убрать картинку внутри Категории, но чтоб она отображалась на Главной странице, тогда чтоб не пустовало место, можно написать текст описания категории, но его не получается сделать обтеканием картинки и он уходит вниз, вот пример http://joxi.ru/KAxb71JSMPxOXm
*

kern.USR

  • Давно я тут
  • 827
  • 68 / 1
Жуть какая!

Во-первых - найдите картинку-заглушку, которую будете использовать для категорий, которым не задано изображение. Загрузите эту картинку на сервер. Рекомендую в папку /images/ своего шаблона (имеено шаблона, а не шаблона компонента!)

Теперь правим код!

В самое начало фалйал, сразу после
Код
defined('_JEXEC') or die;
Вставляйте
Код
$app = JFactory::getApplication();

Ищите секцию (она после вывода h3 идёт)
Код
<?php if ($this->params->get('show_description_image') && $item->getParams()->get('image')) : ?>
<img src="<?php echo $item->getParams()->get('image'); ?>" alt="<?php echo htmlspecialchars($item->getParams()->get('image_alt'), ENT_COMPAT, 'UTF-8'); ?>" />
<?php endif; ?>

и меняете на
Код
<?php if ($this->params->get('show_description_image')) : ?>
<?php if($item->getParams()->get('image')): ?>
<img src="<?php echo $item->getParams()->get('image'); ?>" alt="<?php echo htmlspecialchars($item->getParams()->get('image_alt'), ENT_COMPAT, 'UTF-8'); ?>" />
<?php else: ?>
<img src="<?php echo JURI::base(true). '/templates/' . $app->getTemplate(); ?>/images/<НАЗВАНИЕ КРТИНКИ.ЖэПэГэ>" alt="<?php echo htmlspecialchars($item->title, ENT_COMPAT, 'UTF-8'); ?>" />
<?php endif; ?>
<?php endif; ?>

Вроде бы должно работать
*

Lepricon

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Получилось вот как http://joxi.ru/Y2LKEwQH9jaR5m , как бы указать высоту блока текста, чтоб не было ступенек?

И как вставлять картинки, если берется один файл "заглушка", и переход по клику на нее?
*

Lepricon

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
И еще, между первым и вторым рядом отступ больше чем у остальных, выше на скрине видно.
*

kern.USR

  • Давно я тут
  • 827
  • 68 / 1
Цитировать
И как вставлять картинки, если берется один файл "заглушка", и переход по клику на нее?

Картинки ставятся через параметры категории.

По поводу ссылки - забыл.
Вот такой код должен быть, чтоб ссылки открывались по картинке
Код
<?php if ($this->params->get('show_description_image')) : ?>
<a href="<?php echo JRoute::_(ContentHelperRoute::getCategoryRoute($item->id, $item->language)); ?>">
<?php if($item->getParams()->get('image')): ?>
<img src="<?php echo $item->getParams()->get('image'); ?>" alt="<?php echo htmlspecialchars($item->getParams()->get('image_alt'), ENT_COMPAT, 'UTF-8'); ?>" />
<?php else: ?>
<img src="<?php echo JURI::base(true). '/templates/' . $app->getTemplate(); ?>/images/<НАЗВАНИЕ КРТИНКИ.ЖэПэГэ>" alt="<?php echo htmlspecialchars($item->title, ENT_COMPAT, 'UTF-8'); ?>" />
<?php endif; ?>
</a>
<?php endif; ?>

Чтоб сделать высоту у заголовков одинаковую (из расчёта, что больше 2х строк не будет)
Код
.page-header.item-title{
height: 45px;/*в два раза больше, чем одна строка*/
}
*

Lepricon

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Все просто замечательно  yes! ! Я не знаю как благодарить  *DRINK*  *DRINK*  *DRINK*

Жаль нет смайла на форуме, чтоб хоть графически передать благодарность вам!
*

kern.USR

  • Давно я тут
  • 827
  • 68 / 1
Простого "спасибо" мне вполне достаточно!
*

Lepricon

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
ОГРОМНЕЙШЕЕ СПАСИБИЩЕ тебе добрый человек  *DRINK*
*

Алекс33

  • Новичок
  • 4
  • 0 / 0
Просто восхищён подробным ответом!  *DRINK*
На Joomla! 3.8.4, шаблон - копия Protostar заработало. Обновился до Joomla! 3.8.5 - работает.
Вопрос, подскажите пожалуйста как сделать вывод списка категорий в 2-4 столбца по алфавиту, чтобы следующая буква начиналась с новой строки, а не продолжалась во 2-4 столбце.
Спасибо!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Helix3 сделать несколько рядов не столбцов!

Автор Bowa

Ответов: 6
Просмотров: 4805
Последний ответ 04.03.2023, 20:33:40
от Petrovich
Как сделать вывод ссылок в обратном порядке (com_weblinks)?

Автор Slava77

Ответов: 0
Просмотров: 1201
Последний ответ 24.11.2022, 16:42:09
от Slava77
Хлебные крошки: вместо title сделать заголовок

Автор Zelyonkin

Ответов: 2
Просмотров: 1148
Последний ответ 09.09.2022, 08:46:10
от Zelyonkin
Как в мобильной версии поставить &quot;блок особенностей&quot; в два столбца?

Автор sergspb

Ответов: 7
Просмотров: 1190
Последний ответ 15.04.2021, 13:51:54
от xpank
Как слово Menu сделать русским?

Автор qqazz12

Ответов: 2
Просмотров: 988
Последний ответ 29.08.2020, 17:54:10
от qqazz12