Title: Motiforms
Author: kierzniak
Published: <strong>10 novembre 2017</strong>
Last modified: 10 novembre 2017

---

Recherche d’extensions

Cette extension **n’a pas été testée avec plus de trois mises à jour majeures de
WordPress**. Elle peut ne plus être maintenue ou supportée et peut avoir des problèmes
de compatibilité lorsqu’elle est utilisée avec des versions de WordPress plus récentes.

![](https://s.w.org/plugins/geopattern-icon/motiforms.svg)

# Motiforms

 Par [kierzniak](https://profiles.wordpress.org/kierzniak/)

[Télécharger](https://downloads.wordpress.org/plugin/motiforms.0.1.0.zip)

 * [Détails](https://fr.wordpress.org/plugins/motiforms/#description)
 * [Avis](https://fr.wordpress.org/plugins/motiforms/#reviews)
 *  [Installation](https://fr.wordpress.org/plugins/motiforms/#installation)
 * [Développement](https://fr.wordpress.org/plugins/motiforms/#developers)

 [Support](https://wordpress.org/support/plugin/motiforms/)

## Description

#### WARNING

If you are not developer this plugin is not for you. Motiforms do not provide any
WordPress admin interface to creating forms.

#### Features

 * Handle form logic
 * Field sanitization
 * Field validation
 * Built in html rendering helpers
 * Flexibility
 * Based on advanced Symfony framework

#### Get started

To create simple contact form paste code bellow to your functions.php file. And 
paste `[contact]` shortcode to your contact page.

    ```
    use Symfony\Component\Form\Extension\Core\Type\TextType;
    use Symfony\Component\Form\Extension\Core\Type\EmailType;
    use Symfony\Component\Form\Extension\Core\Type\TextareaType;
    use Symfony\Component\Form\Extension\Core\Type\SubmitType;

    class ContactForm {

        /**
         * Form instance
         *
         * FormType
         */
        private $form;

        /**
         * ContacForm constructor
         *
         * @return ContacForm
         */
        public function __construct() {

            $this->define_hooks();
        }

        /**
         * Create and process contact form
         *
         * This method is executed by wp action hook.
         * It will be executed only on page which has contact
         * shortcode.
         *
         * @return void
         */
        public function controller() {

            global $post;

            // Check if current view is page and page has content shortcode
            if ( is_page() && has_shortcode( $post->post_content, 'contact' ) ) {

                $factory = mf_get_factory();

                // Create form
                $this->form = $factory->create();

                // Add fields to form
                $this->form->add( 'full_name', TextType::class );
                $this->form->add( 'email', EmailType::class );
                $this->form->add( 'message', TextareaType::class );
                $this->form->add( 'submit', SubmitType::class );

                // Get request object
                $request = mf_get_request();

                // Handle request
                $this->form->handleRequest( $request );

                // Check if form is valid
                if ( $this->form->isSubmitted() && $this->form->isValid() ) {

                    // Get data from the form
                    $data = $this->form->getData();

                    // Define filters
                    $filters = array(
                        'full_name' => FILTER_SANITIZE_STRING,
                        'email' => FILTER_SANITIZE_STRING | FILTER_SANITIZE_EMAIL,
                        'message' => FILTER_SANITIZE_STRING,
                    );

                    // Fields sanitization
                    $sanitized_data = filter_var_array( $data, $filters );

                    // Perform action with form data e.g. send an e-mail

                    // Redirect user with success parameter to prevent double submitting form
                    wp_safe_redirect( $this->get_redirect_url() );
                }
            }
        }

        /**
         * Render contact form.
         *
         * This method is executed by contact shortcode.
         *
         * @return string
         */
        public function render() {

            $success =  filter_input( INPUT_GET, 'success', FILTER_SANITIZE_NUMBER_INT );

            if( '1' === $success ) {
                return sprintf('<h2>%s</h2>', __('Thank you for submitting the form. We will contact you shortly.') );
            }

            $form_view = $this->form->createView();

            $engine = mf_get_engine();

            return $engine['form']->form( $form_view, array('attr' => array('novalidate' => 'novalidate') ) );

        }

        /**
         * Method executed by constructor to define hooks and
         * create and render contact form.
         *
         * @return void
         */
        private function define_hooks() {

            add_action( 'wp', array( $this, 'controller' ) );

            add_shortcode( 'contact', array( $this, 'render' ) );
        }

        /**
         * Build url for form redirect
         *
         * @return string
         */
        private function get_redirect_url() {

            $url = get_permalink();

            $query = parse_url($url, PHP_URL_QUERY);

            // Returns a string if the URL has parameters or NULL if not
            if ($query) {
                $url .= '&success=1';
            } else {
                $url .= '?success=1';
            }

            return $url;
        }
    }

    // Initialize contact form
    new ContactForm();
    ```

## Installation

 1. Visit Plugins > Add New
 2. Search for “Motiforms”
 3. Install and activate “Motiforms »
 4. Go to [get started](https://github.com/motivast/motiforms#user-content-get-started)
    section to see a simple example.

or

 1. Download plugin from wordpres.org repository or [release section](https://github.com/motivast/motiforms/releases/latest).
 2. Upload the motiforms directory to your /wp-content/plugins/ directory
 3. Activate the plugin through the »‘Plugins » menu in WordPress
 4. Go to [get started](https://github.com/motivast/motiforms#user-content-get-started)
    section to see a simple example.

## FAQ

  Installation Instructions

 1. Visit Plugins > Add New
 2. Search for “Motiforms”
 3. Install and activate “Motiforms »
 4. Go to [get started](https://github.com/motivast/motiforms#user-content-get-started)
    section to see a simple example.

or

 1. Download plugin from wordpres.org repository or [release section](https://github.com/motivast/motiforms/releases/latest).
 2. Upload the motiforms directory to your /wp-content/plugins/ directory
 3. Activate the plugin through the »‘Plugins » menu in WordPress
 4. Go to [get started](https://github.com/motivast/motiforms#user-content-get-started)
    section to see a simple example.

  Where I can find documentation?

Documentation for Motiforms can be found on github [wiki pages](https://github.com/motivast/motiforms/wiki).

## Avis

Il n’y a aucun avis pour cette extension.

## Contributeurs/contributrices & développeurs/développeuses

« Motiforms » est un logiciel libre. Les personnes suivantes ont contribué à cette
extension.

Contributeurs

 *   [ kierzniak ](https://profiles.wordpress.org/kierzniak/)

[Traduisez « Motiforms » dans votre langue.](https://translate.wordpress.org/projects/wp-plugins/motiforms)

### Le développement vous intéresse ?

[Parcourir le code](https://plugins.trac.wordpress.org/browser/motiforms/), consulter
le [SVN dépôt](https://plugins.svn.wordpress.org/motiforms/), ou s’inscrire au [journal de développement](https://plugins.trac.wordpress.org/log/motiforms/)
par [RSS](https://plugins.trac.wordpress.org/log/motiforms/?limit=100&mode=stop_on_copy&format=rss).

## Journal des modifications

#### 0.1.0

 * Motiforms

## Méta

 *  Version **0.1.0**
 *  Dernière mise à jour **il y a 9 ans**
 *  Installations actives **10+**
 *  Version de WordPress ** 3.8 ou plus **
 *  Testé jusqu’à **4.8.28**
 *  Langue
 * [English (US)](https://wordpress.org/plugins/motiforms/)
 * Étiquettes
 * [contact form](https://fr.wordpress.org/plugins/tags/contact-form/)[custom form](https://fr.wordpress.org/plugins/tags/custom-form/)
   [form](https://fr.wordpress.org/plugins/tags/form/)[forms](https://fr.wordpress.org/plugins/tags/forms/)
   [symfony](https://fr.wordpress.org/plugins/tags/symfony/)
 *  [Vue avancée](https://fr.wordpress.org/plugins/motiforms/advanced/)

## Évaluations

Aucun avis n’a encore été envoyé.

[Your review](https://wordpress.org/support/plugin/motiforms/reviews/#new-post)

[Voir tous les avis](https://wordpress.org/support/plugin/motiforms/reviews/)

## Contributeurs

 *   [ kierzniak ](https://profiles.wordpress.org/kierzniak/)

## Support

Quelque chose à dire ? Besoin d’aide ?

 [Voir le forum de support](https://wordpress.org/support/plugin/motiforms/)