А пому не работает капча в модуле?
при обращении к капче по ссылке получаю ошибку
1589
site\protected\modules\contact
ContactModule.php
<?php
class ContactModule extends CWebModule
{
public function init()
{
$this->setImport(array(
'contact.models.*',
'contact.components.*',
));
}
public function beforeControllerAction($controller, $action)
{
if(parent::beforeControllerAction($controller, $action)) return true;
else return false;
}
}
controllers\DefaultController.php
<?php
class DefaultController extends Controller
{
public function actions()
{
return array(
'captcha'=>array('class'=>'CCaptchaAction','backColor'=>0xFFFFFF),
);
}
public function actionIndex()
{
$model=new ContactForm;
if(isset($_POST['ContactForm']))
{
$model->attributes=$_POST['ContactForm'];
if($model->validate())
{
$headers="From: {$model->email}\r\nReply-To: {$model->email}";
mail(Yii::app()->params['adminEmail'],$model->subject,$model->body,$headers);
Yii::app()->user->setFlash('index','Thank you for contacting us. We will respond to you as soon as possible.');
$this->refresh();
}
}
$this->render('index',array('model'=>$model));
}
}
models\ContactForm.php
<?php
class ContactForm extends CFormModel
{
public $name;
public $email;
public $subject;
public $body;
public $verifyCode;
public function rules()
{
return array(
array('name', 'required'),
array('email', 'required'),
array('subject', 'required'),
array('body', 'required',),
array('email', 'email'),
array('verifyCode', 'captcha', 'allowEmpty'=>!CCaptcha::checkRequirements()),
);
}
}
views\default\index.php
<?php
$this->pageTitle=Yii::app()->name.' - Contact';
$this->breadcrumbs=array('Contact');
?>
<?php if(Yii::app()->user->hasFlash('index')): ?>
<div class="flash-success">
<?php echo Yii::app()->user->getFlash('index'); ?>
</div>
<?php else: ?>
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'contact-form',
'enableClientValidation'=>true,
'clientOptions'=>array('validateOnSubmit'=>true),
)); ?>
<div class="row">
<?php echo $form->labelEx($model,'name'); ?>
<?php echo $form->textField($model,'name'); ?>
<?php echo $form->error($model,'name'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'email'); ?>
<?php echo $form->textField($model,'email'); ?>
<?php echo $form->error($model,'email'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'subject'); ?>
<?php echo $form->textField($model,'subject',array('size'=>60,'maxlength'=>128)); ?>
<?php echo $form->error($model,'subject'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'body'); ?>
<?php echo $form->textArea($model,'body',array('rows'=>6, 'cols'=>50)); ?>
<?php echo $form->error($model,'body'); ?>
</div>
<?php if(CCaptcha::checkRequirements()): ?>
<div class="row">
<?php $this->widget('CCaptcha'); ?>
</div>
<div class="row">
<?php echo $form->error($model,'verifyCode'); ?>
<?php echo $form->textField($model,'verifyCode'); ?>
</div>
<?php endif; ?>
<div class="row buttons">
<?php echo CHtml::submitButton('Send'); ?>
</div>
<?php $this->endWidget(); ?>
</div>
<?php endif; ?>