Skip to content

A Kirby 3 plugin implementing a Cloudflare Turnstile guard for the Uniform plugin.

License

Notifications You must be signed in to change notification settings

anselmh/kirby-uniform-turnstile

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Uniform Cloudflare Turnstile Guard

A Kirby 3 plugin implementing a Cloudflare Turnstile guard for the Uniform plugin.

Installation

Composer

Add the plugin to your project:

composer require anselmh/kirby-uniform-turnstile

Manual install

It is possible to install plugins manually. Download from the Github Releases page, unpack the archive and put it into site/plugins. Please note that this project depends on Uniform so it is required to install this package as well.

Configuration

Set the configuration in your config.php file:

return [
  'anselmh.uniform-turnstile.siteKey' => 'my-site-key',
  'anselmh.uniform-turnstile.secretKey' => 'my-secret-key',
];

Usage

Template

You can use the provided helper function to embed the Turnstile into your template:

<?= turnstileField() ?>

In order for turnstile to work, you need to provide the Turnstile JavaScript file.

Use the helper function turnstileScript() in your template or add it to the template at right before the closing </body> tag.

Example

<form action="<?= $page->url() ?>" method="post">
    <label for="name" class="required">Name</label>
    <input<?php if ($form->error('name')): ?> class="erroneous"<?php endif; ?> name="name" type="text" value="<?= $form->old('name') ?>">

    <!-- ... -->

    <?= csrf_field() ?>
    <?= turnstileField() ?>
    <input type="submit" value="Submit">
</form>
<?= turnstileScript() ?>

Controller

In your controller you can use the magic method turnstileGuard() to enable the turnstile guard:

$form = new Form(/* ... */);

if ($kirby->request()->is('POST'))
{
    $form->turnstileGuard()
         ->emailAction(/* ... */);
}

Credits