mamuz / mamuz-contact
Provides simple contact form rendered by twitter-bootstrap view helper for ZF2 with Doctrine
Requires
- php: >=5.4
- doctrine/doctrine-orm-module: ~0.8
- neilime/zf2-twb-bundle: ~2.4
- zendframework/zend-captcha: ~2.3
- zendframework/zend-code: ~2.3
- zendframework/zend-eventmanager: ~2.3
- zendframework/zend-filter: ~2.3
- zendframework/zend-form: ~2.3
- zendframework/zend-http: ~2.3
- zendframework/zend-i18n: ~2.3
- zendframework/zend-modulemanager: ~2.3
- zendframework/zend-mvc: ~2.3
- zendframework/zend-servicemanager: ~2.3
- zendframework/zend-session: ~2.3
- zendframework/zend-stdlib: ~2.3
- zendframework/zend-validator: ~2.3
- zendframework/zend-view: ~2.3
- zendframework/zendservice-recaptcha: ~2.0.1
Requires (Dev)
- mamuz/php-dependency-analysis: 0.*
- mockery/mockery: 0.9.*
- phpunit/phpunit: 4.*
- satooshi/php-coveralls: 0.6.*
README
Features
- This module provides a contact form based on ZF2 and Doctrine2.
- Submitted contact forms will persist in repository.
- Captcha support is provided to force submitting by humans.
- Views are twitter-Bootstrap compatible.
Installation
The recommended way to install
mamuz/mamuz-contact
is through
composer by adding dependency to your composer.json
:
{ "require": { "mamuz/mamuz-contact": "*" } }
After that run composer update
and enable this module for ZF2 by adding
MamuzContact
to modules
in ./config/application.config.php
:
// ... 'modules' => array( 'MamuzContact', ),
This module is based on DoctrineORMModule
and be sure that you have already configured database connection.
Create database tables with command line tool provided by
DoctrineORMModule
:
./vendor/bin/doctrine-module orm:schema-tool:update
Configuration
This module is usable out of the box, but you can overwrite default configuration
by adding a config file in ./config/autoload
directory.
For default configuration see
module.config.php
Captcha Support
Create a new config file and place it to ./config/autoload
directory and
insert configuration array for Zend Captcha form element factory.
Array must be indexed by key captcha
, for e.g.:
return array( 'captcha' => array( 'type' => 'Zend\Form\Element\Captcha', 'name' => 'captcha', 'options' => array( 'label' => 'Please verify you are human', 'captcha' => array( 'class' => 'recaptcha', 'options' => array( 'pubkey' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'privkey' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx', ), ), ), 'attributes' => array( 'required' => 'required' ), ), );
Requirement for Google ReCaptcha WebService
Register your domain to Google ReCaptcha WebService
to
create a private key and a public key. Be sure that private key will not commit to VCS.
Workflow
After filtering and validation of user input a new contact entity
will persist in repository MamuzContact
.
Events
For the sake of simplicity Event
is used for
FQN MamuzContact\EventManager\Event
.
The following events are triggered by Event::IDENTIFIER
mamuz-contact: