// // ------------------------------------------------------------------------- // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // You may not change or alter any portion of this comment or credits // // of supporting developers from this source code or any supporting // // source code which is considered copyrighted (c) material of the // // original comment or credit authors. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // ------------------------------------------------------------------------ // include "header.php"; include_once "class/contactclass.php"; global $config_handler, $xoopsUser, $xoopsConfig; $contactclass = new ContactClass($config_handler, $xoopsUser, $xoopsConfig); function drawContactForm( $cc ) { global $xoopsConfig, $xoopsOption, $xoopsTpl, $xoopsUser, $xoopsUserIsAdmin, $xoopsLogger; $contactclass = $cc; $xoopsOption['template_main'] = 'contact_contactusform.html'; include XOOPS_ROOT_PATH."/header.php"; include_once XOOPS_ROOT_PATH."/class/xoopsformloader.php"; // build contact form $contact_form = new XoopsThemeForm($contactclass->getContactHead(), "contactform", "index.php", "post", true); // check for pre-existing error condition if ( $contactclass->getErrorLevel() != 0 ) { $err = $contactclass->getErrorLevel(); $message = _CT_ERROR_CONDITION; if ( $err & _CT_ERROR_BADSECVAL ) { $message .= _CT_ERROR_BADSECVALUE_MSG; } if ( $err & _CT_ERROR_BADEMAIL ) { $message .= _CT_ERROR_BADEMAIL_MSG; } $error_text = new XoopsFormLabel( _CT_ERROR_CONDITIONHEAD, $message ); $contact_form->addElement( $error_text ); } // check to see if there is some intro text to display if ( $contactclass->getContactIntro() != "" ) { $intro_text = new XoopsFormLabel($contactclass->getContactIntroHead(), $contactclass->getContactIntro()); $contact_form->addElement( $intro_text ); } $name_text = new XoopsFormText(_CT_NAME, "usersName", 50, 100, $contactclass->getUserName()); $contact_form->addElement($name_text, true); $email_text = new XoopsFormText(_CT_EMAIL, "usersEmail", 50, 100, $contactclass->getUserEmail()); $contact_form->addElement($email_text, true); if ( $contactclass->collectAddress() == true ) { $address_text = new XoopsFormTextArea(_CT_ADDRESS, "usersAddress", $contactclass->getAddress()); $contact_form->addElement($address_text); } if ( $contactclass->collectURL() == true ) { $url_text = new XoopsFormText(_CT_URL, "usersSite", 50, 100, $contactclass->getURL()); $contact_form->addElement($url_text); } if ( $contactclass->collectICQ() == true ) { $icq_text = new XoopsFormText(_CT_ICQ, "usersICQ", 50, 100, $contactclass->getICQ()); $contact_form->addElement($icq_text); } if ( $contactclass->collectCompany() == true) { $company_text = new XoopsFormText(_CT_COMPANY, "usersCompanyName", 50, 100, $contactclass->getCompany()); $contact_form->addElement($company_text); } if ( $contactclass->collectLocation() == true) { $location_text = new XoopsFormText(_CT_LOCATION, "usersCompanyLocation", 50, 100, $contactclass->getLocation()); $contact_form->addElement($location_text); } if ( $contactclass->sendConfirm() == true) { // draw the checkbox for user to get a confirmation mail $email_v = $contactclass->getUserEmail(); $caption = ( $email_v == "" ? _CT_SENDCONFIRM : sprintf( _CT_SENDCONFIRMEMAIL, $email_v )); $sendconfirm = new XoopsFormCheckBox( _CT_CONFIRM, "userSendConfirm", $contactclass->getSendConfirm(), "userSendConfirm" ); $sendconfirm->addOption( 1, $caption ); $contact_form->addElement( $sendconfirm ); } if ( $contactclass->showDepartment() == true ) { // show a drop down with the correct departments listed $departmentlist = new XoopsFormSelect( $contactclass->getDepartmentTitle(), "userDepartment" ); $departments = $contactclass->getDepartments(); // get array of departments $selDept = $contactclass->getSelectedDepartment(); $cnt = 0; foreach( $departments as $val ) { $valexplode = explode( ',', $val ); $selected = false; if ( $selDept != "" && ( strcmp( $selDept, $valexplode[0] ) == 0 ) ) { // this option is selected $selected = true; } else if ( $selDept == "" && $cnt == 0 ) // if there is none selected and this is the first one { // make it selected $selected = true; } $departmentlist->addOption($valexplode[0]); if ( $selected == true ) { $departmentlist->setValue($valexplode[0]); } $cnt++; } $contact_form->addElement( $departmentlist ); } // add comment area $comment_textarea = new XoopsFormTextArea(_CT_COMMENTS, "usersComments", $contactclass->getUserComments()); $contact_form->addElement($comment_textarea, true); // add more info area if required if ( $contactclass->showMoreInfo() == true ) { // draw container with multi-select check boxes $moreinfo = new XoopsFormCheckBox( $contactclass->getMoreInfoTitle(), "userMoreInfo" ); $moreinfolist = $contactclass->getMoreInfo(); $selmoreinfo = $contactclass->getUserMoreInfo(); foreach( $moreinfolist as $val ) { $moreinfo->addOption( $val ); } // end foreach $moreinfolist $moreinfo->setValue( $selmoreinfo ); $contact_form->addElement($moreinfo); } // add security check if required if ( ( $contactclass->collectSecurity() == true ) && extension_loaded('gd') ) { mt_srand((double)microtime()*10000); $random_num = mt_rand(0, 100000); $security = ""._CT_SECURITY_CODE."  " .""._CT_NO_SPAM.""; // show the security block and input field $security_graphic = new XoopsFormLabel( _CT_SECURITY_CODE, $security ); $contact_form->addElement( $security_graphic ); $type_security = new XoopsFormText( _CT_SECURITY_TYPE, "securityType", 10, 6 ); $contact_form->addElement( $type_security, true ); $security_hidden = new XoopsFormHidden( "securityHidden", $random_num ); $contact_form->addElement( $security_hidden ); } $submit_button = new XoopsFormButton("", "submit", _CT_SUBMIT, "submit"); $contact_form->addElement($submit_button); $contact_form->assign($xoopsTpl); include XOOPS_ROOT_PATH."/footer.php"; } if (empty($_POST['submit']) | !$GLOBALS['xoopsSecurity']->check()) { drawContactForm( $contactclass ); } else { extract($_POST); $myts =& MyTextSanitizer::getInstance(); // populate contactclass with passed in vars $contactclass->setUserName(isset( $usersName ) ? $myts->stripSlashesGPC($usersName) : ""); $contactclass->setUserEmail(isset( $usersEmail ) ? $myts->stripSlashesGPC($usersEmail) : ""); $contactclass->setAddress(isset( $usersAddress ) ? $myts->stripSlashesGPC($usersAddress) : ""); $contactclass->setURL(isset($usersSite) ? $usersSite : ""); $contactclass->setICQ(isset($usersICQ) ? $usersICQ : ""); $contactclass->setCompany(isset( $usersCompanyName) ? $myts->stripSlashesGPC($usersCompanyName) : ""); $contactclass->setLocation(isset( $usersCompanyLocation) ? $myts->stripSlashesGPC($usersCompanyLocation) : ""); $contactclass->setSendConfirm(isset( $userSendConfirm ) ? $userSendConfirm : '0' ); $contactclass->setSelectedDepartment(isset( $userDepartment ) ? $userDepartment : $contactclass->getSelectedDepartment()); $contactclass->setUserComments(isset($usersComments) ? $usersComments: ""); $contactclass->setUserMoreInfo( isset($userMoreInfo) ? $userMoreInfo : array() );// set user more info - it's an array, so we have to figure it out first!!! $do_check = false; if ( ( $contactclass->collectSecurity() == true ) && extension_loaded('gd') ) { $do_check = true; } $datekey = date("F j"); $rcode = hexdec(md5($_SERVER['HTTP_USER_AGENT'].$securityHidden.$contactclass->getSiteKey().$datekey)); $code = substr($rcode, 2, 6); $errval = _CT_ERROR_NONE; // check seccode if ( $code != $securityType && $do_check == true ) { $errval |= _CT_ERROR_BADSECVAL; } // check for bad email if ( $contactclass->isValidEmail() == false ) { // make sure you add on top of any existing errorlevel by & $errval |= _CT_ERROR_BADEMAIL; } else if ( $contactclass->isDeepCheck() == true ) { if ( $contactclass->deepCheckEmail() == false ) { $errval |= _CT_ERROR_BADEMAIL; } } $contactclass->setErrorLevel($errval); if ( $contactclass->getErrorLevel() != 0 ) { // redisplay form drawContactForm( $contactclass ); } else { $usersComments = $myts->stripSlashesGPC($_POST['usersComments']); $adminMessage = sprintf(_CT_SUBMITTED,$contactclass->getUserName()); $adminMessage .= "\n"; $adminMessage .= ""._CT_EMAIL." $usersEmail\n"; if ( $contactclass->collectAddress() == true ) { $adminMessage .= ""._CT_ADDRESS."\n".$contactclass->getAddress()."\n"; } if ( $contactclass->collectURL() == true) { $adminMessage .= ""._CT_URL."\n".$contactclass->getURL()."\n"; } if ( $contactclass->collectICQ() == true ) { $adminMessage .= ""._CT_ICQ."\n".$contactclass->getICQ()."\n"; } if ( $contactclass->collectCompany() == true ) { $adminMessage .= _CT_COMPANY. "\n".$contactclass->getCompany()."\n"; } if ( $contactclass->collectLocation() == true ) { $adminMessage .= _CT_LOCATION."\n".$contactclass->getLocation()."\n"; } $adminMessage .= _CT_COMMENTS."\n"; $adminMessage .= "\n$usersComments\n\n"; if ( $contactclass->showMoreInfo() == true ) { if ( count( $contactclass->getUserMoreInfo() ) > 0 ) { $temp = $contactclass->getMoreInfoTitle()." :\n"; $adminMessage .= $temp; $moreinfoMessage = $temp; foreach( $contactclass->getUserMoreInfo() as $item ) { $temp = "* $item\n"; $adminMessage .= $temp; $moreinfoMessage .= $temp; } } } $adminMessage .= "\n".$_SERVER['HTTP_USER_AGENT']."\n"; $subject = $xoopsConfig['sitename']." - ".$contactclass->getContactHead(); $toemail = $xoopsConfig['adminmail']; if ( $contactclass->showDepartment() == true ) { $selDept = $contactclass->getSelectedDepartment(); $departments = $contactclass->getDepartments(); foreach( $departments as $val ) { $valexplode = explode( ',', $val ); $selected = false; if ( strcmp( $selDept, $valexplode[0] ) == 0 ) { // this option is selected $selected = true; } if ( $selected == true ) { $subject = $xoopsConfig['sitename']." - ".$selDept; $toemail = $valexplode[1]; } } } $xoopsMailer =& getMailer(); $xoopsMailer->useMail(); $xoopsMailer->setToEmails($toemail); $xoopsMailer->setFromEmail($contactclass->getUserEmail()); $xoopsMailer->setFromName($contactclass->getUserName()); $xoopsMailer->setSubject($subject); $xoopsMailer->setBody($adminMessage); $xoopsMailer->send(); $messagesent = sprintf(_CT_MESSAGESENT,$xoopsConfig['sitename'])."
".$contactclass->getContactThankYou().""; if ( $contactclass->getSendConfirm() == '1' ) { $conf_subject = $contactclass->getContactThankYou(); $userMessage = sprintf(_CT_HELLO,$contactclass->getUserName()); $userMessage .= "\n\n"; $userMessage .= sprintf(_CT_THANKYOUCOMMENTS,$xoopsConfig['sitename']); $userMessage .= "\n"; $userMessage .= sprintf(_CT_SENTTOWEBMASTER,$contactclass->getSelectedDepartment()); $userMessage .= "\n"; $userMessage .= _CT_YOURMESSAGE."\n"; $userMessage .= "\n$usersComments\n\n"; $userMessage .= "--------------\n"; $userMessage .= "".$subject."\n"; $userMessage .= "\n".$moreinfoMessage."\n"; $xoopsMailer =& getMailer(); $xoopsMailer->useMail(); $xoopsMailer->setToEmails($contactclass->getUserEmail()); $xoopsMailer->setFromEmail($contactclass->getUserEmail()); $xoopsMailer->setFromName($xoopsConfig['sitename']); $xoopsMailer->setSubject($conf_subject); $xoopsMailer->setBody($userMessage); $xoopsMailer->send(); $messagesent .= "
".sprintf(_CT_SENTASCONFIRM,$usersEmail); } redirect_header(XOOPS_URL."/index.php",$contactclass->getRedirectTimeout(),$messagesent); } } ?>