loadLanguage(array('public_listing_reviews','email_templates')); if($PMDR->getConfig('reviews_require_login')) { $PMDR->get('Authentication')->authenticate(array('error_message'=>$PMDR->getLanguage('public_listing_reviews_login_error'))); } if(!$listing = $PMDR->get('Listings')->getRow($_GET['id'])) { redirect(BASE_URL); } 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->setAdd('page_title',$PMDR->getLanguage('public_listing_reviews_add')); $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_reviews_add'))); $template_content = $PMDR->getNew('Template',PMDROOT.TEMPLATE_PATH.'/listing_reviews_add.tpl'); $form = $PMDR->getNew('Form'); if(!LOGGED_IN) { $form->addField('name','text',array('label'=>$PMDR->getLanguage('public_listing_reviews_name'),'fieldset'=>'input_default')); } $form->addField('title','text',array('label'=>$PMDR->getLanguage('public_listing_reviews_title'),'fieldset'=>'input_default')); $form->addField('rating','stars',array('label'=>$PMDR->getLanguage('public_listing_reviews_rating'),'fieldset'=>'input_default','value'=>0)); $form->addField('review','textarea',array('label'=>$PMDR->getLanguage('public_listing_reviews_review'),'fieldset'=>'input_default','counter'=>$PMDR->getConfig('review_size'))); $custom_fields = $PMDR->get('Fields')->addToForm($form,'reviews',array('fieldset'=>'input_default','admin_only'=>false)); if($PMDR->getConfig('reviews_captcha')) { $form->addField('security_code','security_image',array('label'=>$PMDR->getLanguage('public_listing_reviews_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('title',new Validate_NonEmpty()); $form->addValidator('review',new Validate_NonEmpty()); $form->addValidator('rating',new Validate_NonEmpty(false)); if($form->wasSubmitted('submit')) { $data = $form->loadValues(); if($PMDR->get('Session')->get('user_id')) { if($db->GetOne("SELECT COUNT(*) FROM ".T_REVIEWS." WHERE user_id=? AND listing_id=?",array($PMDR->get('Session')->get('user_id'),$listing['id']))) { $form->addError($PMDR->getLanguage('public_listing_reviews_add_error_user')); } } if(!$form->validate()) { $PMDR->addMessage('error',$form->parseErrorsForTemplate()); } else { $data['review'] = substr($data['review'], 0, $PMDR->getConfig('review_size')); $data['listing_id'] = $listing['id']; if($data['user_id'] = $PMDR->get('Session')->get('user_id')) { $user = $PMDR->get('Users')->getRow($data['user_id']); } else { $data['user_id'] = NULL; } $data['status'] = $PMDR->getConfig('reviews_status'); if($PMDR->get('Session')->get('user_id') AND $data['rating_id'] = $PMDR->get('DB')->GetOne("SELECT id FROM ".T_RATINGS." WHERE listing_id=? AND user_id=? LIMIT 1",array($data['listing_id'], $PMDR->get('Session')->get('user_id')))) { $PMDR->get('Ratings')->update(array('rating'=>$data['rating'],'listing_id'=>$data['listing_id'],'user_id'=>$PMDR->get('Session')->get('user_id'),'ip_address'=>get_ip_address()), $data['rating_id']); } else { $data['rating_id'] = $PMDR->get('Ratings')->insert(array('rating'=>$data['rating'],'listing_id'=>$data['listing_id'],'ip_address'=>get_ip_address())); } $data['review_id'] = $PMDR->get('Reviews')->insert($data); if($user) { $PMDR->get('Email_Templates')->send('listing_review_submitted',array('to'=>$user['user_email'],'user_id'=>$user['id'],'review_id'=>$data['review_id'])); } if($PMDR->getConfig('reviews_status') == 'active') { $PMDR->get('Email_Templates')->send('listing_review_submitted_notification',array('to'=>$listing['user_id'],'review_id'=>$data['review_id'])); } $PMDR->get('Email_Templates')->send('admin_listing_review_submitted',array('review_id'=>$data['review_id'])); $PMDR->addMessage('success',$PMDR->getLanguage('public_listing_reviews_submitted'),'insert'); redirect($PMDR->get('Listings')->getURL($listing['id'],$listing['friendly_url'])); } } $template_content->set('form',$form); $template_content->set('custom_fields',$custom_fields); $template_content->set('listing_url',$PMDR->get('Listings')->getURL($listing['id'],$listing['friendly_url'])); $template_content->set('listing',$listing); if(!LOGGED_IN) { $template_content->set('log_in_url',BASE_URL.MEMBERS_FOLDER.'index.php?from='.urlencode_url(URL)); } include(PMDROOT.'/includes/template_setup.php');