00001 <?php 00002 00010 class Contact extends oxUBase 00011 { 00016 protected $_aUserData = null; 00017 00022 protected $_sContactSubject = null; 00023 00028 protected $_sContactMessage = null; 00029 00034 protected $_oCaptcha = null; 00035 00040 protected $_blContactSendStatus = null; 00041 00046 protected $_sThisTemplate = 'contact.tpl'; 00047 00053 protected $_iViewIndexState = VIEW_INDEXSTATE_NOINDEXNOFOLLOW; 00054 00065 public function render() 00066 { 00067 parent::render(); 00068 00069 $this->_aViewData['editval'] = $this->getUserData(); 00070 $this->_aViewData['c_subject'] = $this->getContactSubject(); 00071 $this->_aViewData['c_message'] = $this->getContactMessage(); 00072 00073 //captcha 00074 $this->_aViewData['oCaptcha'] = $this->getCaptcha(); 00075 $this->_aViewData['success'] = $this->getContactSendStatus(); 00076 00077 return $this->_sThisTemplate; 00078 } 00079 00089 public function send() 00090 { 00091 // spam spider prevension 00092 $sMac = oxConfig::getParameter( 'c_mac' ); 00093 $sMacHash = oxConfig::getParameter( 'c_mach' ); 00094 $oCaptcha = oxNew('oxCaptcha'); 00095 00096 $aParams = oxConfig::getParameter( 'editval' ); 00097 $sSubject = oxConfig::getParameter( 'c_subject' ); 00098 $sBody = oxConfig::getParameter( 'c_message' ); 00099 00100 // checking email address 00101 if ( !oxUtils::getInstance()->isValidEmail( $aParams['oxuser__oxusername'] ) ) { 00102 oxUtilsView::getInstance()->addErrorToDisplay( 'EXCEPTION_INPUT_NOVALIDEMAIL' ); 00103 return false; 00104 } 00105 00106 if ( !$oCaptcha->pass($sMac, $sMacHash ) ) { 00107 // even if there is no exception, use this as a default display method 00108 oxUtilsView::getInstance()->addErrorToDisplay( 'EXCEPTION_INPUT_NOTALLFIELDS' ); 00109 return false; 00110 } 00111 00112 if ( !$aParams['oxuser__oxfname'] || !$aParams['oxuser__oxlname'] || !$aParams['oxuser__oxusername'] || !$sSubject ) { 00113 // even if there is no exception, use this as a default display method 00114 oxUtilsView::getInstance()->addErrorToDisplay( 'EXCEPTION_INPUT_NOTALLFIELDS' ); 00115 return false; 00116 } 00117 00118 $sMessage = oxLang::getInstance()->translateString( 'CONTACT_FROM' )." ".$aParams['oxuser__oxsal']." ".$aParams['oxuser__oxfname']." ".$aParams['oxuser__oxlname']."(".$aParams['oxuser__oxusername'].")<br /><br />"; 00119 $sMessage .= nl2br( $sBody ); 00120 00121 $oEmail = oxNew( 'oxemail' ); 00122 if ( $oEmail->sendContactMail( $aParams['oxuser__oxusername'], $sSubject, $sMessage ) ) { 00123 $this->_blContactSendStatus = 1; 00124 } 00125 } 00126 00132 public function getUserData() 00133 { 00134 if ( $this->_oUserData === null ) { 00135 $this->_oUserData = oxConfig::getParameter( 'editval' ); 00136 } 00137 return $this->_oUserData; 00138 } 00139 00145 public function getContactSubject() 00146 { 00147 if ( $this->_sContactSubject === null ) { 00148 $this->_sContactSubject = oxConfig::getParameter( 'c_subject' ); 00149 } 00150 return $this->_sContactSubject; 00151 } 00152 00158 public function getContactMessage() 00159 { 00160 if ( $this->_sContactMessage === null ) { 00161 $this->_sContactMessage = oxConfig::getParameter( 'c_message' ); 00162 } 00163 return $this->_sContactMessage; 00164 } 00165 00171 public function getCaptcha() 00172 { 00173 if ( $this->_oCaptcha === null ) { 00174 $this->_oCaptcha = oxNew('oxCaptcha'); 00175 } 00176 return $this->_oCaptcha; 00177 } 00178 00184 public function getContactSendStatus() 00185 { 00186 return $this->_blContactSendStatus; 00187 } 00188 }