Новости Joomla

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

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

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

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

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

Читать статью на Хабре.

@joomlafeed

🏆 Открыто голосование за Joomla в премии CMS Critic People’s Choice Awards 2025

🏆 Открыто голосование за Joomla в  премии CMS Critic People’s Choice Awards 2025

🗓 Голосование продлится до 27 февраля 2026 года.

👩‍💻 Проголосовать! 👩‍💻

Номинации, в которых можно проголосовать за Joomla:
⭐️ Best Free CMS
⭐️ Best Open Source CMS
⭐️ Best Enterprise CMS

Также в номинации Best e-Commerce Solution участвуют компоненты интернет-магазинов для Joomla:
⭐️ HikaShop
⭐️ Virtuemart

В номинации Best Website Builder оказались:
⭐️ YooTheme
⭐️ SP Page Builder

Что такое CMS Critic Awards?
С 2012 года премия CMS Critic Awards занимает особое место в сообществе систем управления контентом (CMS). Это единственный в своем роде сайт, который составляет рейтинг системы управления контентом и связанных с ними решений на рынке — от малого до крупного и подчеркивает их инновации и услуги.

Каждый год награда CMS Critic Awards присуждается одному победителю в различных отраслевых категориях, таких как: «Лучшая облачная CMS», «Лучший DXP», «Лучшая Headless CMS и других. Затем результаты оглашаются через СМИ вместе с выбором редакции CMS Critic.
В этом году премия вернулась к своим традициям и только TOP-5 движков по количеству номинаций попали в 2-й этап - голосование.

@joomlafeed

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

djwolf

  • Захожу иногда
  • 58
  • 1 / 0
Здравствуйте, подскажите как сделать что бы 2 дочернему элементу присваивался класс uk-nav-sub?

Сейчас выводится вот так
Код
<ul class="uk-navbar-nav">
<li class="uk-parent"><a href="/" aria-expanded="false" class="">Ассортимент</a>
<div class="uk-navbar-dropdown">
<ul class="uk-nav uk-navbar-dropdown-nav">
<li class="uk-parent"><a href="/ассортимент/розы.html" aria-expanded="false">Розы</a>
<div class="uk-navbar-dropdown">
<ul class="uk-nav uk-navbar-dropdown-nav">
<li><a href="/ассортимент/розы/розы-60-см.html">Розы 60 см</a></li>
</ul>
</div>
</li>
</ul>
</div>
</li>
</ul>

А нужно так, то есть этот код удаляется у дочерних элементов 2 вложенности <div class="uk-navbar-dropdown"><ul class="uk-nav uk-navbar-dropdown-nav"> и прописывается просто <ul class="uk-nav-sub">

Код
<ul class="uk-navbar-nav">
<li class="uk-parent"><a href="/" aria-expanded="false" class="">Ассортимент</a>
<div class="uk-navbar-dropdown">
<ul class="uk-nav uk-navbar-dropdown-nav">
<li class="uk-parent"><a href="/ассортимент/розы.html" aria-expanded="false">Розы</a>
<ul class="uk-nav-sub">
<li><a href="/ассортимент/розы/розы-60-см.html">Розы 60 см</a></li>
</ul>
</li>
</ul>
</div>
</li>
</ul>

формируется это здесь
Код
// The next item is deeper.
if ($item->deeper) {
echo '<div class="uk-navbar-dropdown"><ul class="uk-nav uk-navbar-dropdown-nav">';
}
// The next item is shallower.
elseif ($item->shallower) {
echo '</li>';
echo str_repeat('</ul></div></li>', $item->level_diff);
}

Весь кусок файла default.php
Спойлер
[свернуть]

В шаблонах Yootheme это реализовано вот так

Код
    // Children?
    if ($children) {
        $attrs['class'][] = 'uk-parent';
        $children = ['class' => []];
        if ($level == 1) {
            $children['class'][] = 'uk-nav-sub';
        }
        $children = "{$indention}<ul{$this->attrs($children)}>\n{$this->self(['items' => $item->children, 'level' => $level + 1])}</ul>";
    }
    echo "{$indention}<li{$this->attrs($attrs)}>{$title}{$children}</li>";
Но я не знаю как переделать под стандартный модуль, подскажите пожалуйста кто знает
« Последнее редактирование: 23.05.2020, 18:55:47 от djwolf »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывести модуль в модуле

Автор jimka

Ответов: 2
Просмотров: 2591
Последний ответ 18.04.2025, 15:39:36
от fbr
Joomla! 3.9.21 Невозможно создать пункт меню

Автор edvalitto

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

Автор jimka

Ответов: 7
Просмотров: 2365
Последний ответ 24.03.2025, 20:03:01
от R31rus
[Решено] Вывод значений из custom fields материала в модуле по имени поля

Автор goga_pgasovav

Ответов: 3
Просмотров: 2560
Последний ответ 30.12.2024, 13:22:11
от goga_pgasovav
Проблема с меню

Автор denis_4

Ответов: 6
Просмотров: 2163
Последний ответ 07.08.2024, 14:00:43
от denis_4