Example #1
0
	function contact () {
		
		if ($_GET['sent']) {
			return $this->page('contact', array('sent' => True));
		}
		
		$f = new Form();
		$f->add_fields(array(
			'name' => new CharField('Name', array('length' => 100)),
			'email' => new CharField('E-mail', array('length' => 100)),
			'message' => new TextField('Message'),
		));
		
		$context = array(
			'contact_form' => $f,
		);
		
		if ($_SERVER['REQUEST_METHOD'] == 'POST') {
			
			$f->input($_POST);
			
			if ( !($_POST['name'] && $_POST['email'] && $_POST['message']) ) {
				$context['error'] = 'All fields are required. Please complete the form.';
			}
			elseif (!validate_email($_POST['email'])) {
				$context['error'] = 'Invalid e-mail address.';
			}
			else {
				
				// Get e-mail address from the Settings app
				$to = Frix::app('settings')->get('contact_email');
				
				// Send the e-mail
				$ok = send_mail('Contact', $f->get_message(), $f->get_email(), $to);
				
				// Error sending the message?
				if (!$ok) {
					$context['error'] = 'Couldn\'t send message, please try again later.';
				}
				else {
					redir('./?sent=1');
				}
				
			}
			
		}
		
		return $this->page('contact', $context);
		
	}