bebeboutik/modules/contactform/Process.php
Alexandre Simonet e3ce8e7869 Refactor
2016-02-24 11:03:00 +01:00

140 lines
4.6 KiB
PHP

<?php
class Process
{
private $data;
private $mail_dir;
private $to;
public function __construct()
{
$this->mail_dir = dirname(__FILE__);
$this->to = 'simonet@antadis.com';
}
public function addProvider($post)
{
$this->data = $post;
$errors = [];
$isCorrect = $this->validate(Contactform::TYPE_PROVIDER);
if (!$isCorrect) {
$errors[] = 'Tous les champs ne sont pas remplis';
} else {
$query = Db::getInstance()->autoExecute(_DB_PREFIX_.'contactform', [
'brand' => pSQL($this->data['brand']),
'compagny' => pSQL($this->data['compagny']),
'lastname' => pSQL($this->data['lastname']),
'firstname' => pSQL($this->data['firstname']),
'function' => pSQL($this->data['function']),
'email1' => pSQL($this->data['email1']),
'email2' => pSQL($this->data['email2']),
'phone1' => pSQL($this->data['phone1']),
'phone2' => pSQL($this->data['phone2']),
'purpose' => pSQL($this->data['purpose']),
'content' => pSQL($this->data['content']),
'type' => Contactform::TYPE_PROVIDER
], 'INSERT');
if (!$query) {
$errors[] = "Une erreur s'est produite. Votre message n'a pas été envoyé";
} else {
Mail::Send(
intval($cookie->id_lang),
'provider',
'sujet',
$this->data,
$this->to,
NULL,
NULL,
NULL,
NULL,
NULL,
$this->mail_dir
);
}
}
if (!empty($errors)) {
return $errors;
}
return true;
}
public function addPress($post)
{
$this->data = $post;
$errors = [];
$isCorrect = $this->validate(Contactform::TYPE_PRESS);
if (!$isCorrect) {
$errors[] = 'Tous les champs ne sont pas remplis';
} else {
$query = Db::getInstance()->autoExecute(_DB_PREFIX_.'contactform', [
'compagny' => pSQL($this->data['compagny']),
'lastname' => pSQL($this->data['lastname']),
'firstname' => pSQL($this->data['firstname']),
'function' => pSQL($this->data['function']),
'email1' => pSQL($this->data['email1']),
'email2' => pSQL($this->data['email2']),
'phone1' => pSQL($this->data['phone1']),
'phone2' => pSQL($this->data['phone2']),
'content' => pSQL($this->data['content']),
'type' => Contactform::TYPE_PRESS
], 'INSERT');
if (!$query) {
$errors[] = "Une erreur s'est produite. Votre message n'a pas été envoyé";
} else {
Mail::Send(
intval($cookie->id_lang),
'press',
'sujet',
$this->data,
$this->to,
NULL,
NULL,
NULL,
NULL,
NULL,
$this->mail_dir
);
}
}
if (!empty($errors)) {
return $errors;
}
return true;
}
private function validate($type)
{
switch ($type) {
case Contactform::TYPE_PROVIDER:
return (!empty($this->data['brand'])
&& !empty($this->data['compagny'])
&& !empty($this->data['lastname'])
&& !empty($this->data['firstname'])
&& !empty($this->data['function'])
&& !empty($this->data['email1'])
&& !empty($this->data['phone1'])
&& !empty($this->data['purpose'])
&& !empty($this->data['content']));
break;
case Contactform::TYPE_PRESS:
return (!empty($this->data['compagny'])
&& !empty($this->data['lastname'])
&& !empty($this->data['firstname'])
&& !empty($this->data['function'])
&& !empty($this->data['email1'])
&& !empty($this->data['phone1'])
&& !empty($this->data['content']));
break;
default:
return false;
break;
}
}
}