loadLanguage(array('public_listing_email','email_templates')); $PMDR->get('Authentication')->authenticateIP(); if(!$listing = $PMDR->get('Listings')->getRow($_GET['id'])) { $PMDR->get('Error',404); } if(!$listing['email_allow']) { $PMDR->get('Error',404); } if(LOGGED_IN) { $user = $db->GetRow("SELECT user_email, user_first_name, user_last_name FROM ".T_USERS." WHERE id=?",array($_SESSION['user_id'])); } if(trim($listing['header_template_file']) != '' AND file_exists(PMDROOT.TEMPLATE_PATH.$listing['header_template_file'])) { $PMDR->set('header_file',$listing['header_template_file']); } if(trim($listing['footer_template_file']) != '' AND file_exists(PMDROOT.TEMPLATE_PATH.$listing['footer_template_file'])) { $PMDR->set('footer_file',$listing['footer_template_file']); } if(trim($listing['wrapper_template_file']) != '' AND file_exists(PMDROOT.TEMPLATE_PATH.$listing['wrapper_template_file'])) { $PMDR->set('wrapper_file',$listing['wrapper_template_file']); } $PMDR->setAdd('page_title',$listing['title'].' - '.$PMDR->getLanguage('public_listing_email')); $PMDR->setAddArray('breadcrumb',array('link'=>$PMDR->get('Listings')->getURL($listing['id'],$listing['friendly_url']),'text'=>$listing['title'])); $PMDR->setAddArray('breadcrumb',array('link'=>'','text'=>$PMDR->getLanguage('public_listing_email'))); $template_content = $PMDR->getNew('Template',PMDROOT.TEMPLATE_PATH.'/listing_email.tpl'); $form = $PMDR->getNew('Form'); $form->enctype = 'multipart/form-data'; $form->addField('from_name','text',array('label'=>$PMDR->getLanguage('public_listing_email_from_name'),'fieldset'=>'input_default')); $form->addField('from_email','text',array('label'=>$PMDR->getLanguage('public_listing_email_from_email'),'fieldset'=>'input_default')); if(LOGGED_IN) { $form->setFieldAttribute('from_name','value',trim($user['user_first_name'].' '.$user['user_last_name'])); $form->setFieldAttribute('from_email','value',$user['user_email']); } $form->addField('message','textarea',array('label'=>$PMDR->getLanguage('public_listing_email_message'),'fieldset'=>'input_default','counter'=>$PMDR->getConfig('send_message_size'))); $added_fields = $PMDR->get('Fields')->addToForm($form,'send_message',array('fieldset'=>'input_default','filter'=>$listing)); if($PMDR->getConfig('email_attach_size')) { $form->addField('attachment','file',array('label'=>$PMDR->getLanguage('public_listing_email_attachment'),'fieldset'=>'input_default')); $template_content->set('email_attach_size',$PMDR->getConfig('email_attach_size')); } if($PMDR->getConfig('GD_security_send_message')) { $form->addField('security_code','security_image',array('label'=>$PMDR->getLanguage('public_listing_email_security_code'),'fieldset'=>'input_default')); $form->addValidator('security_code',new Validate_Captcha()); } $form->addField('submit','submit',array('label'=>$PMDR->getLanguage('public_submit'),'fieldset'=>'button')); $form->addValidator('from_name',new Validate_NonEmpty()); $form->addValidator('from_email',new Validate_Email(true)); $form->addValidator('message',new Validate_NonEmpty()); $form->addValidator('message',new Validate_Banned_Words()); $form->addValidator('message',new Validate_Banned_URL()); if($form->wasSubmitted('submit')) { $data = $form->loadValues(); if($PMDR->getConfig('email_attach_size') AND $data['attachment']['tmp_name'] != '') { if(filesize($data['attachment']['tmp_name']) / 1024 > $PMDR->getConfig('email_attach_size')) { $form->addError($PMDR->getLanguage('public_listing_email_attachment_error'),'attachment'); } } if($PMDR->getConfig('listing_email_ip_limit') <= $db->GetOne("SELECT COUNT(*) FROM ".T_IP_LIMIT." WHERE type='listing_email' AND ip_address=? AND date > DATE_SUB(NOW(), INTERVAL ".intval($PMDR->getConfig('listing_email_ip_limit_hours'))." HOUR)",array(get_ip_address()))) { $form->addError($PMDR->getLanguage('public_listing_email_ip_limit_error',array($PMDR->getConfig('listing_email_ip_limit'),$PMDR->getConfig('listing_email_ip_limit_hours')))); } if(!$form->validate()) { $PMDR->addMessage('error',$form->parseErrorsForTemplate()); } else { $data['message'] = substr($data['message'], 0, $PMDR->getConfig('send_message_size')); $PMDR->get('Email_Templates')->send('listings_send_email',array('to'=>$listing['mail'],'variables'=>$data,'attachment'=>$data['attachment'],'listing_id'=>$listing['id'])); $PMDR->get('Email_Templates')->send('admin_listings_send_email',array('variables'=>$data,'attachment'=>$data['attachment'],'listing_id'=>$listing['id'])); $db->Execute("UPDATE ".T_LISTINGS." SET email_counter = email_counter+1 WHERE id=?",array($listing['id'])); $db->Execute("INSERT INTO ".T_IP_LIMIT." SET ip_address=?, type='listing_email', date=NOW()",array(get_ip_address())); $PMDR->addMessage('success',$PMDR->getLanguage('public_listing_email_sent')); redirect($PMDR->get('Listings')->getURL($listing['id'],$listing['friendly_url'])); } } $template_content->set('form',$form); $template_content->set('custom_fields',$added_fields); $template_content->set('listing_url',$PMDR->get('Listings')->getURL($listing['id'],$listing['friendly_url'])); $template_content->set('listing',$listing); include(PMDROOT.'/includes/template_setup.php'); ?>