1515class EWZRecaptchaType extends AbstractType
1616{
1717 /**
18- * The reCAPTCHA server URL's.
18+ * The reCAPTCHA server URL.
19+ *
20+ * @var string
21+ */
22+ protected $ RECAPTCHA_API_SERVER ;
23+
24+ /**
25+ * The reCAPTCHA JS server URL.
26+ *
27+ * @var string
1928 */
20- const RECAPTCHA_API_SERVER = 'https://www.google.com/recaptcha/api.js ' ;
21- const RECAPTCHA_API_JS_SERVER = '//www.google.com/recaptcha/api/js/recaptcha_ajax.js ' ;
29+ protected $ RECAPTCHA_API_JS_SERVER ;
2230
2331 /**
2432 * The public key.
@@ -27,6 +35,13 @@ class EWZRecaptchaType extends AbstractType
2735 */
2836 protected $ publicKey ;
2937
38+ /**
39+ * The API server host name.
40+ *
41+ * @var string
42+ */
43+ protected $ apiHost ;
44+
3045 /**
3146 * Enable recaptcha?
3247 *
@@ -52,12 +67,15 @@ class EWZRecaptchaType extends AbstractType
5267 * @param bool $ajax Ajax status
5368 * @param LocaleResolver $localeResolver
5469 */
55- public function __construct ($ publicKey , $ enabled , $ ajax , LocaleResolver $ localeResolver )
70+ public function __construct ($ publicKey , $ enabled , $ ajax , LocaleResolver $ localeResolver, $ apiHost = ' www.google.com ' )
5671 {
5772 $ this ->publicKey = $ publicKey ;
5873 $ this ->enabled = $ enabled ;
5974 $ this ->ajax = $ ajax ;
75+ $ this ->apiHost = $ apiHost ;
6076 $ this ->localeResolver = $ localeResolver ;
77+ $ this ->RECAPTCHA_API_JS_SERVER = '// ' .$ apiHost .'/recaptcha/api/js/recaptcha_ajax.js ' ;
78+ $ this ->RECAPTCHA_API_SERVER = 'https:// ' .$ apiHost .'/recaptcha/api.js ' ;
6179 }
6280
6381 /**
@@ -68,6 +86,7 @@ public function buildView(FormView $view, FormInterface $form, array $options)
6886 $ view ->vars = array_replace ($ view ->vars , array (
6987 'ewz_recaptcha_enabled ' => $ this ->enabled ,
7088 'ewz_recaptcha_ajax ' => $ this ->ajax ,
89+ 'ewz_recaptcha_apihost ' => $ this ->apiHost
7190 ));
7291
7392 if (!$ this ->enabled ) {
@@ -80,12 +99,12 @@ public function buildView(FormView $view, FormInterface $form, array $options)
8099
81100 if (!$ this ->ajax ) {
82101 $ view ->vars = array_replace ($ view ->vars , array (
83- 'url_challenge ' => sprintf ('%s?hl=%s ' , self :: RECAPTCHA_API_SERVER , $ options ['language ' ]),
102+ 'url_challenge ' => sprintf ('%s?hl=%s ' , $ this -> RECAPTCHA_API_SERVER , $ options ['language ' ]),
84103 'public_key ' => $ this ->publicKey ,
85104 ));
86105 } else {
87106 $ view ->vars = array_replace ($ view ->vars , array (
88- 'url_api ' => self :: RECAPTCHA_API_JS_SERVER ,
107+ 'url_api ' => $ this -> RECAPTCHA_API_JS_SERVER ,
89108 'public_key ' => $ this ->publicKey ,
90109 ));
91110 }
@@ -155,4 +174,14 @@ public function getPublicKey()
155174 {
156175 return $ this ->publicKey ;
157176 }
177+
178+ /**
179+ * Gets the API host name.
180+ *
181+ * @return string The hostname for API
182+ */
183+ public function getApiHost ()
184+ {
185+ return $ this ->apiHost ;
186+ }
158187}
0 commit comments