Un plugin de formulaire de contact
Ce plugin fournit un formulaire de contact basique qui vous envoie les informations du contact par email, et les stocke dans la base de données au cas où un problème survienne lors de l’envoi de l’email. Il reprend le principe d’un précédent article de Formation CakePHP.
Il est disponible sur github : http://github.com/msadouni/cakephp-contact-plugin/tree/master
Une fois l’email envoyé, il redirige vers une page de remerciement sur laquelle vous pouvez inclure un code de suivi Google Analytics pour suivre le taux de conversion de vos campagnes AdWords.
Installation
Le plugin peut s’installer automatiquement si vous disposez du logiciel de gestion de sources Git, ou bien en décompressant une archive des sources dans votre application.
Avec Git Clone
Dans le répertoire plugins tapez
git clone git://github.com/msadouni/cakephp-contact-plugin.git contact |
En tant que sous-module Git (idéal si votre application est déjà versionnée avec Git)
Dans votre répertoire racine tapez
git submodule add git://github.com/msadouni/cakephp-meioupload-plugin.git plugins/contact git submodule init git submodule update |
Manuellement
Téléchargez une archive des sources sur github : http://github.com/msadouni/cakephp-contact-plugin/zipball/master et décompressez la dans plugins/contact
Utilisation
- Importez le SQL du fichier
plugins/contact/config/sql/contact.sqldans votre base - Dans
config/bootstrap.phpou un fichier de configuration, indiquez l’email sur lequel vous souhaitez recevoir les contactsConfigure::write('Contact.email', 'you@example.com');
- Pour utiliser la traduction française, ajoutez
au fichier
Configure::write('Config.language', 'fre');
config/bootstrap.phpou à un fichier de configuration. - Le formulaire est par défaut accessible à l’adresse
/contact/contacts/add
Paramétrage
Vous pouvez ajouter une route personnalisée au fichier config/routes.php
Router::connect('/contact', array( 'plugin' => 'contact', 'controller' => 'contacts', 'action' => 'add')); Router::connect('/contact/merci', array( 'plugin' => 'contact', 'controller' => 'contacts', 'action' => 'thanks')); |
Des vues et css basiques sont fournies. Vous pouvez les remplacer en créant des vues pour le formulaire et la page de remerciements dans views/plugins/contact/views/add.ctp et views/plugins/contact/views/thanks.ctp. La vue de remerciement fournie est uniquement destinée au développement, vous devrez créer la vôtre pour une utilisation en production.
Amélioration
Si vous repérez un bug ou souhaitez apporter des modifications au plugin, n’hésitez pas à vous inscrire sur github, créer votre fork du projet et me soumettre les modifications !
Commentaires
7 juin 2009 à 20:08
[...] Un plugin de formulaire de contact [...]
8 juin 2009 à 12:41
Bonjour Matthieu,
Un plugin efficace, qui fait ce qu’on lui demande… et qui me parait une base simple de découverte de création d’un plugin. Je me lance dans cette voie
)
Juste un petit soucis, je ne suis pas encore rentré dans le détail du code, la configuration « française » ne fonctionne pas : Configure::write(‘Config.language’, ‘fre’);
J’ai peut être cassé/oublié quelque chose dans la configuration de cake… rien de méchant en tout cas !
10 juin 2009 à 9:41
J’utilise cette méthode pour définir une langue, dans le book ils en proposent une autre :
Peut-être qu’avec ces lignes dans le beforeFilter() de ton AppController cela fonctionnera.