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

Вик

  • Новичок
  • 1
  • 0 / 0
Создаю шаблон с 0 с бутстрап. Абсолютный новичок в web-программировании.
Добавил выпадающее меню бутстрап. Работает в целом хорошо, НО....если я перехожу по одному из пунктов в выпадающем меню, в котором есть материал иликатегории, то при повторном нажатии на выпадающее меню, меня кидает на страницу со списком категорий (т.е. пункт выпадающего меню работает просто как НЕ выпадающее меню)
Код индекс пхп
Код
<?php
defined('_JEXEC') or die;
// Получаем объект приложения.
$app = JFactory::getApplication();
?>

<!DOCTYPE html>
<html lang="ru">

<head>
   <!-- Необходимые Мета-теги всегда на первом месте --> 
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta http-equiv="x-ua-compatible" content="ie=edge">

    <!-- Последняя компиляция и сжатый CSS --> 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

<!-- Дополнение к теме --> 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
<!-- Пользовательский СSS-файл -->   
<link href="<?php echo $this->baseurl; ?>/templates/<?php echo $this->template; ?>/css/main.css" rel="stylesheet">

<jdoc:include type="head" />
</head>
<body>
  <div id="main_menu" class="navbar navbar-inverse navbar-fixed-top">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="/">МОЙСАЙТ</a>
        </div>
        <!-- Горизонтальное меню --> 
        <div class="navbar-collapse collapse">
          <jdoc:include type="modules" name="main_menu" />
        </div>
    </div>
  </div>
 
<!-- Вывод компонентов Joomla. всегда в конце -->   
<jdoc:include type="component" />

<!-- jQuery первый, затем Tether, затем Bootstrap JS. --> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
   
<!-- Последняя компиляция и сжатый JavaScript --> 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

<!-- Пользовательский JavaScript   -->
<script src="/templates/<?php echo $this->template ?>/js/main.js"></script>
</body>

</html>

так же вносил изменения в дефаулт пхп менюшки
Код
<?php
/**
 * @package     Joomla.Site
 * @subpackage  mod_menu
 *
 * [member=126442]copyright[/member]   Copyright (C) 2005 - 2017 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;

$id = '';

if ($tagId = $params->get('tag_id', ''))
{
$id = ' id="' . $tagId . '"';
}

// The menu class is deprecated. Use nav instead
?>
<ul class="nav menu<?php echo $class_sfx; ?>"<?php echo $id; ?>>
<?php foreach ($list as $i => &$item)
{
$class = 'item-' . $item->id;

if ($item->id == $default_id)
{
$class .= ' default';
}

if ($item->id == $active_id || ($item->type === 'alias' && $item->params->get('aliasoptions') == $active_id))
{
$class .= ' current';
}

if (in_array($item->id, $path))
{
$class .= ' active';
}
elseif ($item->type === 'alias')
{
$aliasToId = $item->params->get('aliasoptions');

if (count($path) > 0 && $aliasToId == $path[count($path) - 1])
{
$class .= ' active';
}
elseif (in_array($aliasToId, $path))
{
$class .= ' alias-parent-active';
}
}

if ($item->type === 'separator')
{
$class .= ' divider';
}

if ($item->deeper)
{
$class .= ' dropdown';
}

if ($item->parent)
{
$class .= ' parent';
}

echo '<li class="' . $class . '">';

switch ($item->type) :
case 'separator':
case 'component':
case 'heading':
case 'url':
require JModuleHelper::getLayoutPath('mod_menu', 'default_' . $item->type);
break;

default:
require JModuleHelper::getLayoutPath('mod_menu', 'default_url');
break;
endswitch;

// The next item is deeper.
if ($item->deeper)
{
echo '<ul class="dropdown-menu">';
}
// The next item is shallower.
elseif ($item->shallower)
{
echo '</li>';
echo str_repeat('</ul></li>', $item->level_diff);
}
// The next item is on the same level.
else
{
echo '</li>';
}
}
?></ul>
и изменения в дефаулт компонент пхп менюшки
Код
<?php
/**
 * @package     Joomla.Site
 * @subpackage  mod_menu
 *
 * [member=126442]copyright[/member]   Copyright (C) 2005 - 2017 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;

$attributes = array();

if ($item->anchor_title)
{
$attributes['title'] = $item->anchor_title;
}

if ($item->anchor_css)
{
$attributes['class'] = $item->anchor_css;
}

if ($item->deeper)
{
    $attributes['deeper'] = $item->anchor_css . 'dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false';
    $linktype = $item->title . '<span class="caret"></span>';
/** $item->flink = '#'; */
}

if ($item->anchor_rel)
{
$attributes['rel'] = $item->anchor_rel;
}

$linktype = $item->title;

if ($item->menu_image)
{
if ($item->menu_image_css)
{
$image_attributes['class'] = $item->menu_image_css;
$linktype = JHtml::_('image', $item->menu_image, $item->title, $image_attributes);
}
else
{
$linktype = JHtml::_('image', $item->menu_image, $item->title);
}

if ($item->params->get('menu_text', 1))
{
$linktype .= '<span class="image-title">' . $item->title . '</span>';
}
}

if ($item->browserNav == 1)
{
$attributes['target'] = '_blank';
}
elseif ($item->browserNav == 2)
{
$options = 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes';

$attributes['onclick'] = "window.open(this.href, 'targetWindow', '" . $options . "'); return false;";
}

echo JHtml::_('link', JFilterOutput::ampReplace(htmlspecialchars($item->flink, ENT_COMPAT, 'UTF-8', false)), $linktype, $attributes);

Подскажите решение проблемы, пожалуйста.
*

floki

  • Новичок
  • 1
  • 0 / 0
Поддерживаю, у меня такая же проблема.( !
Тему ап!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Joomla! 3.9.21 Невозможно создать пункт меню

Автор edvalitto

Ответов: 1
Просмотров: 2060
Последний ответ 26.03.2025, 19:26:30
от azm1n
Разные меню для мобильной и для ПК версии сайта

Автор jimka

Ответов: 7
Просмотров: 2635
Последний ответ 24.03.2025, 20:03:01
от R31rus
Проблема с меню

Автор denis_4

Ответов: 6
Просмотров: 2363
Последний ответ 07.08.2024, 14:00:43
от denis_4
Непонятная проблема с меню

Автор THE KILLERS

Ответов: 2
Просмотров: 7704
Последний ответ 25.07.2024, 16:07:39
от THE KILLERS
Один пункт меню думает что он главный

Автор DamaVbubi

Ответов: 4
Просмотров: 1497
Последний ответ 13.02.2024, 19:49:10
от DamaVbubi