robuust / craft-formdesk
Formdesk forms for Craft 4
Installs: 1 474
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 1
Open Issues: 0
Type:craft-plugin
Requires
- php: ^8.0
- craftcms/cms: ^4.0
This package is auto-updated.
Last update: 2024-11-21 11:57:54 UTC
README
Plugin that allows you to display Formdesk forms
Requirements
This plugin requires Craft CMS 4.0.0 or later.
Installation
To install the plugin, follow these instructions.
-
Open your terminal and go to your Craft project:
cd /path/to/project
-
Then tell Composer to load the plugin:
composer require robuust/craft-formdesk
-
In the Control Panel, go to Settings → Plugins and click the “Install” button for Formdesk.
Config
Create a file called formdesk.php
in you Craft config folder with the following contents:
<?php return [ // General 'host' => 'YOUR_HOST', 'apiKey' => 'YOUR_API_KEY', ];
Usage
Create a new "Formdesk" field and add it to the desired element's field layout. Now when editing such element you can select a Formdesk list to use.
In your front-end templates you can render this Formdesk list as a form.
Example
Here is an example that renders a Formdesk form. You can change and style this example any way you want.
{% if errors is defined %} <p>{{ errors.message|t }}</p> {% endif %} <form method="post"> {{ csrfInput() }} {{ actionInput('formdesk/submit') }} {{ redirectInput('url_to_redirect_to') }} {% for field in entry.form %} {% switch field.type %} {% case 'radio' or 'checkbox' %} {% for option in field.options %} <input id="{{ field.id }}-{{ loop.index }}" name="{{ field.name }}{% if field.type == 'checkbox' %}[]{% endif %}" type="{{ field.type }}" {% if field.required %} required{% endif %} value="{{ option.value }}" /> <label for="{{ field.id }}-{{ loop.index }}">{{ option.text }}</label> {% endfor %} {% default %} <input id="{{ field.id }}" name="{{ field.name }}" type="{{ field.type }}" placeholder="{{ field.label }}"{% if field.required %} required{% endif %} value="{{ field.value }}" /> {% endswitch %} <br /> {% endfor %} <input type="submit" /> </form>