Ideální je dát ji do local.neon aby pro každé pískoviště jednoho projektu mohly být jiné kódy.
xart.utils: recaptcha: secretKey: doplnit_secret_key siteKey: doplnit_site_key
Skript je možné vytvořit kdekoli v projektu a používat do pak napříč různými moduly.
import initRecaptcha from "xart-utils/recaptcha"; initRecaptcha()
Přidáme cestu k novému bundle.
export default defineConfig({
...
plugins: [
...
nette({
entry: [
... ostatní bundly ...
'AdminModule/Scripts/recaptcha.ts',
]
}),
...
],
...
})
Vybuildovaný asset musíme vložit do všech stránek kde se bude reCaptcha používat.
Pokud se bude využívat jen v jedné komponentě tak se dá vložit do šablony komponenty. Je ale možné ji vložit i do @layout.latte.
Důležité je že musí být vložena před ukončovací tag </body>
... html kód ...
{asset 'AdminModule/Scripts/recaptcha.ts'}
</body>
</html>
Do formuláře už stačí jen vložit control typu invisible ReCaptcha.
$form->addInvisibleReCaptcha('recaptcha', true);
Do phpstan.neon by se mělo přidat ignorování chyby nedefinované metody addInvisibleReCaptcha.
parameters: ... ignoreErrors: ... - '#Call to an undefined method Nette\\Application\\UI\\Form::addInvisibleReCaptcha\(\)#' ...