Current File : /home/pacjaorg/public_html/km/components/com_djclassifieds/models/item.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('Restricted access');

class DjclassifiedsModelItem extends DJClassifiedsModel
{
	function getItem()
	{
		$app = JFactory::getApplication();
		$db = JFactory::getDBO();
		$user = JFactory::getUser();
		$par = $app->getParams('com_djclassifieds');
		$id = $app->input->getInt('id', 0);

		$query = "SELECT i.*, c.id as c_id, c.name as c_name, c.alias as c_alias, c.access_view as c_access_view, c.access_item_view as c_access_item_view,  c.rev_group_id, r.id r_id, r.name as r_name, r.alias as r_alias, u.name u_name, u.username, u.".$par->get('authorname','name')." as authorname, u.email as u_email, p.group_id, iu.name as unit_name "
			.($par->get('favourite','1') && $user->id ? ",f.id as f_id " : "")
			.", t.id as t_id, t.name as t_name, t.params as t_params "
			."FROM #__djcf_items i "
			."LEFT JOIN #__djcf_categories c ON i.cat_id=c.id "
			.($par->get('favourite','1') && $user->id ? "LEFT JOIN (SELECT * FROM #__djcf_favourites WHERE user_id=".$user->id.") f ON i.id=f.item_id " : "")
			."LEFT JOIN #__djcf_types t ON t.id = i.type_id "
			."LEFT JOIN #__users u ON u.id = i.user_id "
			."LEFT JOIN #__djcf_profiles p ON i.user_id = p.user_id "
			."LEFT JOIN #__djcf_regions r ON r.id = i.region_id "
			."LEFT JOIN #__djcf_items_units iu ON iu.id = i.unit_id "				
			."WHERE i.id = ".$id." LIMIT 1";
		$db->setQuery($query);
		$item = $db->loadObject();
		
		if($item){
			$item->extra_cats = array();

			DJClassifiedsField::convertOverwritableFieldsValues($item, $par);

			$item->item_uri = DJClassifiedsSEO::getItemRoute($item->id.':'.$item->alias,$item->cat_id.':'.$item->c_alias,$item->region_id.':'.$item->r_alias);
			$item->profile_uri = $item->user_id ? DJClassifiedsSEO::getViewUri('profile', array('group_id' => $item->group_id)).'&uid='.DJClassifiedsSEO::getUserSlug($item->user_id, $item->authorname) : null;
		}
		
		return $item;
	}

	function getFields($id, $par = null)
	{
		$app = JFactory::getApplication();
		$db = JFactory::getDBO();
		$user = JFactory::getUser();
		$ug = implode(',', $user->getAuthorisedViewLevels());
		if($par === null){ // backward compatibility - $id might be cat_id
			$id = $app->input->getInt('id', 0);
		}
		$par = $par ? $par : JComponentHelper::getParams('com_djclassifieds');

		$item = $this->getItemById($id);
		if(empty($item)){
			DJClassifiedsSEO::redirectWrongItem();
		}

		$cid = $item->cat_id;

		if(JPluginHelper::isEnabled('djclassifieds', 'multicategories')){
			$cat_where = "fx.cat_id IN (SELECT cat_id FROM #__djcf_items_categories WHERE item_id=".$id." UNION SELECT ".$cid.")";
		}else{
			$cat_where = "fx.cat_id=".$cid;
		}

		$query = $db->getQuery(true);
		$query->select(array('fv.*', 'f.*'))
			->from('#__djcf_fields f')
			->join('INNER', '#__djcf_fields_xref fx ON f.id = fx.field_id AND '.$cat_where)
			->join('LEFT', '#__djcf_fields_values fv ON fv.field_id = fx.field_id AND fv.item_id = '.$id)
			->where('f.source = 0')
			->where('f.published = 1')
			->where('f.access IN ('.$ug.')')
			->where('f.name NOT IN ('.implode(',', DJClassifiedsField::getOverwritableFieldNames(true)).')')
			->order('fx.ordering, f.ordering, f.label');
		if(JPluginHelper::isEnabled('djclassifieds', 'conditionalfields')){
			$query->join('LEFT', '#__djcf_conditionalfields cf ON f.id = cf.field_id');
			$query->where('(cf.id IS NULL OR fv.id IS NOT NULL)');
		}
		$app->triggerEvent('onDJClassifiedsGetFieldsQuery', array(&$query, 'item'));
		$db->setQuery($query);
		$fields = $db->loadObjectList('id');

		DJClassifiedsAccess::filterFieldsByGroupAccess($fields);
		DJClassifiedsField::convertFieldsValues($fields, $par);
		
		return $fields;
	}

	function getContactFields($id, $par)
	{
		$db = JFactory::getDBO(); 
		$user = JFactory::getUser();
		$ug = implode(',', $user->getAuthorisedViewLevels());

		$query = $db->getQuery(true);
		$query->select(array('fv.*', 'f.*',))
			->from('#__djcf_fields f')
			->join('LEFT', '#__djcf_fields_values fv ON f.id = fv.field_id AND fv.item_id = '.$id)
			->where('f.source = 1')
			->where('f.published = 1')
			->where('f.access IN ('.$ug.')')
			->where('f.name NOT IN ('.implode(',', DJClassifiedsField::getOverwritableFieldNames(true)).')')
			->order('f.ordering, f.label');
		if(JPluginHelper::isEnabled('djclassifieds', 'conditionalfields')){
			$query->join('LEFT', '#__djcf_conditionalfields cf ON f.id = cf.field_id');
			$query->where('(cf.id IS NULL OR fv.id IS NOT NULL)');
		}
		$db->setQuery($query);
		$fields = $db->loadObjectList('id');

		DJClassifiedsAccess::filterFieldsByGroupAccess($fields);
		DJClassifiedsField::convertFieldsValues($fields, $par);
		
		return $fields;
	}

	function isContactHiddenOnStart() // backward compatibility
	{
		$db = JFactory::getDBO();
		$query = "SELECT hide_on_start FROM #__djcf_fields WHERE name='contact' AND published=1";
		$db->setQuery($query);
		$hide_on_start = $db->loadResult();
		
		return $hide_on_start;
	}
	
	function gotPayment($item_id)
	{
		$db = JFactory::getDBO();
		$query = "SELECT s.plan_id "
				."FROM #__djcf_plans_subscr_items si "
				."INNER JOIN #__djcf_plans_subscr s ON si.subscr_id=s.id "
				."WHERE si.item_id=".$item_id;
		$db->setQuery($query);
		$plan_id = $db->loadResult();

		if($plan_id){
			$query = "SELECT COUNT(id) FROM #__djcf_payments WHERE price>0 AND item_id=".$plan_id." AND type=3 AND status='Completed'";
		}else{
			$query = "SELECT COUNT(id) FROM #__djcf_payments WHERE price>0 AND item_id=".$item_id." AND type=0 AND status='Completed'";
		}
		$db->setQuery($query);
		$has_payment = $db->loadResult();
	
		return $has_payment;
	}
	
	function updateLatestViewed($id)
	{
		$app = JFactory::getApplication();
		$db = JFactory::getDBO();
		$par = $app->getParams('com_djclassifieds');
		$now = JFactory::getDate()->toSQL();

		$query = "UPDATE #__djcf_items SET last_view=".$db->quote($now)." WHERE id=".$id;
		$db->setQuery($query);
		$db->execute();

		$inputCookie  = JFactory::getApplication()->input->cookie;
		$latest_items = $inputCookie->get('djcf_lastitems', '');
		$ids_limit = $par->get('last_viewed_limit',10)-1;
		$time_limit = $par->get('last_viewed_time',7);
		$latest_ids = $id;
		if($latest_items){
			$latest_items_ids = explode('_', $latest_items);
			for($i=0;$i<count($latest_items_ids);$i++){				
				if($latest_items_ids[$i]==$id){
					$ids_limit++;
					continue;
				}
				if($i>=$ids_limit){break;}
				$latest_ids .= '_'.$latest_items_ids[$i];
			}
		}
		$inputCookie->set('djcf_lastitems',$latest_ids,time()+60*60*24*$time_limit,'/');
	}
}
Site is undergoing maintenance

PACJA Events

Maintenance mode is on

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