我正在尝试使用JFormFieldCaptcha来处理我的自定义jForm。我设法完成了注册和联系表格的工作。但是,我想构建自己的联系表单,该表单基于XML文件,看起来像这样:
<form>
<fieldset addfieldpath="<path to JFormFieldCaptcha class>">
<field
name="captcha" label="Captcha" description="COM_DEZTOUR_ORDER_CAPTCHA_DESC"
type="text" validate="captcha"
/>
</fieldset>
</form>
我无法弄清楚为什么这段代码不起作用。任何帮助都会受到欢迎!
答案 0 :(得分:9)
为了使用Joomla ReCaptcha插件 -
1)从http://www.google.com/recaptcha
获取重新接收密钥2)将这些键设置为recaptcha插件,如果不是,则将其激活。
3)转到Global Configuration=>Site=>Default Captcha
并设置"Default Captcha"=>"Captcha - ReCaptcha"
4)创建具有验证码字段
的xml表单实例$form =& JForm::getInstance('myform','path/to/form/form.xml');
5)在表单中创建字段 -
$fieldSets = $form->getFieldsets();
foreach ($fieldSets as $name => $fieldSet) :
?>
<?php
foreach ($form->getFieldset($name) as $field):
?>
<p>
<?php if (!$field->hidden) : ?>
<span class="formlabel"><?php echo $field->label; ?></span>
<?php endif; ?>
<span class="control"><?php echo $field->input; ?></span>
</p>
<?php
endforeach;
?>
<div class="clr"></div>
<?php
endforeach;
6)表格提交后验证表格 -
$post = JRequest::get('post');
jimport( 'joomla.form.form' );
$form =& JForm::getInstance('myform','path/to/form/form.xml');
$res = $form->validate($post);
XML表单示例 -
<?xml version="1.0" encoding="utf-8"?>
<form
addfieldpath="/administrator/components/com_franchise/models/fields">
<fieldset name="information">
<field id="name"
name="name"
type="text"
label="Name"
description=""
class="inputbox"
size="30"
default=""
required="true"
/>
<field
name="captcha"
type="captcha"
label="COM_CONTACT_CAPTCHA_LABEL"
description="COM_CONTACT_CAPTCHA_DESC"
validate="captcha"
/>
</fieldset>
</form>
你也可以尝试这个 - How to use joomla recaptcha plugin to my custom Module