我正在尝试实施reCaptcha in the Contact manager module of Joomla 1.5 from these instructions。我有以下表格,如下所示:
<form action="<?php echo JRoute::_( 'index.php' );?>" method="post" name="emailForm" id="emailForm" class="form-validate">
<div class="contact_email<?php echo $this->escape($this->params->get('pageclass_sfx')); ?>">
<label for="contact_name">
<?php echo JText::_( 'Enter your name' );?>:
</label>
<br />
<input type="text" name="name" id="contact_name" size="30" class="inputbox" value="" />
<br />
<label id="contact_emailmsg" for="contact_email">
<?php echo JText::_( 'Email address' );?>:
</label>
<br />
<input type="text" id="contact_email" name="email" size="30" value="" class="inputbox required validate-email" maxlength="100" />
<br />
<label for="contact_subject">
<?php echo JText::_( 'Message subject' );?>:
</label>
<br />
<input type="text" name="subject" id="contact_subject" size="30" class="inputbox" value="" />
<br /><br />
<label id="contact_textmsg" for="contact_text">
<?php echo JText::_( 'Enter your message' );?>:
</label>
<br />
<textarea cols="50" rows="10" name="text" id="contact_text" class="inputbox required"></textarea>
<?php if ($this->contact->params->get( 'show_email_copy' )) : ?>
<br />
<input type="checkbox" name="email_copy" id="contact_email_copy" value="1" />
<label for="contact_email_copy">
<?php echo JText::_( 'EMAIL_A_COPY' ); ?>
</label>
<?php endif; ?>
<br />
<br />
<button class="button validate" type="submit"><?php echo JText::_('Send'); ?></button>
</div>
<input type="hidden" name="option" value="com_contact" />
<input type="hidden" name="view" value="contact" />
<input type="hidden" name="id" value="<?php echo $this->contact->id; ?>" />
<input type="hidden" name="task" value="submit" />
<?php echo JHTML::_( 'form.token' ); ?>
</form>
在该index.php
文件中,我需要添加一些额外的代码,以便在提交表单时,在验证并发送表单之前检查代码。
我假设因为我在这里的原因,index.php指的是根index.php
文件?或者,如果我错了,JRoute::_( 'index.php' );
指向哪里?
在那个索引文件中,我需要像这样引用 recaptchalib.php :
require_once('templates/templatename/html/com_contact/contact/recaptchalib.php');
我希望这是从index.php文件中引用recaptchalib.php的正确方法吗?
答案 0 :(得分:3)
JRoute :: _(“index.php”)确实是root index.php。 但是,您发布的表单不完整,缺少
<input type='hidden' name='option' value='mycomponent'
<input type='hidden' name='task' ...
选项是组件的名称,因此处理请求的文件是/components/com_mycomponent/mycomponent.php。
可以通过参数'task'指定在此组件中调用的函数。
此外,习惯上指定控制器,视图和布局。
我猜你应该在视图中插入你的recaptcha require。
阅读有关Joomla MVC或至少MVC的一些信息,并从核心组件中学习: - )