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

slogic

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Есть компонент. После его установки разворачиваются доп. таблицы в базе. При деинсталляции таблицы убиваются. Очевидно, обновление такого компоента через удаление/установку нового нельзя делать. Надо писать патч-компонент. Это мое видение. Может есть более толковый механизм? Например, при установке новой версии компонента в Joomla, где стоит старая версия, выполнять патчинг и обновление файлов. Был бы идеальный вариант.
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
В Joomla 1.5 можно добавить в XML-файл параметр method="upgrade":
Код
<?xml version="1.0" encoding="utf-8"?>
<install type="component" version="1.5.0" method="upgrade">
*

slogic

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
А можно подробнее, на что влияет "upgrade"?
Здесь ( http://docs.joomla.org/Components:xml_installfile ) вообще атрибут method не упоминается.
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Хм, а что, Google отменили? Странно, мне казалось имея название атрибута и его значение найти что он делает проще простого.

Если кратко - то позволяет устанавливать расширение поверх уже установленной копии. Т.е. в этом случае не будет ошибки, что расширение уже установлено, все файлы из устанавливаемого дистрибутива будут безусловно записаны поверх имеющихся. Но если в новом дистрибутиве какие-то файлы уже неактуальны - они не будут удаляться, а останутся на сервере.
*

slogic

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Посмотрел исходник фреймворка. "upgrade" влияет только на возможность перезаписи файлов. Не понятно, как влияет на исполнение <sql> блока. Как мне сделать, чтобы в upgrade режиме выполнились только определенные sql файлы? Ведь при обычной установке я предварительно удаляю существующие таблицы, а при обновлении мне надо только модфицировать структуру таблиц.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Ну я в компоненте JComments таблицы создаю только если их нет, в обработчике установщика делаю необходимые обновления структуры, а на тот случай, если вдруг пользователь удалит компонент - у меня при удалении таблицы не трогаются. Да, это оставляет их в базе на тот случай, если пользователь решил отказаться от использования данного компонента, но во всех остальных случаях - бережет время и нервы.
*

slogic

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Неприемлемый для меня вариант. В моем случае нервы бережет точное соотв. структуры таблиц. В общем, понятно как надо извращаться. А в вашем случае наверное при деинсталляции стоит спросить пользователя, оставлять таблицы или нет в файле uninstall.php. Это самый корректный вариант.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
В моем случае нервы бережет точное соотв. структуры
таблиц.
ну за 3 года никаких проблем со структурой таблиц не было, а менял я ее раз 8 (и расширял, и менял индексы)...

В общем, понятно как надо извращаться. А в вашем случае наверное при деинсталляции стоит спросить пользователя, оставлять таблицы или нет в файле uninstall.php. Это самый корректный вариант.
Более правильно дать инструкции по удалению таблиц в ручном режиме, ибо я уверен, что 8 из 10 автоматом кликнут на удаление, а потом будут спрашивать на форуме как восстановить удаленное. Да и как показывает практика, компонент либо нравится сразу и надолго, либо не нравится и его удаляют в течении суток, и тогда в таблицах нет данных, а пустые таблицы есть не просят.
*

slogic

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
... в обработчике установщика делаю необходимые обновления структуры
Кстати, я вначале пытался сделать изменение структуры с пом. тэга <sql>, полагая что ALTER TABLE IGNORE заткнет ошибки, в случае если поля уже есть, которые я хочу вставить. Оказывается, что IGNORE влияет на другое. И тоже пришлось перемещать код по изменению структуры в обработчик, потому что любая ошибка в <sql> прерывает установку. Жаль, что Джумловцы не поддержали атрибут у тэга "sql", например "silent=1", было бы очень элегантное решение.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Жаль, что Джумловцы не поддержали атрибут у тэга "sql", например "silent=1", было бы очень элегантное решение.
ну сделай реализацию такого функционала применимо к Joomla 1.6 и предложи разработчикам в виде патча - есть шанс, что включат. В 1.5 уже ничего нового добавлять не будут 100%...
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Автоматическое обновление модуля. Реально?

Автор mr.shusty

Ответов: 23
Просмотров: 4036
Последний ответ 25.06.2014, 00:27:24
от fsv
Требуется создание новых компонентов и модернизация существующих

Автор t-a-p

Ответов: 0
Просмотров: 1148
Последний ответ 25.05.2014, 12:56:22
от t-a-p
Обновления собственных компонентов

Автор Keanor

Ответов: 6
Просмотров: 1723
Последний ответ 09.01.2012, 15:42:17
от Keanor
Разработка компонентов для Joomla 1.5 (функциональность admin-панели)

Автор klubnichkaaa

Ответов: 13
Просмотров: 8797
Последний ответ 12.06.2011, 22:21:12
от max.mix
[how to] Как использовать группы пользователе CB в написании своих компонентов

Автор nonick

Ответов: 1
Просмотров: 2110
Последний ответ 15.07.2010, 02:33:48
от nonick