|
|
|
|
|
|

|
RegistrationConfirm
|
|
Назначение
Основное: реализует подтверждение регистрации на сайте, обычно после клика пользователя на ссылке в email.
Общее: позволяет произвести определенные манипуляции с записью из таблицы (в общем случае это может быть любая таблица, не обязательно таблица с пользователями): удалить, скопировать или перенести запись в другую таблицу. Одновременно можно задать полям записи определенные значения, отправить email при успехе. При успехе или неуспехе пользователь перенаправляется на определенные в макросе страницы
Ключи
| source |
Строка, содержит имя таблицы, в которой ищется запись. |
| filter |
Сложный фильтр, определяющий какую запись обрабатывать. Синтаксис см. в $News[]$. |
| action |
Строка, определяющая действие над записью. Может принимать следующие значения:
- move=table_name (перемещение записи в таблицу table_name);
- copy=table_name (копирование записи в таблицу table_name);
- delete (удаление записи);
- update (обновление полей записи, поля задаются в ключе set_fields_values).
|
| set_fields_values |
Строка, определяющая новые значения полей записи. Имеет вид fieldname1=fieldvalue1, fieldname2=fieldvalue2, ...., fieldnameN=fieldvalueN, где fieldname - имя поля, а fieldvalue - его значение. Данный ключ принимается во внимание если запись копируется, перемещается или обновляется.
Обратите внимание, что значение ключа целиком можно заключить в кавычки, которые будут проигнорированы, что обычно применяется в случае, если все устанавливаемые значения помещаются на несколько строк.
Также, система удалит все пробелы после запятых, которыми разделены пары "поле=значение", но в значениях полей все пробелы будут оставлены "как есть". |
| onsuccess |
Строка, содержащая псевдоним страницы, на которую переходит пользователь при успешной отработке (если запись найдена в указанной таблице с помощью указанного фильтра). Если ключ пустой или не задан, пользователь останется на той же странице. |
| onfailure |
Строка, содержащая псевдоним страницы, на которую переходит пользователь при неуспешной отработке (если запись не найдена в указанной таблице с помощью указанного фильтра). |
| emailonsuccess_label |
Строка, содержащая метку письма (или несколько, разделенных запятыми), которое будет отправлено в случае успешной отработки макроса. Необязательный ключ. |
Комментарии
Наиболее типичным применением макроса является подтверждение регистрации, производимое в две фазы. Сначала, пользователь заполняет регистрационную форму, после чего его учетная запись формируется во временном хранилище и ему отправляется письмо со ссылкой. Затем, при нажатии на ссылку он отправляется на страницу сайта с макросом $RegistrationConfirm[]$, который при успешной отработке перемещает учетную запись в постоянное хранилище, и может выставить флаг активации записи.
Тем не менее, данную подстановку можно использовать и в других случаях.
Примеры
Типовой пример использования $RegistrationConfirm [source: preregisters; filter:id=; action:move=registers; onsuccess: register-confirm-ok; onfailure: register-confirm-error; emailonsuccess_label: registration_confirmed; set_fields_values: state=on, group=1]$
В данном примере запись, со значением поля id равным значению ключа userid в URL или форме, из таблицы preregisters будет перемещена в таблицу registers. При этом поле state будет выставлено в "on", а поле group в "1".
Примечание. Иногда, в очень редких случаях, требуется проверять каждую заявку на регистрацию вручную. Чтобы ушлые пользователи не могли самостоятельно активировать свою учетную запись подстановкой значения поля state в hidden полях, разработчик обязан самостоятельно установить полю пустое значение через ключ set_fields_values при переносе из таблицы предрегистрации в таблицу зарегистрированных пользователей. А установка полю state значения on тогда будет производиться администратором сайта через админзону.
Схема с регистрацией в одну ступень не требует использования данного макроса вообще, достаточно записать в базу данные пользователя через макрос Form.
|
|
« к списку макроподстановок
|
|
|
|