The Guestbook Plugin for Grav adds the ability to add a guestbook page that can receive visitor messages.
The Guestbook plugin is easy to install with GPM.
$ bin/gpm install guestbook
Or clone from GitHub and put in the user/plugins/guestbook
folder.
Create a page of type guestbook
, by calling its file guestbook.md
, or by changing its type via the Admin Plugin.
Now fill that page with the form options. The default example page is:
---
title: Guestbook
form:
name: guestbook
fields:
- name: author
label: Name
placeholder: Enter your name
autofocus: on
autocomplete: on
type: text
validate:
required: true
- name: email
label: Email
placeholder: Enter your email address
type: email
validate:
required: true
- name: text
label: Message
placeholder: Enter your message
type: textarea
validate:
required: true
- name: date
type: hidden
process:
fillWithCurrentDateTime: true
- name: g-recaptcha-response
label: Captcha
type: captcha
recaptcha_site_key: 2jj21oiej23ioej23iojeoi32jeoi3
recaptcha_not_validated: 'Captcha not valid!'
validate:
required: true
process:
ignore: true
buttons:
- type: submit
value: Submit
process:
- captcha:
recaptcha_secret: ej32uej3u2ijeiu32jeiu3jeuj32ui
- email:
subject: "[Site Guestbook] {{ form.value.name|e }}"
body: "{% include 'forms/data.html.twig' %}"
- save:
filename: messages.yaml
operation: 'add'
- message: Thank you for writing your message!
---
# Add message
### Enter your message:
The page will host user messages in the form of a typical guestbook. It will show the last 30 messages with the option to load more.
To reduce spam in your comments, enable the Google Recaptcha integration we added. In the Guestbook page markdown file, add the Google Recaptcha Site Key and the Recaptcha Secret.
By default, in the user/data/guestbook
folder.
You can view messages through the Data Manager
Plugin.
Upon receiving a message, if you set the process.email
option in the page yaml, the Email Plugin is tasked with sending an email with the details.