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();
}
}