"Уже сегодня делай то, о чем другие будут думать завтра!"

Хуки Form

Сайдбар

Хуки по своему существу – это скрипты, которые запускаются после того, как форма прошла валидацию FormIt. Они могут соединяться: сначала выполняется первый хук, если он пройден удачно, задействуется следующий. Если хук не пройден, обработка следующего не начинается, вместо этого программа возвращается к форме и отправляет сообщение об ошибке.


Крючками могут быть также имена сниппета, которые далее превращают сниппет в хук.

Есть два типа хуков:

• «рreHook» задается через свойство «preHooks» в сниппете FormIt, который выполняется при загрузке формы. Полезно для предварительной загрузки значений.

• обычный хук, задается через свойство «hooks» в сниппете FormIt, который выполняется после проверки формы. Пригодится для настраиваемой пост-обработки.

 

Использование preHooks

Просто укажите preHook в свойстве «preHooks» в Вашем запросе сниппета FormIt. Здесь нет доступных встроенных preHooks, но если у Вас есть preHook под названием «loadCustomValues»:

[[!FormIt? &preHooks=`loadCustomValues`]]



Затем запустите сниппет «loadCustomValues» до загрузки формы. Далее можно установить поля формы следующим образом:

<?php
$hook->setValue('name','John Doe');
$hook->setValue('email','john.doe@fake-emails.com');
return true;


Или же с помощью -> SetValues:


<?php
$hook->setValues(array(
  'name' => 'John Doe',
  'email' => 'john.doe@fake-emails.com',
));
return true;


Обратите внимание, что использование здесь метода  SetValues () создаст соответствующие плейсхолдеры,  доступные для Вашего email-чанка;  эффект от ручной установки значений схожий с добавлением скрытых полей в форму.

Вы можете делать все, что захотите в preHook. Помните, что если Ваш preHook или Hook  успешные, нужно указать return true. Если Вы хотите добавить сообщение об ошибке в поле:


$hook->addError('user','User not found.');
return false;

 


Использование хуков

Просто укажите хук в свойстве «hooks» в запросе сниппета FormIt. Например, так загружаются спам-хуки и почтовые хуки:


[[!FormIt? &hooks=`spam,email`]]

 


Встроенные хуки

Это список из встроенных хуков, которые поставляются в пакете с FormIt:

-email

-redirect

-spam

-recaptcha

-FormItAutoResponder

 

Хук redirect (если используется) всегда должен указываться как последний хук. Помните, что хуки реализовываются в порядке, указанном в свойстве.

 

Настраиваемые хуки

Любой сниппет может быть использован с Formit в качестве настраиваемого хука. Сниппет должен вернуть true в случае успеха, либо false или совокупность сообщений об ошибках в случае отказа (см. ниже). Если сниппет возвращает false, хуки, перечисленные после сниппета в параметре &hooks, не будут выполняться. Если сниппет не найден, хуки после него в списке будут выполняться.

 

Регистрация настраивамых хуков

Чтобы зарегистрировать настраиваемый хук, просто добавьте имя сниппета в параметр &hooks. Хуки будут выполняться в том порядке, в котором они появляются в параметре &hooks. Ваш сниппет может иметь любую позицию в списке.

 

Доступ к полям FormIt в Hook

Поля Formit доступны через hook api. Пример:


$email = $hook->getValue('email');
$allFormFields = $hook->getValues();


Если Вы хотите установить поля, Вам все же нужно будет получить к ним доступ следующим образом:


$hook->setValue('email','reset@thisemail.com');
$hook->setValues(array(
  'name' => 'Shaun',
  'books' => 'Hunger Games,To Kill a Mockingbird,Mindset',
));

 

Возвратные значения настраиваемого хука

Сниппеты должны возвращать true при успешном исходе. В случае неудачи сниппет может вставить сообщения об ошибке в переменную ошибок объекта крючка и выдать false. В любом случае хуки, перечисленные после настраиваемого хука в параметре &hooks, не будут реализовываться.

Объект fiHooks доступен в сниппете как $hook, который можно использовать для возврата общих сообщений об ошибках от сниппета:


$errorMsg = 'User not found';
$hook->addError('user',$errorMsg);
return false;

 

Опять же, помните: если Ваш хук удачный, убедитесь, что «return true;» находится в конце Вашего Hook. Если Вы используете «return false;» или возврат значения не состоялся, для FormIt это означает, что хук не пройден. Кроме того, убедитесь, что любые указанные Вами настраиваемые хуки расположены перед хуком-редиректом в свойстве hooks.

 

Файловые хуки

FormIt 2.0.0+ поддерживает файловые хуки и preHooks. Это означает, что Вы можете указать FormIt прямо в файле PHP для использования в качестве настраиваемого хука. Например:


 

[[!FormIt?

  &amp;hooks=`[[++assets_path]]hooks/my.hook.php`

]]




Таким образом производится определение MODX тегов в строке хука, а затем поиск хука в assets/hooks/my.hook.php. Если файл найден, он будет определять хук оттуда.




Email хук FormIt


FormIt крючок AutoResponder


Математический хук FormIt


Хук ReCaptcha


Redirect hook


Спам хук



Контактная информация

По всем интересующим вас вопросам связывайтесь при помощи контактной информации приведенной на этой странице!

telegram: @Accusser
skype: metsof
email: accusser@gmail.com

В социальных сетях...

Форма обратной связи

Sign In