<?=$this->render($this->macros('system', 'captcha'), 'library/captcha')?>
Пример вызова
udata://system/captcha
XML-ответ UData классической каптчи
<udata
random_string="?1258628055"
module="system" method="captcha"
generation-time="0.080598">
<url random-string="?1451549090" id_param="captcha_id" id="id">/captcha.php</url>
</udata>
Элементы и атрибуты классической каптчи
XML-ответ UData Google ReCAPTCHA
Пример использования
Для использования CAPTCHA укажите в шаблоне вывода формы следующую инструкцию:
<xsl:apply-templates select="document('udata://system/captcha//id')/udata[url]" />
Если пользователь авторизовался или за время действия сессии уже правильно ввел проверочный код, то ответ UData не будет содержать элемента url
.
Шаблон вывода классической CAPTCHA можно оформить так:
<xsl:template match="udata[@method='captcha']">
<label for="captcha" id="for_captcha" title="Защитный код">
<input type="text" name="captcha" id="captcha"/>
<img src="{url}{@random_string}" />
</label>
</xsl:template>
Шаблон вывода Google ReCaptcha можно оформить так:
<xsl:template match="udata[@module = 'system' and @method = 'captcha' and count(recaptcha-url) > 0]">
<div>
<label>
<script src='{recaptcha-url}?hl=ru'></script>
<div class="{recaptcha-class}" data-sitekey="{recaptcha-sitekey}"></div>
</label>
</div>
</xsl:template>
Название
%system captcha()% — Выводит CAPTCHA.
Параметры: %system captcha( [template = 'default'], [captchaId = ''] )%
- template
-
Имя шаблона, по которому следует вывести CAPTCHA. В XSLT-шаблонизаторе игнорируется.
- captchaId
-
Идентификатор CAPTCHA (для вывода нескольких CAPTCHA на одной странице)
Описание
CAPTCHA («Completely Automated Public Turing test to tell Computers and Humans Apart») используется для того, чтобы защитить Ваш сайт от спама. Например, чтобы запретить роботам автоматически размещать комментарии или сообщения на форум.
Вывод CAPTCHA осуществляется по шаблону, указанному в параметре template. Вы можете не указывать этот параметр, в этом случае для вывода будет использован шаблон по умолчанию — default.tpl
.
CAPTCHA показывается неавторизованным пользователям, которые за время действия сессии не вводили правильно CAPTCHA. В случае, если пользователь написал сообщение, добавил комментарий или совершил любое другое действие, связанное с вводом CAPTCHA, система считает, что пользователь подтвердил, что он не робот, и CAPTCHA ему показывать не обязательно.
С версии 15 результат работы макроса будет меняться в зависимости от типа каптчи.