Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
491 changes: 490 additions & 1 deletion README.md

Large diffs are not rendered by default.

43 changes: 26 additions & 17 deletions examples/form2email-mandrill.php → examples/advanced.php
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
<?php

// enable errors => debug mode.
ini_set('display_errors', 1);
error_reporting(E_ALL);

// init autoload.
require __DIR__ . '/../vendor/autoload.php';

Expand All @@ -16,52 +12,62 @@
'fields' => [
'name' => ['required'],
'email' => ['required', 'email'],
'subject' => ['required'],
'message' => [
'required',
['lengthMin', 5]
],
'cv_file' => [
'cv' => [ // this is file field.
[
'required',
'message' => 'Please upload {field}',
],
[
'file',
['jpeg', 'jpg', 'png'], // types.
2000000, // size limit 2 MB.
['jpeg', 'jpg', 'png', 'pdf'], // types.
2000000, // size limit 2 MB.
'message' => '{field} should be up to 2MB and allows only file types jpeg, png.',
],
],
'links.*' => ['url'],
], // according to Valitron doc for mapFieldsRules.
'labels' => [
'name' => 'Name',
'email' => 'Email address'
'email' => 'Email address',
'message' => 'About you',
'cv' => 'CV',
'links.*' => 'Links',
] // according to Valitron doc.
];

// Mandrill config.
$mailerConfig = [
'mailer' => MailHandler::USE_MANDRILL, // (or USE_POSTMARKAPP, USE_MANDRILL)
'apiKey' => '_5mPSvb39BQqnA7G_dOaAA',
'mailer' => MailHandler::USE_PHPMAILER,
'host' => 'SMTP HOST', // set your smtp host.
'user' => 'YOUR EMAIL', // set email.
'password' => 'YOUR PASSWORD', // set password.
'protocol' => 'tls', // 'tls', 'ssl' or FALSE for not secure protocol/
'port' => 587, // your port.

'attachmentsSizeLimit' => 8000000, // around 8MB.
];

// File manager config.
$fileManager = new FileManager([
'uploadPath' => __DIR__ . '/attachments',
'uploadUrl' => 'http://MY-DOMAIN.COM/attachments',
]);

$message = [
'from' => ['hello@justcoded.co.uk' => 'FROM NAME'],
'to' => ['kostant21@yahoo.com' => 'TO NAME'],
// 'cc' => ['email' => 'name'],
// 'bcc' => ['email' => 'name'],
'from' => ['FROM.EMAIL@DOMAIN.COM' => 'FROM NAME'], // set correct FROM.
'to' => ['TO.EMAIL@DOMAIN.COM' => 'TO NAME'], // set correct TO.
'cc' => ['CC@DOMAIN.COM' => 'CC NAME'],
'bcc' => ['BCC@DOMAIN.COM'],

'subject' => 'Contact request from {name}',
'bodyTemplate' => __DIR__ . '/template-html.php',
'altBodyTemplate' => __DIR__ . '/template-plain.php',
'attachments' => $fileManager->upload([
'cv_file', 'image_file'
'cv',
])
];

Expand All @@ -73,4 +79,7 @@
$formHandler->process();
}

echo json_encode($formHandler->response());
// write errors and return back.
setcookie('advanced_response', $formHandler->response());
header('Location: index.php');
exit;
56 changes: 56 additions & 0 deletions examples/basic.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
<?php

// init autoload.
require __DIR__ . '/../vendor/autoload.php';

use JustCoded\FormHandler\FormHandler;
use JustCoded\FormHandler\Handlers\MailHandler;
use JustCoded\FormHandler\DataObjects\MailMessage;

$validationRules = [
'fields' => [
'name' => ['required'],
'email' => ['required', 'email'],
'message' => [
'required',
['lengthMin', 5]
],
], // according to Valitron doc for mapFieldsRules.
'labels' => [
'name' => 'Name',
'email' => 'Email address',
'message' => 'Message',
] // according to Valitron doc.
];

// SMTP config.
$mailerConfig = [
'mailer' => MailHandler::USE_PHPMAILER,
'host' => 'SMTP HOST', // set your smtp host.
'user' => 'YOUR EMAIL', // set email.
'password' => 'YOUR PASSWORD', // set password.
'protocol' => 'tls', // 'tls', 'ssl' or FALSE for not secure protocol/
'port' => 587, // your port.
];

// Message settings.
$messageConfig = [
'from' => ['FROM.EMAIL@DOMAIN.COM' => 'FROM NAME'], // set correct FROM.
'to' => ['TO.EMAIL@DOMAIN.COM' => 'TO NAME'], // set correct TO.
'subject' => 'Contact request from {name}',
'bodyTemplate' => __DIR__ . '/template-html.php',
'altBodyTemplate' => __DIR__ . '/template-plain.php',
];

// Run processing.
$mailer = new MailHandler($mailerConfig, new MailMessage($messageConfig));
$form = new FormHandler($validationRules, $mailer);

if ($form->validate($_POST)) {
$form->process();
}

// write errors and return back.
setcookie('basic_response', $form->response());
header('Location: index.php');
exit;
80 changes: 0 additions & 80 deletions examples/form2email-basic.php

This file was deleted.

Loading