netcore/module-form

There is no license information available for the latest version (v1.3.2) of this package.

Installs: 1 179

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 6

Forks: 0

Open Issues: 2

Type:module

v1.3.2 2018-08-13 16:42 UTC

README

This module was made for easy management of custom forms such as Contact form, Subscribe form etc.

Pre-installation

This package is part of Netcore CMS ecosystem and is only functional in a project that has following packages installed:

  1. https://github.com/netcore/netcore
  2. https://github.com/netcore/module-admin
  3. https://github.com/netcore/module-translate

Installation

  • Require this package using composer
    composer require netcore/module-form
  • Publish assets/configuration/migrations
    php artisan module:publish Form
    php artisan module:publish-config Form
    php artisan module:publish-migration Form
    php artisan migrate

Configuration

  • Configuration file is available at config/netcore/module-form.php

Usage

  • Render form
    app('forms')->replace('[form=(ID/Key)]');
    // or you can use helper method 
    form()->render('ID/Key');
  • Custom template
    If you want to render form with different template,
    you can create new file in /views/templates/forms (path can be changed in configuration),
    for example - contact-us.blade.php, where "contact-us" can be form key or the template name set when creating/editing form
  • Extend form submit functionality
    // For example, if you want to send email to Administrator and/or User, who submitted the "Contact Us" form
    use Modules\Form\Repositories\FormsRepository;
    use Nwidart\Modules\Facades\Module;
    
    $module = Module::find('form');
    if ($module AND $module->enabled()) {
        FormsRepository::addNewEvent('contact-us', function ($data) {
            Mail::to('admin@example.com')->queue(new NotifyAboutContactMessage($data));
        });
    }
    // $data variable is array, which consists of submitted data, for example
    $data = [
        'name'      => 'John',
        'email'     => 'example@example.com',
        'message'   => 'Lorem ipsum.'
    ];