pentarim / ContactBundle

This is a Contact Bundle built on the Observer Pattern. Plug any listener you want to your contact form in a really simple way and flexible way

Home Page:http://ihqs.net

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Provides a simple but powerful contact form built onto the Observer Pattern. Plug any listener you want to your contact form's submission

Todo

  • Add mongodb configuration files
  • Add unit tests
  • Comment methods and attributes
  • Cleanup

(Quite the same as for GithubBundle, we are sorry for that methodology but we'll correct that soon).

Features

  • Compatible with Doctrine ORM and ODM thanks to a generic repository.
  • Model is extensible at will
  • Observer Pattern designed for more flexibility
  • Every class is customizable

Installation

Add ContactBundle to your src/ dir

Using submodules If you prefer instead to use git submodules, the run the following:

    $ git submodule add git://github.com/ihqs/ContactBundle.git    src/IHQS/ContactBundle

Using the vendors script

Add the following lines in your deps file:

[IHQSContactBundle]
    git=git://github.com/ihqs/ContactBundle.git
    target=bundles/IHQS/ContactBundle

If you want to connect the email listener, install SwitfMailer and configure it

    $ git submodule add git://github.com/swiftmailer.git    src/vendor/swiftmailer

In your config, add :

    swiftmailer.config:
        transport:  smtp
        encryption: ssl
        auth_mode:  login
        host:       domain.tld
        username:   name@domain.tld
        password:   your_secret

Add the IHQS namespace to your autoloader

    // app/autoload.php
    $loader->registerNamespaces(array(
        'IHQS' => __DIR__.'/../vendor/bundles',
        // your other namespaces
    );

Add ContactBundle to your application kernel

    // app/AppKernel.php

    public function registerBundles()
    {
        return array(
            // ...
            new IHQS\ContactBundle\IHQSContactBundle(),
            // ...
        );
    }

Update your schema

    app/console doctrine:schema:update --force

Adding the form to your templates

In your template, you just have to add (if you are using Twig)

    {% render "IHQSContactBundle:Contact:form" %}

Configuration

In your app/config.yml (given you are using YAML for your configuration file)

    ihqs_contact.config:
        contact:
            form:
                type:               ihqs_contact_contact
                handler:            ihqs_contact.contact.form.handler.default
                name:               ihqs_contact_contact_form
                validation_groups:  [Contact]
        form: ~                                 # (optional) class managing the contact form
        model: ~                                # (optional) class managing the model
        connectors:                             # the list of "listeners" (or connectors here)
            email:                              # connecting the email listener
                recipients: contact@ihqs.net    # giving him the recipient(s) email(s)
            database:                           # connecting the database listener
                db_driver: orm                  # giving him the database driver
            file: ~                             # connecting the file logger listener

If you want a simple contact form only sending an email to you contact mailbox, then you just have to add to your configuration file

    ihqs_contact.config:
        connectors:
            email:
                recipients: cont@ct.me

About

This is a Contact Bundle built on the Observer Pattern. Plug any listener you want to your contact form in a really simple way and flexible way

http://ihqs.net


Languages

Language:PHP 100.0%