{"action":"created","issue":{"url":"https://api.github.com/repos/joomla/joomla-cms/issues/18146","repository_url":"https://api.github.com/repos/joomla/joomla-cms","labels_url":"https://api.github.com/repos/joomla/joomla-cms/issues/18146/labels{/name}","comments_url":"https://api.github.com/repos/joomla/joomla-cms/issues/18146/comments","events_url":"https://api.github.com/repos/joomla/joomla-cms/issues/18146/events","html_url":"https://github.com/joomla/joomla-cms/pull/18146","id":261297325,"node_id":"MDExOlB1bGxSZXF1ZXN0MTQzNjMxOTc1","number":18146,"title":"Implement invisible Recaptcha","user":{"login":"continga","id":2082625,"node_id":"MDQ6VXNlcjIwODI2MjU=","avatar_url":"https://avatars2.githubusercontent.com/u/2082625?v=4","gravatar_id":"","url":"https://api.github.com/users/continga","html_url":"https://github.com/continga","followers_url":"https://api.github.com/users/continga/followers","following_url":"https://api.github.com/users/continga/following{/other_user}","gists_url":"https://api.github.com/users/continga/gists{/gist_id}","starred_url":"https://api.github.com/users/continga/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/continga/subscriptions","organizations_url":"https://api.github.com/users/continga/orgs","repos_url":"https://api.github.com/users/continga/repos","events_url":"https://api.github.com/users/continga/events{/privacy}","received_events_url":"https://api.github.com/users/continga/received_events","type":"User","site_admin":false},"labels":[{"id":307745144,"node_id":"MDU6TGFiZWwzMDc3NDUxNDQ=","url":"https://api.github.com/repos/joomla/joomla-cms/labels/Composer%20Dependency%20Changed","name":"Composer Dependency Changed","color":"207de5","default":false},{"id":198658453,"node_id":"MDU6TGFiZWwxOTg2NTg0NTM=","url":"https://api.github.com/repos/joomla/joomla-cms/labels/Language%20Change","name":"Language Change","color":"eb6420","default":false},{"id":60721348,"node_id":"MDU6TGFiZWw2MDcyMTM0OA==","url":"https://api.github.com/repos/joomla/joomla-cms/labels/PR-staging","name":"PR-staging","color":"c7def8","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":70,"created_at":"2017-09-28T12:17:12Z","updated_at":"2018-07-22T23:01:00Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/joomla/joomla-cms/pulls/18146","html_url":"https://github.com/joomla/joomla-cms/pull/18146","diff_url":"https://github.com/joomla/joomla-cms/pull/18146.diff","patch_url":"https://github.com/joomla/joomla-cms/pull/18146.patch"},"body":"Pull Request for Issue #14565 and following up #14583 and #16599 et al.\r\n\r\n### Summary of Changes\r\nThis PR implements the possiblity to use the Invisible reCAPTCHA using a separate plugin. Besides implementing the basic functionality to make invisible reCAPTCHA working, there has been made some smaller architectural changes to the whole captcha process (e.g. using Exception instead of JError for errors) and the reCAPTCHA PHP library from Google has been updated, alongside with some smaller changes in the old reCAPTCHA (V1 und V2) plugin.\r\n\r\nAs this is one of my first PRs for Joomla!, please dont hesitate to make suggestions of how to improve it.\r\n\r\n### Testing Instructions\r\n1) Create a site- and secret-key at https://www.google.com/recaptcha/admin for an invisible reCAPTCHA (reCAPTCHA V2 keys will *not* work with Invisible reCAPTCHA)\r\n1) Configure the Invisible reCAPTCHA plugin in the Joomla! backend, entering at least the site- and secret-key\r\n1) Configure the Invisible reCAPTCHA plugin to be used as captcha plugin (System -> Global Configuration -> Default Captcha)\r\n1) Open up a form in the frontend where a captcha is enabled (e.g. by creating a menulink to a contactform)\r\n1) Notice the reCAPTCHA logo on the right side (see screenshot further down) which indicates that the invisible reCAPTCHA has been executed.\r\n\r\nWe also need to make sure that the reCAPTCHA plugin (V1 and V2) still is working correctly (as there has been made some bigger changes to the code by me), although I have tested this toroughly already, but I would be very glad if other people could take a look at this too, I don't want to take chances that this PR breaks something.\r\n\r\n### Expected result\r\n![image](https://user-images.githubusercontent.com/2082625/30965998-9662bb34-a457-11e7-87ec-9c44538a2a8f.png)\r\n"},"comment":{"url":"https://api.github.com/repos/joomla/joomla-cms/issues/comments/406903895","html_url":"https://github.com/joomla/joomla-cms/pull/18146#issuecomment-406903895","issue_url":"https://api.github.com/repos/joomla/joomla-cms/issues/18146","id":406903895,"node_id":"MDEyOklzc3VlQ29tbWVudDQwNjkwMzg5NQ==","user":{"login":"mbabker","id":368545,"node_id":"MDQ6VXNlcjM2ODU0NQ==","avatar_url":"https://avatars2.githubusercontent.com/u/368545?v=4","gravatar_id":"","url":"https://api.github.com/users/mbabker","html_url":"https://github.com/mbabker","followers_url":"https://api.github.com/users/mbabker/followers","following_url":"https://api.github.com/users/mbabker/following{/other_user}","gists_url":"https://api.github.com/users/mbabker/gists{/gist_id}","starred_url":"https://api.github.com/users/mbabker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbabker/subscriptions","organizations_url":"https://api.github.com/users/mbabker/orgs","repos_url":"https://api.github.com/users/mbabker/repos","events_url":"https://api.github.com/users/mbabker/events{/privacy}","received_events_url":"https://api.github.com/users/mbabker/received_events","type":"User","site_admin":false},"created_at":"2018-07-22T23:01:00Z","updated_at":"2018-07-22T23:01:00Z","author_association":"MEMBER","body":"> Then the field renderer of Joomla! is being used to render that form, and the problem is solved for the registration form. I did some quick tests, and I did not see any differences in the generated form when using $field->renderField() instead of the current implementation, but I am unsure whether this would be the way to fix this.\r\n\r\nIn general I would suggest that unless there is some major need for styling that contradicts what the form fields and their layouts render that `$field->renderField()` should always be used (or, if you have all the fields enclosed into a fieldset, `$form->renderFieldset($fieldset->name);`).  Not doing so actually makes it harder to use plugins to dynamically alter forms and I'd almost suggest adding a static analysis tool raising warnings about manual rendering of field elements (`echo $field->label;` or `echo $field->input;`)."}}
{"actor":{"display_login":"mbabker"}}