A form builder module for LUYA CMS.

Installs: 6 179

Dependents: 1

Suggesters: 0

Security: 0

Stars: 1

Watchers: 6

Forks: 4

Open Issues: 0


1.8.1 2023-10-31 07:11 UTC

This package is auto-updated.

Last update: 2024-05-14 18:41:04 UTC



LUYA CMS Forms Builder

LUYA Tests Maintainability Test Coverage

A Drag & Drop Forms Builder based on LUYA CMS Blocks.

Available forms module block extensions:


Install the extension through composer:

composer require luyadev/luya-module-forms

Add the module to the config

'modules' => [
    'forms' => [
        'class' => 'luya\forms\Module',

Run the migrate command which does the database table setup:

./luya migrate

Run the import command in order to setup all the need permissions:

./luya import

Adjust Mailer Component

In order to customize the mailer component which should be taken for sending the mails, define the Forms component with the given callback.

'components' => [
    'forms' => [
        'class' => 'luya\forms\Forms',
        'emailMessage' => function (SubmissionEmail $email, Forms $form) {
            // your custom mailer integration is here, ensure to return a boolean
            // value whether sending was successfull or not!    
            return \Yii::$app->mailer->compose()

Maybe the client would like to recieve a custom email, therefore you can extract the attribute value with $email->submission->getValueByAttribute('email_attribute_in_form').

'emailMessage' => function (SubmissionEmail $email, Forms $form) {
    return Yii::$app->mailer->compose()
        ->setTo($email->submission->getValueByAttribute('email')) // receives the value from the user entered data.        

Create Custom Form Field Blocks

The default blocks may not suit your needs, therefore its possible to create your own from input block:

class MyDropDownBlock extends PhpBlock
    use FieldBlockTrait;
    public function name()
        return 'Dropdown';

    public function admin()
        return '<p>My Dropdown {{vars.label}}</p>';

    public function frontend()
            $this->getVarValue($this->varRule, $this->defaultRule), 

        // Use all possible options with ActiveField or use the HtmlHelper
        return Yii::$app->forms->form->field(Yii::$app->forms->model, $this->getVarValue($this->varAttribute))
            ->dropDownList([1 => 'Foo', 2 => 'Bar']);


Refresh message files:

./vendor/bin/luya message msgconfig.php