robuust/craft-formdesk

Formdesk forms for Craft 4

Installs: 1 470

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 1

Forks: 1

Open Issues: 0

Type:craft-plugin

2.1.0 2024-08-20 09:41 UTC

This package is auto-updated.

Last update: 2024-10-21 11:46:52 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.

  1. Open your terminal and go to your Craft project:

     cd /path/to/project
    
  2. Then tell Composer to load the plugin:

     composer require robuust/craft-formdesk
    
  3. 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>