Skip to content

Instantly share code, notes, and snippets.

Created January 26, 2012 22:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save anonymous/1685453 to your computer and use it in GitHub Desktop.
Save anonymous/1685453 to your computer and use it in GitHub Desktop.
<?php
error_reporting(E_ALL|E_STRICT);
ini_set('display_startup_errors', 1);
ini_set('display_errors', 1);
require_once __DIR__ . '/library/Zend/Loader/StandardAutoloader.php';
use Zend\Loader\StandardAutoloader;
$loader = new StandardAutoloader();
$loader->registerNamespaces(array(
'Swift' => realpath(__DIR__ . '/library/Swift'),
'Souse' => realpath(__DIR__ . '/library/Souse')
));
$loader->registerPrefixes(array(
'Twig_' => realpath(__DIR__ . '/library/Twig')
));
$loader->setFallbackAutoloader(true);
$loader->register();
$loader = new Twig_Loader_Filesystem(__DIR__ . '/views');
$twig = new Twig_Environment($loader, array(
'cache' => __DIR__ . '/cache',
'auto_reload' => true
));
$twig->addFunction(
'form',
new \Swift\Template\Twig\Functions\FormFunction()
);
$twig->addFunction(
'formElement',
new \Swift\Template\Twig\Functions\FormElementFunction()
);
<?php
/**
* @package Swift
* @author Axel Etcheverry <axel@etcheverry.biz>
* @copyright Copyright (c) 2011 Axel Etcheverry (http://www.axel-etcheverry.com)
* Displays <a href="http://creativecommons.org/licenses/MIT/deed.fr">MIT</a>
* @license http://creativecommons.org/licenses/MIT/deed.fr MIT
*/
/**
* @namespace
*/
namespace Souse\Form;
use Swift\Form;
use Swift\Form\Element;
use Zend\Validator;
class Contact extends Form
{
public function init()
{
$element = new Element\Input('nom');
$element->setType('text')
->addAttribute('placeholder', 'Nom')
->setRequired(true);
$this->addElement($element);
$element = new Element\Input('prenom');
$element->setType('text')
->addAttribute('placeholder', 'Prénom')
->setRequired(false);
$this->addElement($element);
$element = new Element\Input('societe');
$element->setType('text')
->addAttribute('placeholder', 'Société')
->setRequired(false);
$this->addElement($element);
$element = new Element\Input('email');
$element->setType('email')
->addAttribute('placeholder', 'Email')
->setRequired(true)
->addValidator(new Validator\EmailAddress());
$this->addElement($element);
$element = new Element\Input('telephone');
$element->setType('text')
->addAttribute('placeholder', 'Téléphone')
->setRequired(false);
$this->addElement($element);
$element = new Element\Textarea('message');
$element->addAttribute('placeholder', 'Message')
->setRequired(true);
$this->addElement($element);
$element = new Element\Input('send');
$element->setType('submit')
->setValue("Envoyer")
->addAttribute('class', 'btn primary');
$this->addElement($element);
}
}
{% extends "layout.html" %}
{% block content %}
<!-- FORMULAIRE DE CONTACT -->
<h2>Nous contacter</h2>
{{ form(form) }}
<fieldset>
<legend>Par e-mail</legend>
<p>
Vous pouvez compléter le formulaire suivant ou nous écrire à <a href="mailto:contact@so-use.fr">contact@so-use.fr</a>
</p>
<div class="clearfix">
<label for="nom">Nom :</label>
<div class="input">
{{ formElement(form.getElement("nom")) }}
</div>
</div>
<div class="clearfix">
<label for="prenom">Prénom :</label>
<div class="input">
{{ formElement(form.getElement("prenom")) }}
</div>
</div>
<div class="clearfix">
<label for="societe">Société :</label>
<div class="input">
{{ formElement(form.getElement("societe")) }}
</div>
</div>
<div class="clearfix">
<label for="email">Email :</label>
<div class="input">
{{ formElement(form.getElement("email")) }}
</div>
</div>
<div class="clearfix">
<label for="telephone">Téléphone :</label>
<div class="input">
{{ formElement(form.getElement("telephone")) }}
</div>
</div>
<div class="clearfix">
<label for="message">Message :</label>
<div class="input">
{{ formElement(form.getElement("message")) }}
</div>
</div>
<div class="clearfix">
<div class="input">
{{ formElement(form.getElement("send")) }}
</div>
</div>
</fieldset>
</form>
{% endblock %}
<?php
require_once __DIR__ . '/bootstrap.php';
use Souse\Form;
use Zend\Mail\Message;
use Zend\Mail\Transport\Sendmail as SendmailTransport;
$form = new Form\Contact(Form\Contact::POST);
if(isset($_POST) && $form->isValid()) {
$message = new Message();
$message->setEncoding("UTF-8");
$message->addFrom("contact@so-use.fr", "So!use")
->addTo("contact@so-use.fr")
->addReplyTo($form->getValue('email'), $form->getValue('nom'));
->setSubject("so!use.fr : contact");
$message->setBody(sprintf("Hello tu vien d'avoir un message de la part de %s qui te dit : %s",
$form->getValue('nom'),
$form->getValue('message')));
$transport = new SendmailTransport();
$transport->send($message);
}
echo $twig->render('nous_contacter.html', array(
'current_page' => 'nous_contacter',
'title' => 'Nous contacter | SO!USE - Ergonomie des Interfaces Homme Machine',
'form' => $form
));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment