nikitakiselev / lpforms
Easy create landing page forms
v1.0
2016-04-13 14:27 UTC
Requires
- php: >=5.5
- phpmailer/phpmailer: ^5.2
- phpunit/php-text-template: ^1.2
- vlucas/valitron: ^1.2
This package is not auto-updated.
Last update: 2025-01-05 04:49:52 UTC
README
Easy create landing page forms
composer require nikitakiselev/lpforms
bower install nikitakiselev/ajax-forms
How to use
Use with https://github.com/nikitakiselev/ajax-forms
File structure
|- bower_components
| |- ajax-forms
| |- AjaxForm.js
|
|- emails
| |- contact_template.tpl.php
|
|- form-handler.php
|- index.html
index.html
<body> <form action="form-handler.php" method="post" id="contact-form"> <input type="hidden" name="form_id" value="contact"/> <input type="hidden" name="foo" value="bar"> <div class="form-group"> <label for="email" class="control-label">Your e-mail</label> <input type="email" id="email" name="email" value="" class="form-control"/> <div class="help-block"></div> </div> <button type="submit">Send Form!</button> </form> <script src="/bower_components/ajax-forms/AjaxForm.js"></script> <script> var contactForm = new AjaxForm('#contact-form'); </script> </body> </html>
form-handler.php
<?php require __DIR__ . '/vendor/autoload.php'; date_default_timezone_set('Europe/Moscow'); $post = $_POST; $formId = isset($post['form_id']) ? $post['form_id'] : null; use Nikitakiselev\LpForms\Form; use Nikitakiselev\LpForms\Mailer; use Nikitakiselev\LpForms\FormHandler; /** * Settings */ $siteName = 'Your site name'; $mailFrom = ['from@mail.com', $siteName]; $mailTo = 'to@mail.com'; /** * Contact form */ $contactFormMailer = new Mailer($mailFrom, $mailTo); $contactFormMailer->setSubject('New request from ' . $siteName); $contactForm = new Form('contact', $post, $contactFormMailer); $contactForm ->addField('email', ['required', 'email']) ->addField('foo', []) ->setFieldNames([ 'email' => 'Your e-mail', 'foo' => 'Foo', ]) ->setMessageBodyTemplate('emails/contact', [ 'form_name' => "Request from site $siteName" ]); $formHandler = new FormHandler(); $formHandler->addForm($contactForm); // Handle form! try { $formHandler->handle($formId); } catch (Exception $exception) { (new \Nikitakiselev\LpForms\ResponseJson())->fail( $exception->getMessage() ); }
emails/contact_template.tpl.php
<p>New form request "{form_name}".</p> <p>Form was sended at: {current_date}</p> <p>Custom field: {foo}</p> <p>Form data:</p> <ul> <li>Email: {email}</li> </ul>