admin_contacts.php 4.04 KB
<?php
/*
*
*	форма обратной связи с администрацией сайта
*	
*/

class admin_contacts{
	private $error = false;
	private $act = 'index';
	private $JsHttpRequest = false;
	
	public function __construct(){
	global $MAIN_PAGE;
		define('M_PATH',MAIN_SOURCE_PATH.'/modules/'.$MAIN_PAGE -> dirname() );
		define('M_URL',MAIN_SOURCE_URL.'/modules/'.$MAIN_PAGE -> dirname() );
		define('A_CHARSET', $MAIN_PAGE -> charset() );
		include_once(M_PATH.'/inc/url.php');
		include_once(MAIN_SOURCE_PATH.'/modules/admin/lang/'.MAIN_LANG.'/lang.php');
		include_once(MAIN_SOURCE_PATH.'/inc/class.html.php');
		include(MAIN_SOURCE_PATH.'/ext/ajax/JsHttpRequest.php');
		$this -> JsHttpRequest = new JsHttpRequest( A_CHARSET );
		$this -> act = !empty($_REQUEST['act']) ? $_REQUEST['act'] : $this -> act;
		 $MAIN_PAGE -> set_key($this -> act);
	  $MAIN_PAGE -> set_title( false, 'Обратная связь' );
		
	}
	
	public function get(){
		//sleep(2);
		$func = $this -> act;
		if ( !method_exists($this ,$func) ){
			sys_error(ERROR_404);
		}
		return $this -> $func();
	}
	
	
	  //  форма обратной связи
  private function index($e=''){
	  $t = new PHPTAL( );//
	  $t -> setSnippet('admin','admin_contacts_index');
	  $t -> error = $e;
	  $t -> row = $_POST;
	  $t -> send = false;
	  return $t -> execute();
	}
	
	
	private function send(){
	global $MAIN_PAGE;
	  $name = trim($_POST['name']);
	  if ( empty($name) ){
	      return $this -> index('Ошибка: нужно заполнить поле "Имя"');
	  }
	  if ( false===sys_is_mail($_POST['email']) ){
	      return $this -> index('Ошибка: нужно заполнить поле "E-Mail"');
	  }
	  $title = trim($_POST['title']);
	  if ( empty($title) ){
	      return $this -> index('Ошибка: нужно заполнить поле "Тема"');
	  }
	  $message = trim($_POST['message']);
	  if ( empty($message) ){
	      return $this -> index('Ошибка: нужно заполнить поле "Сообщение"');
	  }
	  $status = trim($_POST['type']); 
	  //  отправка сообщения
	  include_once(MAIN_SOURCE_PATH.'/inc/class.mail.php');
	  $m =  mail::load('feedback');
	  $m -> set('name',$_POST['name']);
	  $m -> set('email',$_POST['email']);
	  $m -> set('title',$_POST['title']);
	  $m -> set('message',$_POST['message']);
	  $m -> set('status',$status);
	  $m -> send_mail(  $MAIN_PAGE -> config('sys_mail') );
	     
	  $t = new PHPTAL();
	  $t -> send = true;
	  $t -> setSnippet('admin','admin_contacts_index');
	  return $t -> execute();
	}
		/*		AJAX	*/
		
	
	
	private function sendAjax(){
	global $MAIN_PAGE;
		
	  $name = trim($_POST['name']);
	  try{
	  	if ( empty($name) ){
	      throw new Exception('Ошибка: нужно заполнить поле "Имя"');
	  	}
		  if ( false===sys_is_mail($_POST['email']) ){
		    throw new Exception('Ошибка: нужно заполнить поле "E-Mail"');
		  }
		 /* $title = trim($_POST['title']);
		  if ( empty($title) ){
		    throw new Exception('Ошибка: нужно заполнить поле "Тема"');
		  }*/
		  $message = trim($_POST['message']);
		  if ( empty($message) ){
		    throw new Exception('Ошибка: нужно заполнить поле "Сообщение"');
		  }
		  $status = trim($_POST['type']); 
		  //  отправка сообщения
		  include_once(MAIN_SOURCE_PATH.'/inc/class.mail.php');


		  if (false===$m =  mail::load('feedback') ){
		  	throw new Exception('Ошибка: нет шаблона feedback');
		  }

		  $m -> set('name',$_POST['name']);
		  $m -> set('email',$_POST['email']);
		  $m -> set('title',$_POST['title']);
		  $m -> set('message',$_POST['message']);
		  $m -> set('status',$status);
		 
		  if ( false===$m -> send_mail(  $MAIN_PAGE -> config('sys_mail') ) ){
		  		HL::ajaxError( 'Сообщение не отправлено: '.$m -> ErrorInfo );
		  }

		  HL::ajaxError('Сообщение отправлено');
	  }catch( Exception $e){
	  	HL::ajaxError($e -> getMessage());
	  }
	 	exit();
	}
	
	
	
	
		
}

?>