Skip to content

Commit d729bd6

Browse files
author
Ivan Bochkarev
committed
Merge branch 'master' of https://github.com/modx-pro/Docs
2 parents 718a3e3 + cf74390 commit d729bd6

File tree

2 files changed

+94
-1
lines changed

2 files changed

+94
-1
lines changed
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
---
2+
title: scxcaptchaAjaxForm
3+
description: Неблокирующая числовая CAPTCHA (5 цифр) для AjaxForm и FormIt. Простая для человека, сложнее для ботов.
4+
logo: https://sait-modx.by/assets/images/components/scxcaptchaajaxform/logo_captha.png
5+
author: sait-modx.by
6+
---
7+
8+
# scxcaptchaAjaxForm
9+
10+
Неблокирующая числовая CAPTCHA (5 цифр) для **AjaxForm** и **FormIt**.
11+
Простая для человека, сложнее для ботов. Все имена и классы имеют префикс `scx_`.
12+
13+
**Документация:**
14+
15+
## Быстрый старт
16+
17+
```modx
18+
[[!ScxCaptchaAjaxForm]]
19+
```
20+
21+
### AjaxForm
22+
23+
```modx
24+
[[!AjaxForm?
25+
&snippet=`FormIt`
26+
&form=`tpl.AjaxForm.example`
27+
&hooks=`ScxCaptchaAjaxFormHook,email`
28+
&validate=`name:required,email:required:email,scx_code:required`
29+
]]
30+
```
31+
32+
### FormIt
33+
34+
```modx
35+
[[!FormIt?
36+
&hooks=`ScxCaptchaAjaxFormHook,email`
37+
&validate=`name:required,email:required:email,scx_code:required`
38+
]]
39+
[[!ScxCaptchaAjaxForm]]
40+
```
41+
42+
## Требования
43+
44+
MODX Revolution 2.8+ или 3.x
45+
46+
PHP 7.2+ (рекомендуется 7.4)
47+
48+
GD + TrueType (для TTF-шрифта)
49+
50+
## Ключевые особенности
51+
- Некэшируемый вызов сниппета.
52+
- Поддержка ассетов: head (по умолчанию), inline, none.
53+
- Валидация через хук ScxCaptchaAjaxFormHook.
54+
- Поля формы: scx_hp, scx_ts, scx_code, scx_token.
55+
56+
### Параметры сниппета
57+
58+
| Параметр | По умолчанию | Описание |
59+
|---------------|--------------|--------------------------------------------------------------------------|
60+
| ttl | 1200 | Время жизни токена (сек.) |
61+
| includeAssets | head | Как подключать CSS/JS: head, inline, none |
62+
| render | 1 | Возвращать HTML капчи (1) или только ассеты (0) |
63+
64+
## Отладка
65+
66+
Добавьте `&debug=1` к URL `captcha.php?...&debug=1` — выведет служебные данные.
67+
68+
Если видите **Bad token**, проверьте:
69+
- некэшируемый вызов,
70+
- один хост/поддомен,
71+
- корректное подключение ассетов,
72+
- наличие скрытого af_action у AjaxForm.

docs/components/sendit/events.md

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,28 @@ switch ($modx->event->name){
148148
```php:line-numbers
149149
switch ($modx->event->name){
150150
case 'senditOnGetWebConfig':
151-
$object->webConfig['myparam'] = 'test;
151+
$object->webConfig['myparam'] = 'test';
152+
break;
153+
}
154+
```
155+
156+
:::
157+
158+
#### senditOnSetValue - генерируется перед присвоением нового значения ключу в $_POST
159+
160+
Доступные параметры:
161+
162+
* **$key** - имя поля.
163+
* **$value** - оригинальное значение.
164+
* **$SendIt** - экземпляр класса SendIt.
165+
166+
::: details Пример плагина
167+
168+
```php:line-numbers
169+
switch ($modx->event->name){
170+
case 'senditOnSetValue':
171+
// устанавливаем оригинальное значение без каких-либо проверок
172+
$SendIt->newValue = $value;
152173
break;
153174
}
154175
```

0 commit comments

Comments
 (0)