Новости 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 Ответов
  • 801 Просмотров
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Здравствуйте форумчане, сталкивался кто с компонентом OT Testimonials.Проблема в том что капча отображается но недоработает (отправляет комментарии без ее подтверждения) страница с формой _https://lik-astana.kz/posmotret-vse-otzyvy.htmlВ /components/com_testimonies/models/forms/item.xml  капча прописана
Цитировать
        <field
        name="captcha"
        type="captcha"
        label="COM_TESTIMONIES_FIELD_CAPTCHA_LABEL"
        description="COM_TESTIMONIES_FIELD_CAPTCHA_DESC"
        validate="captcha"
        />

Вывожу в /templates/lik-astana/html/com_testimonies/list/default_form.php
Подключение
Код
<?php
defined('_JEXEC') or die;

$params = JComponentHelper::getParams('com_testimonies');
    if($params->get('captcha')!= '' || $params->get('captcha')!= 0) {
    JPluginHelper::importPlugin('captcha');
    $dispatcher = JDispatcher::getInstance();
    $dispatcher->trigger('onInit','dynamic_recaptcha_1');

 
?>
В шаблоне формы сама капча выводится
Код
            
<?php if($params->get('captcha')!= '' || $params->get('captcha')!= 0): ?>
            <div class="control-group form-group">
                <div class="control-label col-sm-4">
                <?php echo $this->form->getLabel('captcha'); ?>
                </div>
                <div class="controls col-sm-8">
                <div id="dynamic_recaptcha_1">
                <?php echo $this->form->getInput('captcha'); ?>
                </div>
                </div>
            </div>
подскажите что не так.

*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Re: Неработает сaptcha в com_testimonies
« Ответ #1 : 05.02.2019, 06:34:14 »
Добавил поле как обязательное required="true"       
Код
 <field
        name="captcha"
        type="captcha"
        required="true"
        label="COM_TESTIMONIES_FIELD_CAPTCHA_LABEL"
        description="COM_TESTIMONIES_FIELD_CAPTCHA_DESC"
        validate="captcha"
        /> 
но сообщение все ровно отправляется без подтверждения.

*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Re: Неработает сaptcha в com_testimonies
« Ответ #2 : 11.02.2019, 08:16:54 »
Который день возвращаюсь к данному вопросу но не как не могу решить. Как сделать капчу обязательной для заполнения  *ОХ-Х-Х*
*

arma

  • Завсегдатай
  • 1752
  • 81 / 3
Re: Неработает сaptcha в com_testimonies
« Ответ #3 : 11.02.2019, 08:44:41 »
Разрабу тикет создать не судьба?  :-X
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Re: Неработает сaptcha в com_testimonies
« Ответ #4 : 11.02.2019, 08:54:41 »
Цитировать
Разрабу тикет создать не судьба?  :-X
Писал разработчику в первую очередь но с его стороны молчание. Создал тему на их форуме но там то же все молчат.

*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: Неработает сaptcha в com_testimonies
« Ответ #5 : 11.02.2019, 09:19:12 »
Эт в браузере капча заполнена, т.е. условие выполняется. А еще нужно в компоненте сделать проверку, подключив плагин рекапчи.
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Re: Неработает сaptcha в com_testimonies
« Ответ #6 : 11.02.2019, 09:55:31 »
А еще нужно в компоненте сделать проверку, подключив плагин рекапчи.
Так в компоненте она была прописана. Уточните пожалуйста по подробнее, в настройках компонента https://yadi.sk/i/4_sHUfpFrt3EgQ выбрана рекапча
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Re: Неработает сaptcha в com_testimonies
« Ответ #7 : 11.02.2019, 13:46:22 »
Плагин как я понимаю подключен
Код
$params = JComponentHelper::getParams('com_testimonies'); 
    if($params->get('captcha')!= '' || $params->get('captcha')!= 0) {
    JPluginHelper::importPlugin('captcha');
    $dispatcher = JDispatcher::getInstance();
    $dispatcher->trigger('onInit','dynamic_recaptcha_1');
}
 
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Re: Неработает сaptcha в com_testimonies
« Ответ #8 : 12.02.2019, 07:17:39 »
Доброго времени суток, что то я понять не могу где еще необходимо подключать.Капча подключается только в одном месте
Код
$params = JComponentHelper::getParams('com_testimonies'); 
    if($params->get('captcha')!= '' || $params->get('captcha')!= 0) {
    JPluginHelper::importPlugin('captcha');
    $dispatcher = JDispatcher::getInstance();
    $dispatcher->trigger('onInit','dynamic_recaptcha_1');
}
можно еще указать в /components/com_testimonies/models/forms/item.xml как обязательное поле  required="true"
Код
 
    <field
        name="captcha"
        type="captcha"
        required="true"
        label="COM_TESTIMONIES_FIELD_CAPTCHA_LABEL"
        description="COM_TESTIMONIES_FIELD_CAPTCHA_DESC"
        validate="captcha"
        />
 
Но к сожалению это так же не работает
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: Неработает сaptcha в com_testimonies
« Ответ #9 : 12.02.2019, 08:18:39 »
в настройках компонента выбрана рекапча
Я не знаю этот компонент, и кроме настроек должны быть проверка значения поля рекапча через плагин рекапча в коде компонента.Пример
Код
 $result = $dispatcher->trigger('onCheckAnswer', $check_captcha['recaptcha_response_field']);
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Re: Неработает сaptcha в com_testimonies
« Ответ #10 : 12.02.2019, 08:32:45 »
Я не знаю этот компонент, и кроме настроек должны быть проверка значения поля рекапча через плагин рекапча в коде компонента.Пример
Код
$result = $dispatcher->trigger('onCheckAnswer', $check_captcha['recaptcha_response_field']);
Нет нечего такого. Прикрепил вложение с компонентом
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Re: Неработает сaptcha в com_testimonies
« Ответ #11 : 12.02.2019, 09:29:44 »
Может я туплю, но нечего не могу найти.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться