Current File : /home/pacjaorg/public_html/km/components/com_djclassifieds/controllers/profile.php
<?php
/**
 * @package DJ-Classifieds
 * @copyright Copyright (C) DJ-Extensions.com, All rights reserved.
 * @license http://www.gnu.org/licenses GNU/GPL
 * @author url: http://dj-extensions.com
 * @author email contact@dj-extensions.com
 */

defined('_JEXEC') or die;

class DJClassifiedsControllerProfile extends JControllerLegacy
{
	function ask()
	{
		$app = JFactory::getApplication();
		$db = JFactory::getDBO();
		$user = JFactory::getUser();
		$par = $app->getParams('com_djclassifieds');
		$uid = $app->input->getInt('item_id');
		if(!$uid){ // backward compatibility
			$uid = $app->input->getInt('uid');
		}
		$msg = strip_tags($app->input->getStr('ask_message'));
		$send_email = false;

		$app->setUserState('askform_name', $app->input->getStr('ask_name'));
		$app->setUserState('askform_email', $app->input->getStr('ask_email'));
		$app->setUserState('askform_message', $app->input->getStr('ask_message'));
		$app->setUserState('djcf.askform.data', $app->input->post->getArray());

		$profile_user = JFactory::getUser($uid);
		if(!$profile_user->id){
			$app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_WRONG_PROFILE'), 'error');
			$app->redirect(JURI::root());
		}
		$model = $this->getModel('profile');
		$profile = $model->getProfile($uid);
		$profile['user'] = $profile_user;
		
		$profile_uri = DJClassifiedsSEO::getViewUri('profile', array('group_id' => $profile['details'] ? $profile['details']->group_id : null)).'&uid='.DJClassifiedsSEO::getUserSlug($profile_user->id, $profile['name']);
	
		if($par->get('ask_seller_type','0') == 0 && !$user->id){
			DJClassifiedsSEO::redirectLogIn($profile_uri);
		}
	
		$date_last5 = JFactory::getDate('now - '.(int)$par->get('ask_limit_one', 5).' minute')->toSQL();
		$date_lasth = JFactory::getDate('now - 1 hour')->toSQL();
		$user_ip = $app->input->server->getStr('REMOTE_ADDR');
			
		if($user->id){
			$query = "SELECT COUNT(id) FROM #__djcf_profiles_msg WHERE user_from = ".$user->id." AND user_to=".$uid." AND date>".$db->q($date_last5);
			$db->setQuery($query);
			$check = $db->loadResult();
			if($check > 0){
				$app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_ASK_MESSAGE_LIMIT'), 'warning');
				$app->redirect(JRoute::_($profile_uri, false));
			}
		
			if($par->get('ask_limit_hour', 15)){
				$query = "SELECT COUNT(id) FROM #__djcf_profiles_msg WHERE user_from=".$user->id." AND date>".$db->q($date_lasth);
				$db->setQuery($query);
				$check = $db->loadResult();
				if($check > $par->get('ask_limit_hour',15)){
					$app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_ASK_MESSAGE_LIMIT_HOUR'), 'warning');
					$app->redirect(JRoute::_($profile_uri, false));
				}
			}

			if(!DJClassifiedsAccess::checkAskFormFiles()){
				$app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_MESSAGE_NOT_SENT'), 'warning');
				$app->redirect(JRoute::_($profile_uri.'&ae=1', false));
			}
	
			$custom_fields_msg = DJClassifiedsField::getAskFormFieldsForEmail();

			$query = "INSERT INTO #__djcf_profiles_msg (`user_to`, `user_from`, `ip_address`, `message`, `date`, `custom_fields`) "
					."VALUES(".$uid.", ".$user->id.", ".$db->q($user_ip).", ".$db->q($db->escape($msg)).",".$db->q(JFactory::getDate()->toSQL()).", ".$db->q($db->escape($custom_fields_msg)).")";
			$db->setQuery($query);
			$db->execute();
	
			$send_email = true;
								
		}else if($par->get('ask_seller_type','0') == 1){
			if(DJClassifiedsAccess::isCaptchaValid()){
				$query = "SELECT COUNT(id) FROM #__djcf_profiles_msg WHERE ip_address=".$db->q($user_ip)." AND user_to=".$uid." AND date>".$db->q($date_last5);
				$db->setQuery($query);
				$check = $db->loadResult();
				if($check > 0){
					$app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_ASK_MESSAGE_LIMIT'), 'warning');
					$app->redirect(JRoute::_($profile_uri, false));
				}
			
				if($par->get('ask_limit_hour', 15)){
					$query = "SELECT COUNT(id) FROM #__djcf_profiles_msg WHERE ip_address=".$db->q($user_ip)." AND date>".$db->q($date_lasth);
					$db->setQuery($query);
					$check = $db->loadResult();
					if($check > $par->get('ask_limit_hour',15)){
						$app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_ASK_MESSAGE_LIMIT_HOUR'), 'warning');
						$app->redirect(JRoute::_($profile_uri, false));
					}
				}

				if(!DJClassifiedsAccess::checkAskFormFiles()){
					$app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_MESSAGE_NOT_SENT'), 'warning');
					$app->redirect(JRoute::_($profile_uri.'&ae=1', false));
				}
				
				$custom_fields_msg = DJClassifiedsField::getAskFormFieldsForEmail();
		
				$query = "INSERT INTO #__djcf_profiles_msg(`user_to`, `user_from`, `ip_address`, `message`, `date`, `custom_fields`) "
						."VALUES(".$uid.", 0, ".$db->q($user_ip).", ".$db->q($db->escape($msg)).",".$db->q(JFactory::getDate()->toSQL()).", ".$db->q($db->escape($custom_fields_msg)).")"; 
				$db->setQuery($query);
				$db->execute();
				
				$send_email = true;
		
			}else{
				// $app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_INVALID_CODE'), 'error');
				$app->redirect(JRoute::_($profile_uri.'&ae=1', false));
			}
		}
		
		if($send_email){	
			$author = array();
			$author['name'] = $app->input->getStr('ask_name');
			$author['email'] = $app->input->getStr('ask_email');
			$author['user_id'] = '';
			$author['profile'] = '';
				
			if($user->id){
				$author['user_id'] = $user->id;
				$author['profile'] = JRoute::link('site', DJClassifiedsSEO::getViewUri('profile', array('group_id' => $model->getUserFieldGroup($user->id))).'&uid='.DJClassifiedsSEO::getUserSlug($user->id, $model->getAuthorName($user->id, $par)), true, null, true);
			}
			
			$replyto = $author['email'];
			$replytoname = $author['name'];

			$email_copy_arr = DJClassifiedsField::getAskFormFieldsEmailCopy(null, $par);
			
			$sent = DJClassifiedsNotify::messageProfileAskFormContact($profile,$author,$msg,$_FILES,$replyto,$replytoname,$custom_fields_msg,$email_copy_arr['cc'],$email_copy_arr['bcc']);
			if(!is_object($sent)){
				$app->setUserState('askform_name', null);
				$app->setUserState('askform_email', null);
				$app->setUserState('askform_message', null);
				$app->setUserState('djcf.askform.data', null);

				$app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_MESSAGE_SEND'), 'success');
				$app->redirect(JRoute::_($profile_uri, false));
			}else{
				$app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_MESSAGE_NOT_SENT'), 'warning');
				$app->redirect(JRoute::_($profile_uri, false));
			}
		}				
	}

	function changeProfileFavourite()
	{
		header("Content-type: text/html; charset=utf-8");
		$app = JFactory::getApplication();
		$db = JFactory::getDBO();
		$user = JFactory::getUser();
		$par = $app->getParams('com_djclassifieds');
		$profile_id = $app->input->getInt('id', 0);
	
		if($user->id){
			$query = "SELECT COUNT(id) FROM #__djcf_profiles_fav WHERE profile_id=".$profile_id." AND user_id=".$user->id;
			$db->setQuery($query);
			$user_fav = $db->loadResult();

			if($user_fav==0){
				$query = "INSERT INTO #__djcf_profiles_fav(`profile_id`, `user_id`) VALUES (".$profile_id.", ".$user->id.")";
			}else{
				$query = "DELETE FROM #__djcf_profiles_fav WHERE profile_id=".$profile_id." AND user_id=".$user->id;
			}
			$db->setQuery($query);
			$db->execute();

			echo DJClassifiedsTheme::renderLayout('favboxprofile', array('profile_id' => $profile_id, 'fav' => !$user_fav, 'par' => $par));
		}
	
		$app->close();
	}

	function getSearchFields()
	{
		header("Content-type: text/html; charset=utf-8");
		$app = JFactory::getApplication();     		 
		$db = JFactory::getDBO();
		$par = $app->getParams('com_djclassifieds');
		$user = JFactory::getUser();
		$ug = implode(',', $user->getAuthorisedViewLevels());
		$mod_id = $app->input->getInt('mod_id', 0);
		$group_id = $app->input->getInt('group_id', 0);

		$resultsFields = $app->triggerEvent('onBeforeDJClassifiedsDisplaySearchFields', array(&$par));
		if($resultsFields){
			echo trim(implode("\n", $resultsFields));
		}

		$query = $db->getQuery(true);
		$query->select('f.*')
		->from('#__djcf_fields f')
		->where('f.published = 1')
		->where('f.access IN ('.$ug.')')
		->where('f.search_type != ""')
		->where('f.in_search = 1')
		->where('f.source = 2')
		->where('(f.group_id = "0" OR CONCAT(",",f.group_id,",") LIKE "%,'.$group_id.',%")')
		->order('ordering');

		$app->triggerEvent('onDJClassifiedsGetFormFieldsQuery', array(&$query, 'search.profile'));
		$db->setQuery($query);

		$fields_list = $db->loadObjectList();

		foreach($fields_list as $f){
			echo DJClassifiedsField::renderSearchFormField($f, $mod_id);
		}

		$app->close();
	}
}
Site is undergoing maintenance

PACJA Events

Maintenance mode is on

Site will be available soon. Thank you for your patience!