2012-05-14 3 views
1

Я пытаюсь отменить проверку recapthca на нескольких формах, но не повезло. Я всегда получаю сообщение об ошибке из моего «recaptcha_response_field», в котором говорится, что «вы неправильно ввели слова. Повторите попытку».cakephp recapthca плагин unset

Мне нужно перехватить большинство моих форм, но я хочу пропустить несколько. Я попробовал «MultivalidatableBehavior» http://bakery.cakephp.org/articles/dardosordi/2008/07/29/multivalidatablebehavior-using-many-validation-rulesets-per-model, но я тоже не смог заставить это работать.

Любые идеи о том, как я могу заставить это работать?

https://github.com/tbsmcd/recaptcha_plugin

Спасибо, Bart

ответ

2

Вы будете иметь, чтобы изменить поведение плагина, чтобы сделать это ... Это будет самый простой способ сделать это, вы могли бы также сделать это в поведении , но этот способ прост и прост.

//Your Controller 
function add(){ 
$this->{$this->modelClass}->reCaptcha = true; 
if(!empty($this->data)){ 
$this->{$this->modelClass}->save($this->data); 
} 
} 

//Edit Recaptcha ValidateBehavior 
function beforeValidate(&$model) { 
if(isset($model->reCaptcha) && $model->reCaptcha){ 
$model->validate['recaptcha_response_field'] = array(
'checkRecaptcha' => array(
'rule' => array('checkRecaptcha', 'recaptcha_challenge_field'), 
'required' => true, 
'message' => 'You did not enter the words correctly. Please try again.', 
), 
); 
} 
} 
Смежные вопросы