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

deniro21

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Всем привет. Недавно мне понадобилось сделать так, чтобы один и тот же материал можно было прикрепить к разным категориям. Далее я наткнулся на замечательное решение от Legion Leonhart, которое расположено здесь: http://joomlaforum.ru/index.php/topic,75137.0.html

Поскольку вносить модификации в 12 файлов довольно утомительно, я решил просто выложить уже готовые файлы. Архив находится в прикреплении. В нем все модифицированные файлы в джумловской структуре, т.е. можно тупо копировать с заменой в корневую папку. Внимание! Версия моей Joomla 1.5.22! В любом случае, советую сделать бэкап.

Все что остается, это модифицировать три файла вашего шаблона и выполнить в базу запрос. Начнем с запроса, где # - префикс таблиц в вашей БД (Шаг первый из решения Legion Leonhart):
Код
ALTER TABLE `#_content` ADD `catid2` INT ( 11 ) NOT NULL DEFAULT '-1' AFTER `catid` ;
ALTER TABLE `#_content` ADD `catid3` INT ( 11 ) NOT NULL DEFAULT '-1' AFTER `catid2` ;
ALTER TABLE `#_content` ADD INDEX ( `catid2` );
ALTER TABLE `#_content` ADD INDEX ( `catid3` );

Теперь модифицируем шаблон. Если у вас нет в шаблоне этих файлов, то ничего делать не надо. Также, в некоторых шаблонах они могут располагатсья по другим путям. Итак, в вашем шаблоне по адресу имя_шаблона/html/com_content/article/default.php выполняем следующее (шаг 5)
Ищем
         
Код
<?php if ($this->params->get ('link_category')) : ?>
<?php echo '<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute ($this->article->catslug, $this->article->sectionid)).'">'; ?>
<?php endif; ?>
<?php echo $this->escape ($this->article->category); ?>
<?php if ($this->params->get ('link_category')) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>
Добавляем после
          
Код
  <?php if ($this->params->get ('link_category') && $this->article->category2) : ?>
<?php echo ',
<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute ($this->article->catid2, $this->article->sectionid)).'">'; ?>
<?php endif; ?>
<?php echo $this->escape ($this->article->category2); ?>
<?php if ($this->params->get ('link_category') && $this->article->category2) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>
            <?php if ($this->params->get ('link_category') && $this->article->category3) : ?>
<?php echo ',
<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute ($this->article->catid3, $this->article->sectionid)).'">'; ?>
<?php endif; ?>
<?php echo $this->escape ($this->article->category3); ?>
<?php if ($this->params->get ('link_category') && $this->article->category3) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>
Далее в файле Имя_шаблона\html\com_content\section\blog_item.php ищем
Код
<?php if ($this->item->params->get('link_category')) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>
Добавляем после
Код
<?php if ($this->item->params->get ('link_category') && $this->item->category2) : ?>
<?php echo ',
<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute ($this->item->catid2, $this->item->sectionid)).'">'; ?>
<?php endif; ?>
<?php echo $this->escape ($this->item->category2); ?>
<?php if ($this->item->params->get ('link_category') && $this->item->category2) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>
            <?php if ($this->item->params->get ('link_category') && $this->item->category3) : ?>
<?php echo ',
<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute ($this->item->catid3, $this->item->sectionid)).'">'; ?>
<?php endif; ?>
<?php echo $this->escape ($this->item->category3); ?>
<?php if ($this->item->params->get ('link_category') && $this->item->category3) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>
И наконец в файле Имя_шаблона \html\com_content\category\blog_item.php ищем
Код
<?php echo $this->escape($this->item->category); ?>
<?php if ($this->item->params->get('link_category')) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>
И заменяем на
Код
<?php echo $this->escape($this->item->category1); ?>
<?php if ($this->item->params->get('link_category')) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>
            <?php if ($this->item->params->get ('link_category') && $this->item->category2) : ?>
<?php echo ',
<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute ($this->item->catid2, $this->item->sectionid)).'">'; ?>
<?php endif; ?>
<?php echo $this->escape ($this->item->category2); ?>
<?php if ($this->item->params->get ('link_category') && $this->item->category2) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>
            <?php if ($this->item->params->get ('link_category') && $this->item->category3) : ?>
<?php echo ',
<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute ($this->item->catid3, $this->item->sectionid)).'">'; ?>
<?php endif; ?>
<?php echo $this->escape ($this->item->category3); ?>
<?php if ($this->item->params->get ('link_category') && $this->item->category3) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>

Теперь при создании и редактировании материала можно будет прикреплять его одновременно к 3-м категориям. Хлопаем в ладоши, продолжаем разрабатывать сайты на Joomla! yes!

Надеюсь я упростил многим задачу. Если вы недоверяете данному способу, или у вас другая версия Joomla, то советую вносить все изменения согласно инструкции Legion Leonhart по адресу http://joomlaforum.ru/index.php/topic,75137.0.html

[вложение удалено Администратором]
« Последнее редактирование: 27.03.2011, 20:56:14 от deniro21 »
*

sniper984

  • Новичок
  • 3
  • 0 / 0
Всем привет. Недавно мне понадобилось сделать так, чтобы один и тот же материал можно было прикрепить к разным категориям. Далее я наткнулся на замечательное решение от Legion Leonhart, которое расположено здесь: http://joomlaforum.ru/index.php/topic,75137.0.html

Поскольку вносить модификации в 12 файлов довольно утомительно, я решил просто выложить уже готовые файлы. Архив находится в прикреплении. В нем все модифицированные файлы в джумловской структуре, т.е. можно тупо копировать с заменой в корневую папку. Внимание! Версия моей Joomla 1.5.22! В любом случае, советую сделать бэкап.

Все что остается, это модифицировать три файла вашего шаблона и выполнить в базу запрос. Начнем с запроса, где # - префикс таблиц в вашей БД (Шаг первый из решения Legion Leonhart):
Код
ALTER TABLE `#_content` ADD `catid2` INT ( 11 ) NOT NULL DEFAULT '-1' AFTER `catid` ;
ALTER TABLE `#_content` ADD `catid3` INT ( 11 ) NOT NULL DEFAULT '-1' AFTER `catid2` ;
ALTER TABLE `#_content` ADD INDEX ( `catid2` );
ALTER TABLE `#_content` ADD INDEX ( `catid3` );

Теперь модифицируем шаблон. Если у вас нет в шаблоне этих файлов, то ничего делать не надо. Также, в некоторых шаблонах они могут располагатсья по другим путям. Итак, в вашем шаблоне по адресу имя_шаблона/html/com_content/article/default.php выполняем следующее (шаг 5)
Ищем
         
Код
<?php if ($this->params->get ('link_category')) : ?>
<?php echo '<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute ($this->article->catslug, $this->article->sectionid)).'">'; ?>
<?php endif; ?>
<?php echo $this->escape ($this->article->category); ?>
<?php if ($this->params->get ('link_category')) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>
Добавляем после
           
Код
  <?php if ($this->params->get ('link_category') && $this->article->category2) : ?>
<?php echo ',
<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute ($this->article->catid2, $this->article->sectionid)).'">'; ?>
<?php endif; ?>
<?php echo $this->escape ($this->article->category2); ?>
<?php if ($this->params->get ('link_category') && $this->article->category2) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>
            <?php if ($this->params->get ('link_category') && $this->article->category3) : ?>
<?php echo ',
<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute ($this->article->catid3, $this->article->sectionid)).'">'; ?>
<?php endif; ?>
<?php echo $this->escape ($this->article->category3); ?>
<?php if ($this->params->get ('link_category') && $this->article->category3) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>
Далее в файле Имя_шаблона\html\com_content\section\blog_item.php ищем
Код
<?php if ($this->item->params->get('link_category')) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>
Добавляем после
Код
<?php if ($this->item->params->get ('link_category') && $this->item->category2) : ?>
<?php echo ',
<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute ($this->item->catid2, $this->item->sectionid)).'">'; ?>
<?php endif; ?>
<?php echo $this->escape ($this->item->category2); ?>
<?php if ($this->item->params->get ('link_category') && $this->item->category2) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>
            <?php if ($this->item->params->get ('link_category') && $this->item->category3) : ?>
<?php echo ',
<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute ($this->item->catid3, $this->item->sectionid)).'">'; ?>
<?php endif; ?>
<?php echo $this->escape ($this->item->category3); ?>
<?php if ($this->item->params->get ('link_category') && $this->item->category3) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>
И наконец в файле Имя_шаблона \html\com_content\category\blog_item.php ищем
Код
<?php echo $this->escape($this->item->category); ?>
<?php if ($this->item->params->get('link_category')) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>
И заменяем на
Код
<?php echo $this->escape($this->item->category1); ?>
<?php if ($this->item->params->get('link_category')) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>
            <?php if ($this->item->params->get ('link_category') && $this->item->category2) : ?>
<?php echo ',
<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute ($this->item->catid2, $this->item->sectionid)).'">'; ?>
<?php endif; ?>
<?php echo $this->escape ($this->item->category2); ?>
<?php if ($this->item->params->get ('link_category') && $this->item->category2) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>
            <?php if ($this->item->params->get ('link_category') && $this->item->category3) : ?>
<?php echo ',
<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute ($this->item->catid3, $this->item->sectionid)).'">'; ?>
<?php endif; ?>
<?php echo $this->escape ($this->item->category3); ?>
<?php if ($this->item->params->get ('link_category') && $this->item->category3) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>

Теперь при создании и редактировании материала можно будет прикреплять его одновременно к 3-м категориям. Хлопаем в ладоши, продолжаем разрабатывать сайты на Joomla! yes!

Надеюсь я упростил многим задачу. Если вы недоверяете данному способу, или у вас другая версия Joomla, то советую вносить все изменения согласно инструкции Legion Leonhart по адресу http://joomlaforum.ru/index.php/topic,75137.0.html
Всем привет. Недавно мне понадобилось сделать так, чтобы один и тот же материал можно было прикрепить к разным категориям. Далее я наткнулся на замечательное решение от Legion Leonhart, которое расположено здесь: http://joomlaforum.ru/index.php/topic,75137.0.html

Поскольку вносить модификации в 12 файлов довольно утомительно, я решил просто выложить уже готовые файлы. Архив находится в прикреплении. В нем все модифицированные файлы в джумловской структуре, т.е. можно тупо копировать с заменой в корневую папку. Внимание! Версия моей Joomla 1.5.22! В любом случае, советую сделать бэкап.

Все что остается, это модифицировать три файла вашего шаблона и выполнить в базу запрос. Начнем с запроса, где # - префикс таблиц в вашей БД (Шаг первый из решения Legion Leonhart):
Код
ALTER TABLE `#_content` ADD `catid2` INT ( 11 ) NOT NULL DEFAULT '-1' AFTER `catid` ;
ALTER TABLE `#_content` ADD `catid3` INT ( 11 ) NOT NULL DEFAULT '-1' AFTER `catid2` ;
ALTER TABLE `#_content` ADD INDEX ( `catid2` );
ALTER TABLE `#_content` ADD INDEX ( `catid3` );

Теперь модифицируем шаблон. Если у вас нет в шаблоне этих файлов, то ничего делать не надо. Также, в некоторых шаблонах они могут располагатсья по другим путям. Итак, в вашем шаблоне по адресу имя_шаблона/html/com_content/article/default.php выполняем следующее (шаг 5)
Ищем
         
Код
<?php if ($this->params->get ('link_category')) : ?>
<?php echo '<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute ($this->article->catslug, $this->article->sectionid)).'">'; ?>
<?php endif; ?>
<?php echo $this->escape ($this->article->category); ?>
<?php if ($this->params->get ('link_category')) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>
Добавляем после
           
Код
  <?php if ($this->params->get ('link_category') && $this->article->category2) : ?>
<?php echo ',
<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute ($this->article->catid2, $this->article->sectionid)).'">'; ?>
<?php endif; ?>
<?php echo $this->escape ($this->article->category2); ?>
<?php if ($this->params->get ('link_category') && $this->article->category2) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>
            <?php if ($this->params->get ('link_category') && $this->article->category3) : ?>
<?php echo ',
<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute ($this->article->catid3, $this->article->sectionid)).'">'; ?>
<?php endif; ?>
<?php echo $this->escape ($this->article->category3); ?>
<?php if ($this->params->get ('link_category') && $this->article->category3) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>
Далее в файле Имя_шаблона\html\com_content\section\blog_item.php ищем
Код
<?php if ($this->item->params->get('link_category')) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>
Добавляем после
Код
<?php if ($this->item->params->get ('link_category') && $this->item->category2) : ?>
<?php echo ',
<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute ($this->item->catid2, $this->item->sectionid)).'">'; ?>
<?php endif; ?>
<?php echo $this->escape ($this->item->category2); ?>
<?php if ($this->item->params->get ('link_category') && $this->item->category2) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>
            <?php if ($this->item->params->get ('link_category') && $this->item->category3) : ?>
<?php echo ',
<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute ($this->item->catid3, $this->item->sectionid)).'">'; ?>
<?php endif; ?>
<?php echo $this->escape ($this->item->category3); ?>
<?php if ($this->item->params->get ('link_category') && $this->item->category3) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>
И наконец в файле Имя_шаблона \html\com_content\category\blog_item.php ищем
Код
<?php echo $this->escape($this->item->category); ?>
<?php if ($this->item->params->get('link_category')) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>
И заменяем на
Код
<?php echo $this->escape($this->item->category1); ?>
<?php if ($this->item->params->get('link_category')) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>
            <?php if ($this->item->params->get ('link_category') && $this->item->category2) : ?>
<?php echo ',
<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute ($this->item->catid2, $this->item->sectionid)).'">'; ?>
<?php endif; ?>
<?php echo $this->escape ($this->item->category2); ?>
<?php if ($this->item->params->get ('link_category') && $this->item->category2) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>
            <?php if ($this->item->params->get ('link_category') && $this->item->category3) : ?>
<?php echo ',
<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute ($this->item->catid3, $this->item->sectionid)).'">'; ?>
<?php endif; ?>
<?php echo $this->escape ($this->item->category3); ?>
<?php if ($this->item->params->get ('link_category') && $this->item->category3) : ?>
<?php echo '</a>'; ?>
<?php endif; ?>

Теперь при создании и редактировании материала можно будет прикреплять его одновременно к 3-м категориям. Хлопаем в ладоши, продолжаем разрабатывать сайты на Joomla! yes!

Надеюсь я упростил многим задачу. Если вы недоверяете данному способу, или у вас другая версия Joomla, то советую вносить все изменения согласно инструкции Legion Leonhart по адресу http://joomlaforum.ru/index.php/topic,75137.0.html
deniro21 Объясните, пожалуйста, как с помощью данной формы прикреплять материалы  к более чем 3-м категориям одновременно
*

BuTek

  • Захожу иногда
  • 128
  • 0 / 1
Да блин ежу понятно, откуда это ты скопировал внизу был архив вот его скачай и 90% уже выполнено, потом заходи в конень папки сайта и меняй остальное
*

sniper984

  • Новичок
  • 3
  • 0 / 0
Да блин ежу понятно, откуда это ты скопировал внизу был архив вот его скачай и 90% уже выполнено, потом заходи в конень папки сайта и меняй остальное
Я имел ввиду что требуется добавить и изменить  и в каких количествах, чтобы в админке в менеджере материала можно было указывать к примеру 5 категорий вместо 3х, которые описаны в этой статье http://joomlaforum.ru/index.php?topic=75137.0
*

sniper984

  • Новичок
  • 3
  • 0 / 0
Кто знает, объясните, пожалуйста, как сделать возможность присвоения более 3-х категорий одному материалу в пределах одного раздела в Joomla, например 5 или 7 категорий
Вот ссылка на ресурс http://joomlaforum.ru/index.php?topic=75137.0
*

skai

  • Завсегдатай
  • 1198
  • 153 / 1
  • skaiseo
..и получаем кучу одинакового контента - читай: дублей.
Наполнение вашего сайта - 1т.р. стр. (текст, изображения, мета, перелинковка). Гарантия высокого ранжирования. SEO консультация в подарок.
----------------------------------------------------------------------------------------------
*

vip-ivanov

  • Захожу иногда
  • 86
  • 5 / 0
... с последующим фильтром ПС и как следствие снижение посещаемости и пр пр пр.
а с другой стороны в свете http://joomlaforum.ru/index.php/topic,165992.0/topicseen.html  может что и будет стоящее.
« Последнее редактирование: 28.05.2011, 00:51:04 от vip-ivanov »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Дубли. Товар в разных категориях с одним url-адресом

Автор Yurkel

Ответов: 0
Просмотров: 4802
Последний ответ 03.05.2018, 20:04:08
от Yurkel
Очень долго сохраняется материал

Автор murat

Ответов: 11
Просмотров: 6745
Последний ответ 05.06.2017, 12:12:15
от madcap
Создание у материала нескольких категорий

Автор parazit14

Ответов: 3
Просмотров: 2493
Последний ответ 22.07.2015, 20:48:16
от KKAAZZOO
В яндексе одинаковый материал с разными Itemid

Автор Legran88

Ответов: 2
Просмотров: 2051
Последний ответ 03.11.2013, 06:01:52
от Legran88
Ссылка на материал доступна в любом виде

Автор Djoniwer

Ответов: 0
Просмотров: 1765
Последний ответ 08.10.2013, 18:53:14
от Djoniwer