Current File : /home/karenpetzb/application/modules/default/controllers/ContactController.php |
<?php
class ContactController extends Modules_Default_Controllers_MainController
{
public function init()
{
$this->view->baseUrl = $this->getBaseUrl();
}
public function indexAction()
{
$isAjaxResponse = false;
if ($this->_request->isPost())
{
$this->sendEmail();
$isAjaxResponse = true;
} else if (isset($_GET["required"]) || isset($_GET["type"]) || isset($_GET["value"])) {
$this->validateData();
$isAjaxResponse = true;
}
if ($isAjaxResponse) {
$layout = Zend_Layout::getMvcInstance();
$layout->disableLayout();
$this->render('empty');
}
}
// Validates data and sending e-mail
function sendEmail()
{
$filter = new Zend_Filter();
$filter ->addFilter(new Zend_Filter_StripTags())
->addFilter(new Zend_Filter_StringTrim());
$validator = new Zend_Validate();
$validator -> addValidator(new Zend_Validate_NotEmpty());
$params = $this->_request->getPost();
$output = '';
$error = 0;
if(!$validator->isValid($params['name']))
{
$output .= '<p>Ins�rer votre nom</p>';
$error = 1;
}
$validatorEmail = new Zend_Validate_EmailAddress();
if(!$validator->isValid($params['email']))
{
$output .= '<p>Ins�rer votre e-mail</p>';
$error = 1;
}
elseif(!$validatorEmail->isValid($params['email']))
{
$output .= '<p>Mauvais e-mail</p>';
$error = 1;
}
if(!$validator->isValid($params['message']))
{
$output .= '<p>Ins�rer votre message</p>';
$error = 1;
}
if($error)
{
echo '<blockquote class="error margin_1line margin_bottom_1line">'.utf8_encode($output).'</blockquote>';
}
else
{
$this->trySendEmail($params, 0);
}
}
function trySendEmail($params, $count) {
$to = $this->contact_Mail;
$subject = "Message depuis la gallery";
$mbody = "
Emetteur:
".$params['name']."
".$params['email']."
Message:
".$params['message']."
";
try {
$mail = new Zend_Mail();
$mail->setBodyHtml($mbody);
$mail->setFrom(strip_tags($params['email']), $params['name']);
$mail->addTo($to);
$mail->setSubject($subject);
$mail->send();
echo '<blockquote class="success margin_1line margin_bottom_1line">'.utf8_encode('E-mail envoy�').'</blockquote>';
} catch (Zend_Exception $e) {
if ($count <= 3) {
$count += 1;
$this->trySendEmail($params, $count);
} else {
echo '<blockquote class="error margin_1line margin_bottom_1line">'.utf8_encode('Une erreur est survenue ... Veuillez r�essayer.').'</blockquote>';
$this->log($e->getMessage(),'err');
}
}
}
function validateData() {
$required = $this->_request->getParam('required');
$type = $this->_request->getParam('type');
$value = $this->_request->getParam('value');
$this->validateRequired($required, $value, $type);
switch ($type) {
case 'number':
$this->validateNumber($value);
break;
case 'alphanum':
$this->validateAlphanum($value);
break;
case 'alpha':
$this->validateAlpha($value);
break;
case 'date':
$this->validateDate($value);
break;
case 'email':
$this->validateEmail($value);
break;
case 'url':
$this->validateUrl($value);
case 'all':
$this->validateAll($value);
break;
}
}
// The function to check if a field is required or not
function validateRequired($required, $value, $type) {
if($required == "required") {
// Check if we got an empty value
if($value == "") {
echo "false";
exit();
}
} else {
if($value == "") {
echo "none";
exit();
}
}
}
// Validation of an Email Address
function validateEmail($value) {
$validatorEmail = new Zend_Validate_EmailAddress();
if($validatorEmail->isValid($value)) {
echo "true";
} else {
echo "false";
}
}
// Validation of a date
function validateDate($value) {
if(ereg("^(([1-9])|(0[1-9])|(1[0-2]))\/(([0-9])|([0-2][0-9])|(3[0-1]))\/(([0-9][0-9])|([1-2][0,9][0-9][0-9]))$", $value, $regs)) {
echo "true";
} else {
echo "false";
}
}
// Validation of an URL
function validateUrl($value) {
if(ereg("^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*[^\.\,\)\(\s]$", $value, $regs)) {
echo "true";
} else {
echo "false";
}
}
// Validation of characters
function validateAlpha($value) {
if(ereg("^[a-zA-Z]+$", $value, $regs)) {
echo "true";
} else {
echo "false";
}
}
// Validation of characters and numbers
function validateAlphanum($value) {
if(ereg("^[a-zA-Z0-9]+$", $value, $regs)) {
echo "true";
} else {
echo "false";
}
}
// Validation of numbers
function validateNumber($value) {
if(ereg("^[0-9]+$", $value, $regs)) {
echo "true";
} else {
echo "false";
}
}
// Validation of numbers
function validateAll($value) {
echo "true";
}
}
?>