kaistaerk/input-mask-bundle

A simple Symfony bundle that implements Form classes for RobinHerbots/Inputmask jQuery plugin

Installs: 93

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 5

Type:symfony-bundle

1.0.1 2022-12-17 11:54 UTC

This package is auto-updated.

Last update: 2024-04-17 14:37:04 UTC


README

A simple Symfony bundle that implements Form classes for RobinHerbots/Inputmask jQuery plugin.

Installation

Install with composer :

composer require it/input-mask-bundle

Enable the bundle in your project (only for Symfony 2-3. Sf4 does it automatically)

// app/AppKernel.php
public function registerBundles()
{
    $bundles = array(
        // ...
        new IT\InputMaskBundle\ITInputMaskBundle(),
        // ...
    );
}

Config

Symfony 2-3 method

Add the following line to your config.yml :

# app/config/config.yml

twig:
    form_themes:
        - 'ITInputMaskBundle:Form:inputMaskFields.html.twig'

Symfony 4 method

# config/packages/input_mask.yml
# Or in config/packages/twig.yml

twig:
    form_themes:
        - '@ITInputMask/Form/inputMaskFields.html.twig'

Usage

You can use these types in your Symfony forms :

    // Will result of a single_widget date picker
    use IT\InputMaskBundle\Form\Type\DateMaskType;
    use IT\InputMaskBundle\Form\Type\EmailMaskType;
    use IT\InputMaskBundle\Form\Type\UrlMaskType;
    //...
    $builder
        ->add('birthdate', DateMaskType::class, array(
            'label' => 'Date of birth',
        ))
        ->add('email', EmailMaskType::class, array(
            'label' => 'Email field',
        ))
        ->add('url', UrlMaskType::class, array(
            'label' => 'Url field',
        ))
    ;

OR

    // Will result of a text widget with the format "[0-9]{2}\.[0-9]{2}\.[0-9]{2}\.[0-9]{2}\.[0-9]{2}"
    use IT\InputMaskBundle\Form\Type\TextMaskType;
    //...
    $builder
        ->add('phone', TextMaskType::class, array(
            'label' => 'Phone number',
            'mask' => '99.99.99.99.99'
        ))
    ;

OR with regex type

    // Will result of a text widget with the format "[0-9]{2}\.[0-9]{2}\.[0-9]{2}\.[0-9]{2}\.[0-9]{2}"
    use IT\InputMaskBundle\Form\Type\TextMaskType;
    //...
    $builder
        ->add('phone', RegexMaskType::class, array(
            'label' => 'Phone number',
            'regex' => '[0-9]{2}\.[0-9]{2}\.[0-9]{2}\.[0-9]{2}\.[0-9]{2}'
        ))
    ;

For the "mask" config, please refer to the RobinHerbots/Inputmask documentation : https://github.com/RobinHerbots/Inputmask or http://robinherbots.github.io/Inputmask/