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

kichik

  • Осваиваюсь на форуме
  • 15
  • 4 / 0
Добрый день форумчане, недавно передо мной встала (в прямом смысле этого слова) задача, реализация афиши... Выбрал компонент EventList под Joomla 1.5, начал делать, все бы хорошо, да вот в дальнейшем возникла потребность в кнопке "Я ИДУ", немного поразмыслив и поковырявшись в файлах компонента, не имея довольно хороших знаний понятия MVC в Joomla, я толком ничего не написал, вот теперь обращаюсь к вам, посоветуйте как можно довольно просто это реализовать?

Есть основные требования: во фронт энде, в  событиях отображается кнопка "Я ИДУ" и кол-во людей "ИДУЩИХ", и все, больше ничего и не требуется...
И в бэкэнде, требуется выводить список к каким событиям сколько людей идет и кто именно(отображать имя, фамилию зарегистрированного пользователя)

Не прошу тарелки с голубой каемкой, прошу помощи понять принцип реализации, либо какой-нибудь набросанный код, направивший меня в нужное русло...

PS Не принимайте в штыки
*

neo85r

  • Захожу иногда
  • 93
  • 10 / 0
  • Ускорение сайтов
Re: Кнопка "Я ИДУ" в компоненте EventList
« Ответ #1 : 16.04.2012, 19:03:34 »
1. Найти таблицу, где хранятся события компонента (my_table), добавить в нее столбей `i_will_go_counter` type int(11) default 0;
В этом столбце будем хранить число пошедших.
2. В файле компонента component_name.php добавить задачу
Код
$controller->registerTask( 'i_will_go', 'i_will_go' );
3. В файле контроллера controller добавить функцию
Код
function i_will_go()
{
global $mainframe;
$db = &JFactory::getDBO();
$id = JRequest::getInt('id');
$query = "UPDATE `#__my_table` SET `i_will_go_counter` = `i_will_go_counter` + 1 WHERE `id` = ".$id;
$db->setQuery($query);
if ($db->query()) $mainframe->redirect(куда, 'Счетчик обновлен');
$mainframe->redirect(куда, 'Счетчик не удалось обновить', 'error');
}
Теперь осталось добавить кнопку с url = 'index.php?option=com_mycomponent&task=i_will_go&id'.$id.'=&Itemid='.JRequest::getVar('Itemid');
$id - это id данного события. Да, чтобы не накликивали, а также увидеть тех, кто идет, стоит добавить еще одну таблицу `id`, `user_id`, `event_id` и реализовать проверку перед увеличением счечика. а также записывать в нее тех, кто идетtask=i_will_go
*

kichik

  • Осваиваюсь на форуме
  • 15
  • 4 / 0
Re: Кнопка "Я ИДУ" в компоненте EventList
« Ответ #2 : 17.04.2012, 08:59:00 »
Спасибо БОЛЬШУЩЕЕ, с помощью вашего кода сделал счетчик, вывод кол-ва идущих, записываю в БД кто идет и на какое мероприятие, так же сравниваю, кто уже пошел и кто еще не согласился =), таким образом отсеиваю идущих...

Но возникла небольшая трабла, после реализации счетчика, а именно после клика по ссылке "я иду", если я авторизован, то меня выкидывает... Есть мысли?

ПС переношу все в админку, чтобы наблюдать идущих пользователей =)
*

neo85r

  • Захожу иногда
  • 93
  • 10 / 0
  • Ускорение сайтов
Re: Кнопка "Я ИДУ" в компоненте EventList
« Ответ #3 : 17.04.2012, 09:35:58 »
>>если я авторизован, то меня выкидывает
позавчера была такая же ситуация. как совершенно случайно выяснилось, надо в файлах компонента сменить кодировку на utf-8
да, еще бывает вариант когда
Код
$user = & JFactory::getUser();
А потом к коде $user меняешь, например
Код
$user = 'My variable';
, тогда также выкидывает
*

kichik

  • Осваиваюсь на форуме
  • 15
  • 4 / 0
Re: Кнопка "Я ИДУ" в компоненте EventList
« Ответ #4 : 17.04.2012, 10:00:37 »
уууу сработало, я бы даже не подумал о кодировке...

спасибо большое =)

уже почти заканчиваю работу с админ частью =)
*

dagolovach

  • Новичок
  • 2
  • 0 / 0
Re: Кнопка "Я ИДУ" в компоненте EventList
« Ответ #5 : 30.05.2013, 12:53:24 »
Задам вопрос тут.
А есть возможность реализовать аналогичным образом в каком-нибудь компоненте для 3.0 ( а то евентлист только для 1.5)?
Том же JEvents?

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

Оптимизация вложености в компоненте

Автор kaksdelat

Ответов: 11
Просмотров: 2514
Последний ответ 16.07.2015, 23:55:15
от z3l
Подключение js файла и кнопка прикреления

Автор __noob__

Ответов: 6
Просмотров: 1939
Последний ответ 20.05.2014, 00:24:40
от Fedor Vlasenko
[Решено] Не сохраняются HTML тэги в самописном компоненте

Автор evgen777

Ответов: 5
Просмотров: 1409
Последний ответ 04.03.2014, 15:40:47
от evgen777
Invlid token на разрабатываемом компоненте

Автор designcenter

Ответов: 1
Просмотров: 1371
Последний ответ 06.01.2014, 02:07:26
от Aleks.Denezh
[Решено] Удаление ID из материалов в своём компоненте

Автор n_drey

Ответов: 9
Просмотров: 1652
Последний ответ 25.12.2013, 16:46:54
от n_drey