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

serdr

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Укажите путь истинный, где копать? Чтобы данные при переходе из одной формы сохранялись в другой.
Например, есть форма с тремя пунктами, в низу три кнопки с выбором и переходом на четыре другие формы, где эти пункты уже есть. Как сделать, чтобы данные (трех пунктов) сохранялись при условии выбора из нижних четырех форм при переходе на одну из них.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Код: php-brief
JFactory::getApplication()->setUserState('parametr', 'znachenie'); //задаем
echo JFactory::getApplication()->getUserState('parametr'); //считываем
*

serdr

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Попробую, спасибо
*

verstalshik

  • Завсегдатай
  • 1754
  • 95 / 1
в FAQ на оффе есть же пример разжеванный, только сразу надо определиться и называть все своими именами - это одна форма с несколькими страницами
❶ НЕ СПРАВЛЯЕШЬСЯ САМ???  Поможем тут...  ❷ Калькулятор доставки - ЗАКАЖИ!!!...  ❸ Каталог компаний - ЖМИ!!!...  ❹ НОВИЧКИ! ВСЕ сюда! Первая консультация БЕСПЛАТНО!!
*

serdr

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
в FAQ на оффе есть же пример разжеванный, только сразу надо определиться и называть все своими именами - это одна форма с несколькими страницами
Нет, нет, в том то и дело, что это не одна форма. Это четыре разных формы. Но у всех первые пункты «а», «б», «в» одинаковые (остальные пункты разные). Перед этими формами стоит основная (пятая), где пользователь заполняет пункты «а», «б», «в» а при выборе и переходе на одну из четырех должны эти самые пункты вставать автоматом (чтобы не заполнять еще раз) а далее пользователь заполняет следующие пункты "г", "д", и т.д.
*

serdr

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Код: php-brief
JFactory::getApplication()->setUserState('parametr', 'znachenie'); //задаем
echo JFactory::getApplication()->getUserState('parametr'); //считываем

это не подходит, так как из регистрационных данных только емайл и то при условии, если чел. зарегистрируется.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
это не подходит, так как из регистрационных данных только емайл и то при условии, если чел. зарегистрируется.
Странные выводы. setUserState и getUserState обертки для работы с сессией. Написали даже не попробовав можете работать с ссесией и так
Как передать переменную из компонента в модуль
*

serdr

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Странные выводы. setUserState и getUserState обертки для работы с сессией.
Я не силен в PHP, наверное, поэтому сделал поспешные выводы. А пробую я методом тыка
*

verstalshik

  • Завсегдатай
  • 1754
  • 95 / 1
Нет, нет, в том то и дело, что это не одна форма. Это четыре разных формы. Но у всех первые пункты «а», «б», «в» одинаковые (остальные пункты разные). Перед этими формами стоит основная (пятая), где пользователь заполняет пункты «а», «б», «в» а при выборе и переходе на одну из четырех должны эти самые пункты вставать автоматом (чтобы не заполнять еще раз) а далее пользователь заполняет следующие пункты "г", "д", и т.д.

ну все-таки перечитайте еще раз мое сообщение! там есть решение вашего вопроса, уверяю вас!!))
❶ НЕ СПРАВЛЯЕШЬСЯ САМ???  Поможем тут...  ❷ Калькулятор доставки - ЗАКАЖИ!!!...  ❸ Каталог компаний - ЖМИ!!!...  ❹ НОВИЧКИ! ВСЕ сюда! Первая консультация БЕСПЛАТНО!!
*

serdr

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
ну все-таки перечитайте еще раз мое сообщение! там есть решение вашего вопроса, уверяю вас!!))
Не нашел, там только многостраничная форма. А мне надо именно из одной формы при выборе другой - одной из четырех,  в другую форму передать данные.
*

serdr

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
JFactory::getApplication()->setUserState('parametr', 'znachenie'); //задаем
Как данные из ячейки формы 1 с названием Namers запихнуть в значение – znachenie
Чтобы я не вставлял, у меня вылезает само слово – znachenie
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
*

serdr

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
из формы 1
Спойлер
[свернуть]
« Последнее редактирование: 25.12.2013, 08:55:39 от serdr »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
спрячьте код под спойлер(кнопка+). Нужен код который генерирует браузер. Просмотр исходного кода или Ctrl + U
Нужно видеть, что выводится вместо {zakazhik:body}
*

serdr

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Нужен код который генерирует браузер. Просмотр исходного кода или Ctrl + U
Нужно видеть, что выводится вместо {zakazhik:body}
<tr class="rsform-block rsform-block-zakazhik">
      <td>Заказчик</td>
      <td><input type="text" value="" size="60"  name="form[zakazhik]" id="zakazhik"  class="rsform-input-box"/><div class="formClr"></div><span id="component321" class="formNoError">Неверный Ввод</span></td>
      <td></td>
   </tr>
*

serdr

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Пример решения
http://learn.javascript.ru/play/y9qPB
Спасибо, попробую прикрутить к форме
*

serdr

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Пример решения
http://learn.javascript.ru/play/y9qPB
Да, решение работает, но только если zakazhik и pokypatel находятся в одной форме и на одной странице
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Да, решение работает, но только если zakazhik и pokypatel находятся в одной форме и на одной странице
Тогда возвращаемся к
Код: php-brief
JFactory::getApplication()->setUserState('parametr', 'znachenie'); //задаем
echo JFactory::getApplication()->getUserState('parametr'); //считываем
*

serdr

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Пример решения
http://learn.javascript.ru/play/y9qPB
Под это решение у меня созрел план:
На странице вверху одна форма без кнопки отправить
Снизу четыре вкладки (сделал методом jquery.idTabs.min.js  правда,  все вкладки открытые, что тот не получилось), в каждой вкладке своя форма.

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

serdr

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Только, только начало все сходиться и тут опять …
При не заполнении ячейки одной из четырех нижних форм происходит обновление страницы, после этого данные из верхней формы пропадают
*

serdr

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
ну все-таки перечитайте еще раз мое сообщение! там есть решение вашего вопроса, уверяю вас!!))
Кажется там действительно есть мое решение, я был не прав
*

serdr

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Помогите разобраться, что к чему:
Есть две формы: Форма1- forma1 (Заказчик – (zakazhik) и емайл – (mail)) и Форма2 forma2 (имя – (zakazhik1) и емайл- (email1)).
 Задача передать данные (zakazhik) и (mail)) из Формы1 в Форму 2.
В первый форме в «Сценарии Выполнения Программы»
 записываю
//<code>
$value = JRequest::setVar('forma1');
$value = (array) $value;
$items = array('zakazhik', 'mail');
array(
    $zakazhik  => zakazhik,
    $mail => mail,
)
//</code>

Переадресацию в первой форме пишу:http://сайт.ru/ index.php?option=com_rsform&formId=2&forma1=items_value

Во второй  форме в «Сценарии Выполнения Программы» записываю

//<code>
$value = JRequest::getVar('forma1');
$items = array('zakazhik', ' mail ');
$value = (array) $value;
foreach ($items as $i => $item) {
  if (in_array($item, $value)) {
    $items[$i] .= '[c]';
  }
}
 return trim(implode("\n", $items));
//</code>

У меня абсолютно ни чего не происходит и не передает ни чего, В ЧЕМ ОШИБКА?
*

serdr

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Почему тогда на странице благодарности "Показать сообщение благодарности" легко выводится данные формы:
if($_POST['form']['zakazhik'] != '')
   $thankYouMessage .= 'This is the email you have used in the form: '.$_POST['form']['zakazhik'];
else
   $thankYouMessage .= 'You did not use an email address in the form.';
Может можно тогда $_POST['form']['zakazhik'] в переменную запихнуть и через сессию передать?
« Последнее редактирование: 13.01.2014, 11:19:41 от serdr »
*

entelexiya

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Ребята а как в одной форме с разными страницами передать, получить данные?
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
Цитировать
как в одной форме с разными страницами передать, получить данные?
http://www.rsjoomla.com/support/documentation/view-article/496-preview-data-before-submit.html
П.3.
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Вообще, эта задача на QuickForm решается.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

entelexiya

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Ребята вопрос новичка, нашел как отправлять данные в одной форме с разными страницами, на офф. сайте .
Теперь подскажите пожалуйста, как сделать:
например клиент на первой странице выбирает дату, а на второй странице надо вывести данные равные этой дате из БД таблицы, в табличном ввиде.
рнр код в $formLayout записвать?
если да, то на странице как показать его?
Можно по подробнее описать что и как надо сделать.
за ранее спасибо.
*

entelexiya

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Вообще, эта задача на QuickForm решается.
чо то не хочется экспериментировать, и плюс у него нету документации.

*

entelexiya

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Днем на этом форуме никого нету да?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться