File: D:/HostingSpaces/SBogers10/spire.komma-mediadesign.nl/wwwroot/mvc/controllers/c_newsletter.php
<?php
require DOCUMENT_ROOT . 'mvc/models/form.class.php';
/*
* Set Data
*/
$this->setData('page_title', 'Newsletter | Media | '.SITE_NAME);
/*
* Set Breadcrump
*/
$bc = new Breadcrump();
$bc->add('home',SITE_ROOT);
$bc->add('media',SITE_ROOT.'media/news/' . LATEST_NEWSITEM . '/');
$bc->add('newsletter',SITE_ROOT.'media/newsletter/');
$output = $bc->get();
$this->setData('breadcrump', $output);
/* Create Form */
$formName = 'newsletterForm';
$Form = new Form($formName);
$fields = array();
/*
* Create Fields
*/
$Field = new Form_Field('Country');
$Field->setType('countryList');
$Field->addValidation('required');
$fields[] = $Field;
$Field = new Form_Field('First Name');
$Field->addValidation('required');
$fields[] = $Field;
$Field = new Form_Field('Middle Name');
$fields[] = $Field;
$Field = new Form_Field('Last Name');
$Field->addValidation('required');
$fields[] = $Field;
$Field = new Form_Field('E-mail');
$Field->addValidation(array('required','email'));
$fields[] = $Field;
//$Field = new Form_Field('reCAPTCHA');
//$Field->setType('recaptcha');
//$Field->addValidation('recaptcha');
//$fields[] = $Field;
foreach($fields as $Field)
{
$Field->addClass('resetValue');
$Field->setFormName($formName);
$Form->addField($Field);
}
/*
* check if submitted
*/
if(isset($_POST[$formName . '_firstName']))
{
// save in session
foreach($fields as $Field)
{
$data = $Field->get();
$key = $formName . '_' . $data['name'];
if(isset($_POST[$key])) $_SESSION[$formName][$data['name']] = $_POST[$key];
}
if($Form->validate())
{
$db = new DatabaseHandler();
$db->setTableName('media_newsletter');
$data = array();
foreach($fields as $Field)
{
$info = $Field->get();
$data[$info['name']] = $_SESSION[$formName][$info['name']];
}
$data['timest'] = time();
$data['x2'] = X2;
$db->setData($data);
if($db->insert())
{
$_SESSION['success'] = '<p>Thank you for subscribing.</p>';
}
else
{
$_SESSION['success'] = '<p>Something went wrong, please try again or contact us.</p>';
}
}
$this->redirect(SITE_ROOT . 'media/newsletter/');
}
/*
* set values
*/
$Form->clearFields();
foreach($fields as $Field)
{
$Field->defaultValue();
$Form->addField($Field);
}
/*
* Submit button
*/
$Form->addSubmit('subscribe');
/*
* Display Form
*/
if(isset($_SESSION['success']))
{
$this->setData('formTitle','Thank you');
$this->setData('formDesc','');
$this->setData('formOutput',$_SESSION['success']);
unset($_SESSION['success']);
unset($_SESSION[$formName]);
}
else
{
$this->setData('formTitle','Subscribe for our newsletter');
$this->setData('formDesc','');
$formOutput = $Form->render();
$this->setData('formOutput',$formOutput);
}
/*
* Unset errors after displaying
*/
unset($_SESSION[$formName . '_errors']);