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

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
Вопрос по шаблону vt_boxing
« : 14.07.2017, 13:22:11 »
Ребята помогите решить траблу. Приобрел шаблон vt_boxing, как бы все просто и понятно, но неожиданно столкнулся с проблемой на ровном месте.
Суть!
В шаблоне на главной странице исполнена горизонтальная форма обратной связи, и проблема в том что она не реагирует ни на правило заполнения обязательных полей, и капчу ни воткнуть. Хотел поставить на кнопку модальное окно с выводом нормальной формы обратной связи... модальное окно встало, а вот поддержка модулей не работает. Я знаю как ее включить в модулях самой Joomla, а данный раздел вывода горизонтальной формы описан через билдер самого шаблона.

Вопрос?
Кто сталкивался с такой проблемой? Что можете посоветовать? Буду благодарен любой помощи.

Вот скрин для примера, что такое горизонтальная форма связи: http://joxi.ru/l2Z9yXIwZpbWmJ
*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
Re: Вопрос по шаблону vt_boxing
« Ответ #1 : 18.07.2017, 11:38:27 »
Смотрим Демо и как всегда - предоставлены модули для ознакомления.
Чтобы решить Вашу задачу необходимо посмотреть позищию формы, очевидно отыскать модуль Формы, сверстать собственно вывод полей и вывести на странице.
Модальное окно - пользователь не будет видеть отправлено сообщение или нет. Поэтому не стал бы этого делать, а монтировать форму собственно на странице сайта
*

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
Re: Вопрос по шаблону vt_boxing
« Ответ #2 : 18.07.2017, 12:00:28 »
Смотрим Демо и как всегда - предоставлены модули для ознакомления.
Чтобы решить Вашу задачу необходимо посмотреть позищию формы, очевидно отыскать модуль Формы, сверстать собственно вывод полей и вывести на странице.
Модальное окно - пользователь не будет видеть отправлено сообщение или нет. Поэтому не стал бы этого делать, а монтировать форму собственно на странице сайта
Я уж думал ни кто не ответит.)))
Касательно вывода формы... В шаблоне прописаны поля вывода - инпуты, не долго думая я сверстал форму из Хроноформ 5, все ок письма отправляет, НО! Поля отмеченные как обязательные для заполнения не работают, тупо игнорируется. И в связи с этим происходит отправка пустого письма. Боюсь меня боты заспамят.
Саму форму обратной связи проверял и все поля с отметкой как обязательные, работают как надо, но через вывод шаблона... не работают. + ко всему мои эксперименты показали, что вывод модулей так же не работает.
*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
Re: Вопрос по шаблону vt_boxing
« Ответ #3 : 18.07.2017, 12:08:10 »
шо то "темное".
а) какие именно модули не выводятся в шаблоне (есть ли в этих шаблонах скрипты ява, кюри)?
б) форму проверяли (судя по описанию - да)? Попробуйте сменить шаблон на поумолчаанию (системный) и проверить работу формы на этом шаблоне. Или же попробуйте вывести форму на какой-то другой странице (не главной)
Почему спросил об этом? Возможно банальный конфликт скриптов и модули не работают как им "полагается" или Вы хотите сказать, что модули даже вовсе не отображаются на главной, на сайте?
*

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
Re: Вопрос по шаблону vt_boxing
« Ответ #4 : 18.07.2017, 12:38:57 »
шо то "темное".
а) какие именно модули не выводятся в шаблоне (есть ли в этих шаблонах скрипты ява, кюри)?
б) форму проверяли (судя по описанию - да)? Попробуйте сменить шаблон на поумолчаанию (системный) и проверить работу формы на этом шаблоне. Или же попробуйте вывести форму на какой-то другой странице (не главной)
Почему спросил об этом? Возможно банальный конфликт скриптов и модули не работают как им "полагается" или Вы хотите сказать, что модули даже вовсе не отображаются на главной, на сайте?
Вот код, который был в шаблоне для вывода формы:
Код
<form class="form-inline text-center">
    <div class="form-group">
        <input id="yourname" class="validate['required'] form-control A form-control input-lg" title="" name="yourname" type="text" value="" placeholder="Ваше имя (обязательно поле)" data-inputmask="" data-load-state="" data-tooltip="">
    </div>
    <div class="form-group">
        <input class="form-control input-lg" name="your-phone" type="text" placeholder="Ваш телефон">
    </div>
    <div class="form-group">
        <input class="form-control input-lg" name="your-player" type="text" placeholder="Наименование квеста">
    </div>
    <div class="form-group">
        <input class="form-control input-lg" name="your-date" type="text" placeholder="Дата посещения">
    </div>
    <button class="btn btn-primary btn-lg" type="submit">Заказать звонок</button>
</form>

Затем я ее подправил под свою форму
Код
<form class="form-inline text-center" method="post" action="/component/chronoforms5/?chronoform=glavnaya-zakaz&event=submit">
    <div class="form-group">
        <input name="yourname" id="yourname" value="" placeholder="Ваше имя" class="validate['required'] form-control A form-control input-lg" title="" style="" data-inputmask="" data-load-state="" data-tooltip="" type="text" />
    </div>
    <div class="form-group">
        <input name="your-phone" id="your-phone" value="" placeholder="Укажите ваш телефон" class="validate['required','phone'] form-control input-lg" title="" style="" data-inputmask="" data-load-state="" data-tooltip="" type="text" />
    </div>
    <div class="form-group">
        <input name="your-player" id="your-player" value="" placeholder="Укажите квест" class="validate['required'] form-control input-lg" title="" style="" data-inputmask="" data-load-state="" data-tooltip="" type="text" />
    </div>
    <div class="form-group">
        <input name="your-date" id="your-date" value="" placeholder="Укажите дату" class="validate['required'] form-control input-lg" title="" style="" data-inputmask="" data-load-state="" data-tooltip="" type="text" />
    </div>
    <input name="yoursubmit" id="yoursubmit" type="submit" value="Заказать звонок" class="btn btn-primary btn-lg" style="" data-load-state="" />
</form>
Я еще раз все проверил и нашел ложь в своих словах. А именно если я вывожу форму обрамленную тегом <form>, то письма отправляет, но игнорирует обязательные поля.
Если выводить хроноформ 5 через - {chronoforms5}НАЗВАНИЕ ФОРМЫ{/chronoforms5}, в материале работает, а вывод через билдер шаблона нет (просто отображает команду).
Попробовал просто вставить код формы из хроноформ 5, форма отрисовывается но не работает. Так как нет ни каких предпосылок к принадлежности к форме созданной в хроноформ5, весь код обрамлен тегом <div>. Вот код:
Код
<div class="form-group gcore-form-row" id="form-row-yourname">
    <div class="gcore-input gcore-display-table" id="fin-yourname">
        <input name="yourname" id="yourname" value="" placeholder="Ваше имя" class="validate['required'] form-control A" title="" style="" data-inputmask="" data-load-state="" data-tooltip="" type="text" />
    </div>
</div>
<div class="form-group gcore-form-row" id="form-row-your-phone">
    <div class="gcore-input gcore-display-table" id="fin-your-phone">
        <input name="your-phone" id="your-phone" value="" placeholder="Укажите ваш телефон" class="validate['required','phone'] form-control A" title="" style="" data-inputmask="" data-load-state="" data-tooltip="" type="text" />
    </div>
</div>
<div class="form-group gcore-form-row" id="form-row-your-player">
    <div class="gcore-input gcore-display-table" id="fin-your-player">
        <input name="your-player" id="your-player" value="" placeholder="Укажите квест" class="validate['required'] form-control A" title="" style="" data-inputmask="" data-load-state="" data-tooltip="" type="text" />
    </div>
</div>
<div class="form-group gcore-form-row" id="form-row-your-date">
    <div class="gcore-input gcore-display-table" id="fin-your-date">
        <input name="your-date" id="your-date" value="" placeholder="Укажите дату" class="validate['required'] form-control A" title="" style="" data-inputmask="" data-load-state="" data-tooltip="" type="text" />
    </div>
</div>
<div class="form-group gcore-form-row" id="form-row-yoursubmit">
    <div class="gcore-input gcore-display-table" id="fin-yoursubmit">
        <input name="yoursubmit" id="yoursubmit" type="submit" value="Заказать звонок" class="btn btn-default form-control A" style="" data-load-state="" />
    </div>
</div>
*

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
Re: Вопрос по шаблону vt_boxing
« Ответ #5 : 18.07.2017, 12:41:49 »
Думаю проблему можно решить углубившись в вопрос вывода формы не через команду {chronoforms5}НАЗВАНИЕ ФОРМЫ{/chronoforms5}, а другим способом - череж сам код.
*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
Re: Вопрос по шаблону vt_boxing
« Ответ #6 : 18.07.2017, 12:52:35 »
естественно, если нет <form> в котором указывается файл обработчика - как же она будет работать.
Раз такое дело, попробуйте вывести не через {chronoforms5}, а через loadposition - какой будет результат?
Если же результат будет не утишительный - попробуйте вывести через пхп-код
*

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
Re: Вопрос по шаблону vt_boxing
« Ответ #7 : 18.07.2017, 13:35:18 »
естественно, если нет <form> в котором указывается файл обработчика - как же она будет работать.
Раз такое дело, попробуйте вывести не через {chronoforms5}, а через loadposition - какой будет результат?
Если же результат будет не утишительный - попробуйте вывести через пхп-код
loadposition -  не выводит. Попробовал через {module название модуля}, через эту команду модуль выводится, но при условии что установлен плагин - Modules Anywhere. Вывод даже таким способом к положительному результату не привет, отправляет пустое письмо. А в обычном материале, все ок. Такое впечатление что не работает обработка модулей.
На счет ПХП... у меня не очень большие познания  в нем. Надо время разобраться.

*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
Re: Вопрос по шаблону vt_boxing
« Ответ #8 : 18.07.2017, 13:49:37 »
через PHP, ничего сложного. Чтобы вывести один модуль, необходимо прописать следующие строки
Код
$document   = & JFactory::getDocument();
$renderer   = $document->loadRenderer('module');
$options    = array('style' => 'raw');
$module     = JModuleHelper::getModule('mod_custom_banners');
$module->params    = "heading=2\nlimit=10";
echo $renderer->render($module, $options);
mod_custom_banners - ваш модуль
Эти строки можно поместить в модуль флекси кастом (или любой другой для пхп).
Вопрос следующего характера - пробовали использовать другой модуль для отправки формы, например - фокс-контакт? Складывается такое впечатление, что не желает работать проверка полей (очевидно, она построена на ява или ..)
Если к формам (что в шаблоне) подключить свой файл обработки, как такой вариант?
*

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
Re: Вопрос по шаблону vt_boxing
« Ответ #9 : 18.07.2017, 14:30:05 »
через PHP, ничего сложного. Чтобы вывести один модуль, необходимо прописать следующие строки
Код
$document   = & JFactory::getDocument();
$renderer   = $document->loadRenderer('module');
$options    = array('style' => 'raw');
$module     = JModuleHelper::getModule('mod_custom_banners');
$module->params    = "heading=2\nlimit=10";
echo $renderer->render($module, $options);
mod_custom_banners - ваш модуль
Эти строки можно поместить в модуль флекси кастом (или любой другой для пхп).
mod_custom_banners - этого модуля у меня нет. Есть только mod_custom или mod_banners
Я вставил данную часть ПХП кода в mod_custom.php, но ни чего не изменилось.

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

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

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
Re: Вопрос по шаблону vt_boxing
« Ответ #10 : 18.07.2017, 14:52:36 »
пхп-код привел в качестве примера и не более того. И модуль --- mod_custom_banners - вместо его необходимо установить свой
Чтобы сотворить форму не обьязательно Аякс (очевидно из-за него вся проблема - конфликт скриптов) Вот вам генератор формы (+CAPTCHA) которую легко подправить для своих нужд (правка HTML = вывод на странице)
*

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
Re: Вопрос по шаблону vt_boxing
« Ответ #11 : 18.07.2017, 16:08:06 »
пхп-код привел в качестве примера и не более того. И модуль --- mod_custom_banners - вместо его необходимо установить свой
Чтобы сотворить форму не обьязательно Аякс (очевидно из-за него вся проблема - конфликт скриптов) Вот вам генератор формы (+CAPTCHA) которую легко подправить для своих нужд (правка HTML = вывод на странице)
Спасибо за помощь и дельные советы. Обязательно попробую генератор, но уже не сегодня. Завтра дам отчет.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вопрос по настройке Helix3

Автор AleksS

Ответов: 644
Просмотров: 113639
Последний ответ 16.03.2023, 21:36:56
от SolopoV
Helix ultimate 2 вопрос про меню и хедар

Автор Serganius

Ответов: 3
Просмотров: 1645
Последний ответ 21.12.2021, 23:02:51
от Alex_gs
вопрос по шаблону DD Garden для Joomla 3

Автор Tatyana.

Ответов: 50
Просмотров: 4190
Последний ответ 13.04.2021, 07:14:37
от IToro82
Вопрос от новичка. Как редактировать меню

Автор fidst

Ответов: 3
Просмотров: 975
Последний ответ 03.01.2021, 16:32:56
от fidst
Вопрос новичка, Helix ultimate

Автор zaremba

Ответов: 7
Просмотров: 1323
Последний ответ 15.12.2020, 20:33:09
от AlexB