Closed guyvanbael closed 6 years ago
Sorry for the confusion, looks like the 1.0.x branch/releases have not been compatible with 3.1 since version 0.3.0, SilverStripe 3.2 defines the method causing you issues. That version should still work on 3.1 however you cannot use the invisible captcha based on my commit for 0.3.1 it looks like there was an issue with it.
I've updated the composer.json accordingly.
so, i should use 0.3.0 release? using this version fixes this isue BUT form can be submitted without having to tick the captcha box
That would be my recommendation to at least try assuming you cannot update the version of the CMS to > 3.2.
You may also be able to extend the NocaptchaField
and override getFormID
with something replicates the functionality. Perhaps something like (untested):
class CustomNocaptchaField extends NocaptchaField {
/**
* Gets the form's id
* @return string
*/
public function getFormID() {
return ($this->form ? $this->form->FormName():null);
}
}
class CustomNocaptchaProtector implements NocaptchaProtector {
/**
* Return the Field that we will use in this protector
* @return string
*/
public function getFormField($name="Recaptcha2Field", $title='Captcha', $value=null) {
return new CustomNocaptchaField($name, $title);
}
}
Then use CustomNocaptchaProtector
as your spam protector instead of the NocaptchaProtector
.
the only thing that helped was updating the cms. @UndefinedOffset Thanx a lot for pointing me in the right direction! Realy appreciate it!
no problem
Getting this error when adding no-captcha to a SS3.1.3 site. [User Error] Uncaught Exception: Object->__call(): the method 'gettemplatehelper' does not exist on 'NocaptchaField' GET /carre2015/contact Line 763 in /Users/guy/Documents/webroot/carre2015/framework/core/Object.php
Source 754 default : 755 throw new Exception ( 756 "Object->call(): extra method $method is invalid on $this->class:" 757 . var_export($config, true) 758 ); 759 } 760 } else { 761 // Please do not change the exception code number below. 762 $class = get_class($this); 763 throw new Exception("Object->call(): the method '$method' does not exist on '$class'", 2175); 764 } 765 } 766
767 // -------------------------------------------------------------------------------------------------------------- 768
769 /** Trace Object->call(getTemplateHelper,Array) NocaptchaField.php:269 NocaptchaField->getTemplateHelper() NocaptchaField.php:269 NocaptchaField->getFormID() ViewableData.php:108 ViewableData->get(FormID) ViewableData.php:363 ViewableData->obj(FormID,,,1) ViewableData.php:436 ViewableData->XML_val(FormID,,1) call_user_func_array(Array,Array) SSViewer.php:179 SSViewer_Scope->call(XML_val,Array) SSViewer.php:535 SSViewer_DataPresenter->call(XML_val,Array) .cache.nocaptcha.templates.forms.NocaptchaField.ss:19 SSViewer_DataPresenter->XML_val(FormID,,1) .cache.nocaptcha.templates.forms.NocaptchaField.ss:19 include(/private/var/folders/m7/fvm9vz117wg8_t75r1sq2v4w0000gp/T/silverstripe-cache-php5.6.32-Users-guy-Documents-webroot-carre2015/guy/.cache.nocaptcha.templates.forms.NocaptchaField.ss) SSViewer.php:1031 SSViewer->includeGeneratedTemplate(/var/folders/m7/fvm9vz117wg8_t75r1sq2v4w0000gp/T/silverstripe-cache-php5.6.32-Users-guy-Documents-webroot-carre2015/guy/.cache.nocaptcha.templates.forms.NocaptchaField.ss,NocaptchaField,,Array,) SSViewer.php:1098 SSViewer->process(NocaptchaField,) ViewableData.php:334 ViewableData->renderWith(Array) FormField.php:589 FormField->Field(Array) NocaptchaField.php:126 NocaptchaField->Field() ViewableData.php:361 ViewableData->obj(Field,,,1) ViewableData.php:436 ViewableData->XML_val(Field,,1) call_user_func_array(Array,Array) SSViewer.php:179 SSViewer_Scope->call(XML_val,Array) SSViewer.php:535 SSViewer_DataPresenter->call(XML_val,Array) .cache.framework.templates.forms.FormField_holder.ss:31 SSViewer_DataPresenter->XML_val(Field,,1) .cache.framework.templates.forms.FormField_holder.ss:31 include(/private/var/folders/m7/fvm9vz117wg8_t75r1sq2v4w0000gp/T/silverstripe-cache-php5.6.32-Users-guy-Documents-webroot-carre2015/guy/.cache.framework.templates.forms.FormField_holder.ss) SSViewer.php:1031 SSViewer->includeGeneratedTemplate(/var/folders/m7/fvm9vz117wg8_t75r1sq2v4w0000gp/T/silverstripe-cache-php5.6.32-Users-guy-Documents-webroot-carre2015/guy/.cache.framework.templates.forms.FormField_holder.ss,NocaptchaField,,Array,) SSViewer.php:1098 SSViewer->process(NocaptchaField,) ViewableData.php:334 ViewableData->renderWith(Array) FormField.php:605 FormField->FieldHolder() ViewableData.php:361 ViewableData->obj(FieldHolder,,,1) ViewableData.php:436 ViewableData->XML_val(FieldHolder,,1) call_user_func_array(Array,Array) SSViewer.php:179 SSViewer_Scope->call(XML_val,Array) SSViewer.php:535 SSViewer_DataPresenter->call(XML_val,Array) .cache.userforms.templates.forms.UserFormsStepField.ss:34 SSViewer_DataPresenter->XML_val(FieldHolder,,1) .cache.userforms.templates.forms.UserFormsStepField.ss:34 include(/private/var/folders/m7/fvm9vz117wg8_t75r1sq2v4w0000gp/T/silverstripe-cache-php5.6.32-Users-guy-Documents-webroot-carre2015/guy/.cache.userforms.templates.forms.UserFormsStepField.ss) SSViewer.php:1031 SSViewer->includeGeneratedTemplate(/var/folders/m7/fvm9vz117wg8_t75r1sq2v4w0000gp/T/silverstripe-cache-php5.6.32-Users-guy-Documents-webroot-carre2015/guy/.cache.userforms.templates.forms.UserFormsStepField.ss,UserFormsStepField,,Array,) SSViewer.php:1098 SSViewer->process(UserFormsStepField,) ViewableData.php:334 ViewableData->renderWith(Array) FormField.php:589 FormField->Field(Array) UserFormsStepField.php:24 UserFormsStepField->FieldHolder() ViewableData.php:361 ViewableData->obj(FieldHolder,,,1) ViewableData.php:436 ViewableData->XML_val(FieldHolder,,1) call_user_func_array(Array,Array) SSViewer.php:179 SSViewer_Scope->call(XML_val,Array) SSViewer.php:535 SSViewer_DataPresenter->call(XML_val,Array) .cache.userforms.templates.Includes.UserForm.ss:68 SSViewer_DataPresenter->XML_val(FieldHolder,,1) .cache.userforms.templates.Includes.UserForm.ss:68 include(/private/var/folders/m7/fvm9vz117wg8_t75r1sq2v4w0000gp/T/silverstripe-cache-php5.6.32-Users-guy-Documents-webroot-carre2015/guy/.cache.userforms.templates.Includes.UserForm.ss) SSViewer.php:1031 SSViewer->includeGeneratedTemplate(/var/folders/m7/fvm9vz117wg8_t75r1sq2v4w0000gp/T/silverstripe-cache-php5.6.32-Users-guy-Documents-webroot-carre2015/guy/.cache.userforms.templates.Includes.UserForm.ss,UserForm,,Array,) SSViewer.php:1098 SSViewer->process(UserForm,) ViewableData.php:334 ViewableData->renderWith(Array) Form.php:1351 Form->forTemplate() ViewableData.php:437 ViewableData->XML_val(Form,,1) call_user_func_array(Array,Array) SSViewer.php:179 SSViewer_Scope->call(XML_val,Array) SSViewer.php:535 SSViewer_DataPresenter->call(XML_val,Array) .cache.themes.carre2015.templates.Layout.ContactPagina.ss:30 SSViewer_DataPresenter->XML_val(Form,,1) .cache.themes.carre2015.templates.Layout.ContactPagina.ss:30 include(/private/var/folders/m7/fvm9vz117wg8_t75r1sq2v4w0000gp/T/silverstripe-cache-php5.6.32-Users-guy-Documents-webroot-carre2015/guy/.cache.themes.carre2015.templates.Layout.ContactPagina.ss) SSViewer.php:1031 SSViewer->includeGeneratedTemplate(/var/folders/m7/fvm9vz117wg8_t75r1sq2v4w0000gp/T/silverstripe-cache-php5.6.32-Users-guy-Documents-webroot-carre2015/guy/.cache.themes.carre2015.templates.Layout.ContactPagina.ss,ViewableData_Customised,,Array,) SSViewer.php:1098 SSViewer->process(ViewableData_Customised,) SSViewer.php:1094 SSViewer->process(ViewableData_Customised) Controller.php:198 Controller->handleAction(SS_HTTPRequest,index) RequestHandler.php:200 RequestHandler->handleRequest(SS_HTTPRequest,DataModel) Controller.php:153 Controller->handleRequest(SS_HTTPRequest,DataModel) ContentController.php:198 ContentController->handleRequest(SS_HTTPRequest,DataModel) ModelAsController.php:78 ModelAsController->handleRequest(SS_HTTPRequest,DataModel) Director.php:370 Director::handleRequest(SS_HTTPRequest,Session,DataModel) Director.php:153 Director::direct(/contact,DataModel) main.php:177