Может есть у кого время, глянуть в чем тут дело…
В контроллере так:
public function actions()
{
return array(
'captcha'=>array(
'class'=>'CCaptchaAction',
'backColor'=>0xFFFFFF,
),
);
}
[/code]
В модели так:
[code] public $verifyCode;
public function rules()
{
return array(
...
...
...
array('verifyCode', 'captcha', 'allowEmpty'=>!extension_loaded('gd'),'on'=>'register'),
);
}
/**
* Declares attribute labels.
*/
public function attributeLabels()
{
return array(
...
...
...
'verifyCode'=>'Verification Code',
);
}
В рендируемом представление так:
<div class="form">
<?php $form=$this->beginWidget('CActiveForm'); ?>
<p class="note">Fields with <span class="required">*</span> are required.</p>
<?php echo $form->errorSummary($model); ?>
...
...
...
<?php if(extension_loaded('gd')): ?>
<div class="row">
<?php echo $form->labelEx($model,'verifyCode'); ?>
<div>
<?php $this->widget('CCaptcha'); ?>
<?php echo $form->textField($model,'verifyCode'); ?>
</div>
<div class="hint">Please enter the letters as they are shown in the image above.
<br/>Letters are not case-sensitive.</div>
</div>
<?php endif; ?>
<div class="row buttons">
<?php echo CHtml::submitButton('Register'); ?>
</div>
<?php $this->endWidget(); ?>
</div><!-- form -->
Все нормально выводится, кроме кэпчи. На месте кэпчи вот это:
Verification Code *
Get a new code
Была как-то и раньше аналогичная проблема, сам не понял как-то странно она исчезла…
Само собой ‘GD’ расширение PHP присутствует, другие программы кэпчу показывают.
Единственное отличие от примера, в котором кэпча работает:
в данном примере контроллер использует шаблон colmn2
в примере, где кэпча работает, контроллер использует шаблон column1.
[color="#FF0000"]-----------------------[/color]
[color="#FF0000"]Нашел фишку ![/color]
Может кому пригодиться, выкладываю.
Совершенно не учел, что captcha - собственно также одно из действий контроллера,
которое подчиняется правилам доступа к действиям.
Включил в контроллере доступ к этому действию captcha таким вот макаром:
array('allow', // allow 'guest' users to perform 'register' action
'actions'=>array('register','captcha'),
'users'=>array('guest'),
),
[color="#FF0000"]и все заработало ![/color][color="#FF0000"][/color]