Новости Joomla

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

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

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

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

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

🏆 Открыто голосование за 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 Гость просматривают эту тему.
  • 11 Ответов
  • 2566 Просмотров
*

lexx006

  • Захожу иногда
  • 270
  • 8 / 3
Позиция user4 находится слева, но я хочу, чтобы user4 находился с правой стороны странички...

с тем, имена позиций заносятся в массив:
         $positions[] = 'left';
         $positions[] = 'right';
         $positions[] = 'top';
         $positions[] = 'bottom';
и тд и тп..
а также в ХML-файлик уже знаком.

как сделать так, чтобы я мог задать позицию там, где мне нужно, а не там, где ее расположил разработчик шаблона?

заранее всем благодарен. :)
*

lexx006

  • Захожу иногда
  • 270
  • 8 / 3
эм...да лопатил...и не раз уже...
ток там позиция нигде не прописывается. :(
пишется:
<jdoc:include type="modules" name="user4" />
а вот, где этот самый ЮЗЕР находится, одному Господу Богу нашему известно...может быть.
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Как это нет?
Ищи например <jdoc:include type="modules" name="user2" style="raw" /> и можешь ставить вместо неё любую другую. И так далее.
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
эм...да лопатил...и не раз уже...
ток там позиция нигде не прописывается. :(
пишется:
<jdoc:include type="modules" name="user4" />
а вот, где этот самый ЮЗЕР находится, одному Господу Богу нашему известно...может быть.

Как где? Ну так в шаблоне же HTML разметка. Находится там, где должна находится согласно разметке :)
*

lexx006

  • Захожу иногда
  • 270
  • 8 / 3
да, все правильно, можно поставить и в User2, но... User2 тоже не там, где мне нужно...
как поставить Позицию, а не Модуль, в нужное мне место?
может нахождение позиции записано в   $positions[] = 'user2'?
*

lexx006

  • Захожу иногда
  • 270
  • 8 / 3
Как где? Ну так в шаблоне же HTML разметка. Находится там, где должна находится согласно разметке :)
если я открываю index.php в DreamWeaver?, то почему же я не вижу там DIVa - user2? куда же он подевался. если он прописан в шаблоне?
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
lexx006 ну блин, не тормози - сникерсни!  ;)
Шаблон = HTML разметка. Берёшь свой <jdoc:include type="modules" name="user4" /> и переносишь в нужное тебе место этой разметки.

Ну к примеру имеем простенький вариант

Цитировать
<div class = "wrapper">
   <div id = "header">
      <jdoc:include type="modules" name="top" />
   </div>
   <div id = "leftcol">
      <jdoc:include type="modules" name="user4" />
   </div>
   <div id = "rightcol">
      <jdoc:include type="modules" name="user2" />
   </div>
</div>

leftcol - левая колонка и в ней выводим user4
rightcol - првая колонка и в ней выводим user2

Меняешь местами user4 и user2, и в итоге получаешь что user4 будет выводится в правой колонке, а user2 - в левой.
*

lexx006

  • Захожу иногда
  • 270
  • 8 / 3
упс, сорри, не ругайся :))
понимаю, что и так уже мозг напряг и тебе и себе...
может, я неправильно объясняю,что мне нужно? :))
смотри:
когда я октрываю превюху сайта: ?tp=?, то я вижу, что позиция User4 находится
в верхнем левом углу странички, какой модуль в ней находится, мне не важно.
мне нужно сделать, так, чтобы когда я смотрел превьюху разметки, то позиция User4 была в нижнем правом углу странички.
вот, может так нужно было написать? :))
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Ну дык name="user2" и есть имя позиции. Это не имя модуля. Хочешь сказать если ты их поменяешь местами как я описал у тебя tp будет также показывать?
*

lexx006

  • Захожу иногда
  • 270
  • 8 / 3
пасиб тебе, добрый человек! ;-)
я разобрался, что к чему.

извини, если поел тебе немного мозг. :-)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться