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

llogovo

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Есть модуль, его несколько копий для разных позиций, необходимо сравнить суффикс и в случае совпадения вывести текст.
Переделываю модули для ядра Joomla  2.5 с 1.5 ,  в Joomla 1.5 эта функция реализована следующим образом :

Код
<?php if ($this->config['module_sfx'] == "-news"){ ?>
<a href="index.php?option=com_content&view=category&layout=blog&id=4&Itemid=50" class="allmore">все новости</a>
<?php } ?>
<?php if ($this->config['module_sfx'] == "-articles"){ ?>
<a href="index.php?option=com_content&view=category&layout=blog&id=1&Itemid=37" class="allmore">все статьи</a>
<?php } ?>

В 2.5 это не работает.
Пробовал также следующий код :

Код
$params->get['moduleclass_sfx']
тоже безрезультатно... 
Скажите как правильно вызвать суффикс?
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
Код: php
htmlspecialchars($params->get('moduleclass_sfx'))
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

llogovo

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Fatal error: Call to a member function get() on a non-object in /home/......

Код
<?php if(htmlspecialchars($params->get('moduleclass_sfx')) == "_news"){ ?>
<a href="index.php?option=com_content&view=category&layout=blog&id=4&Itemid=50" class="allmore">все новости</a>
<?php } ?>
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
1. Вы где это пытаетесь использовать?
2. <?php if($params->get('moduleclass_sfx') == "_news"){ ?>
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
И еще вопрос - а кто мешает использовать несколько шаблонов модуля?
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

llogovo

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
1. Вы где это пытаетесь использовать?
2. <?php if($params->get('moduleclass_sfx') == "_news"){ ?>

в коде функции формирования контента модуля, код модуля один, а классов там пять, следовательно должно выводить пять разных ссылок соответственно суффиксу, может вызвать нужно сначала? потому что echo  тоже не показывает суффикс. Реализация на 1.5 ядре apogey-proekt.ru в самом низу страницы слева и в центре.
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
Т.е. у вас будет пять копий модуля, в каждой из которых меняется один элемент, в зависимости от указанного класса модуля?
Не колупали бы мозг, а лучше для начала доки почитали - Переопределение макетов вывода
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

llogovo

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Т.е. у вас будет пять копий модуля, в каждой из которых меняется один элемент, в зависимости от указанного класса модуля?
Не колупали бы мозг, а лучше для начала доки почитали - Переопределение макетов вывода


Очевидно здесь какое-то недоразумение, мне нужно вывести в определенном месте модуля ссылку соответственно суффиксу класса, там разный текст и разные линки. При чем тут макеты? Или я заработался и не понимаю очевидных вещей?
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
Вы на те же яйца смотрите в профиль:
вы - в модуле в зависимости от вписанного суффикса выводите тот или иной код
я - не тратя время сделал 5 макетов модуля, в каждом изначально указав нужный код и не запариваясь с суффиксами выбираю селектом нужный мне макет.
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

llogovo

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Вы на те же яйца смотрите в профиль:
вы - в модуле в зависимости от вписанного суффикса выводите тот или иной код
я - не тратя время сделал 5 макетов модуля, в каждом изначально указав нужный код и не запариваясь с суффиксами выбираю селектом нужный мне макет.

Я уже кучу времени потратил на поиск и понимание схемы, еще копать уже нет сил а сроки жмут.


Код
ссылка1 <?php echo htmlspecialchars($params->get('moduleclass_sfx'));?>
вот код, а вот результат его работы http://test.buratina.com в самом низу...
mod_news_pro_gk4, нет там альтернативных макетов
« Последнее редактирование: 28.02.2013, 08:09:37 от llogovo »
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
Дал ссылку, вам лень читать - час работы от 350 рублей, по готовому ТЗ.

P.S. Код получение суффикса привел, т.е. в теме минимум 2 варианта решения.
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

llogovo

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Дал ссылку, вам лень читать - час работы от 350 рублей, по готовому ТЗ.

P.S. Код получение суффикса привел, т.е. в теме минимум 2 варианта решения.
ошибку выдает ваш код

Fatal error: Call to a member function get() on a non-object in /home/p47903/www/test.buratina.com/modules/mod_news_pro_gk4/tmpl/content.php on line 119
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
Код рабочий, что у вас не так - не представляю.
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

llogovo

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
 <?php echo htmlspecialchars($params->get('moduleclass_sfx'));?>

этот код вызывает ошибку :

Fatal error: Call to a member function get() on a non-object in /home/p47903/www/test.buratina.com/modules/mod_news_pro_gk4/tmpl/content.php on line 119

наверняка нужно вызвать как то этот параметр, его просто несуществует еще нигде?
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
Вот возьмите и откройте любой модуль и посмотрите.

P.S. Было дано два варианта решения проблемы, из темы ухожу.
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

llogovo

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
модуль mod_news_pro_gk4

Вот возьмите и откройте любой модуль и посмотрите.

P.S. Было дано два варианта решения проблемы, из темы ухожу.


решилось добавлением строчки в файле helper.php
Код
$this->config['moduleclass_sfx'] = $params->get('moduleclass_sfx');
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Управление модулем из другого модуля

Автор capvic

Ответов: 7
Просмотров: 1418
Последний ответ 27.05.2019, 11:46:21
от capvic
Внешние ссылки в коде

Автор jess

Ответов: 15
Просмотров: 1909
Последний ответ 05.12.2017, 12:54:49
от SeBun
Вывод модуля

Автор Kadimp

Ответов: 2
Просмотров: 1485
Последний ответ 20.09.2016, 12:55:55
от Kadimp
Что надо поправить в коде сайта?

Автор Shadow

Ответов: 1
Просмотров: 1206
Последний ответ 03.03.2016, 12:27:29
от darkghost
У модуля рамка больше, чем он сам

Автор Mike McDuck

Ответов: 12
Просмотров: 1862
Последний ответ 02.02.2016, 18:13:58
от Mike McDuck