Current File : /home/pacjaorg/public_html/km/components/com_djclassifieds/models/additem.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 DjclassifiedsModelAddItem extends DJClassifiedsModel
{
	function getItem($id = null, $post_data = null, $par = null)
	{
		JTable::addIncludePath(JPATH_ROOT.'/administrator/components/com_djclassifieds/tables');
		$app = JFactory::getApplication();
		$db	= JFactory::getDBO();
		$row = JTable::getInstance('Items', 'DJClassifiedsTable');
		$par = $par ? $par : JComponentHelper::getParams('com_djclassifieds');

		$id = $id === null ? $app->input->getInt('id', 0) : $id;
		$copy = $app->input->getInt('copy', 0);
		$token = $app->input->getCMD('token', '');
        
		if($id || $copy){
			if($id){
				$row->load($id);
			}else{
				$row->load($copy);
				$row->id = '0';
			}

			$can_edit = DJClassifiedsAccess::canEditItem($row, $par, true);
			if($can_edit !== true){
				DJClassifiedsSEO::redirectWrongItem(DJClassifiedsSEO::getViewUri('additem'), $can_edit);
			}
		}else if($token){
			$query = "SELECT id FROM #__djcf_items WHERE user_id=0 AND token=".$db->Quote($db->escape($token));			
			$db->setQuery($query);
			$id = $db->loadResult();
			if($id){
				$row->load($id);
			}else{
				DJClassifiedsSEO::redirectWrongItem(DJClassifiedsSEO::getViewUri('additem'));
			}
		}else{
			$row->exp_days = $par->get('exp_days','7');
		}

		if($post_data){
			$row->bind($post_data);
			if(!empty($post_data['cats'])){
				$row->cat_id = DJClassifiedsTheme::getIdFromTree($post_data['cats']);
			}
			if(!empty($post_data['regions'])){
				$row->region_id = DJClassifiedsTheme::getIdFromTree($post_data['regions']);
			}
		}

		if(empty($row->id)){
			$row->id = '0';
		}
	  	
        return $row;
	}
	
	function getItemImages($item_id)
	{
		$app = JFactory::getApplication();
		$db = JFactory::getDBO();
		$images = array();
		$id_copy = $app->input->getInt('copy', 0);
		$upload_path = DJClassifiedsTheme::getImgUploadPath();
		
		if($item_id){			
			$query = "SELECT * FROM #__djcf_images WHERE type='item' AND item_id=".$item_id." ORDER BY ordering";
			$db->setQuery($query);
			$images = $db->loadObjectList();
		}else if($id_copy){
			$query = "SELECT * FROM #__djcf_images WHERE type='item' AND item_id=".$id_copy." ORDER BY ordering";
			$db->setQuery($query);
			$images = $db->loadObjectList();
			
			$t = time();
			foreach($images as &$image){
				$img_from = JPATH_ROOT.$image->path.$image->name;
				$img_to = JPATH_ROOT.$upload_path.'/'.$image->name;
				if(!JFile::exists($img_from.'.'.$image->ext)){
					continue;
				}
				JFile::copy($img_from.'.'.$image->ext,$img_to.'_'.$t.'.'.$image->ext);
				$image->name = $image->name.'_'.$t;
				$image->path = $upload_path.'/';
			}
		}								
		
		return $images;
	}
	
	function getItemsUnits()
	{
		$db = JFactory::getDBO();
		$query = "SELECT id, name FROM #__djcf_items_units WHERE published=1 ORDER BY ordering";
		$db->setQuery($query);
		$units = $db->loadObjectList();
		
		return $units;
	}
	
	function getProfileDefaultValues($item)
	{
		$app = JFactory::getApplication();
		$db = JFactory::getDBO();
		$user = JFactory::getUser();
		$par = $app->getParams('com_djclassifieds');

		if($user->id){
			$query = "SELECT f.*, v.value, v.value_date, v.value_date_to "
			."FROM #__djcf_fields f "
			."INNER JOIN #__djcf_fields_values_profile v ON v.field_id=f.id AND v.user_id=".$user->id." AND f.published=1 AND f.source=2 "
			."ORDER BY f.ordering";
			$db->setQuery($query);
			$fields = $db->loadObjectList();
			
			foreach($fields as $field){
				if($field->core_source){
					$item->{$field->core_source} = $field->type=='date' || $field->type=='date_from_to' ? $field->value_date : $field->value;
				}
			}
			
			$query = "SELECT * FROM #__djcf_profiles WHERE user_id=".$user->id." LIMIT 1";
			$db->setQuery($query);
			$profile = $db->loadObject();
			
			if($par->get('prefill_loc_data','1') && isset($profile->user_id)){
				$loc_fields = array('region_id','address','post_code','latitude','longitude');
				foreach($loc_fields as $fieldname){
					if(!empty($profile->{$fieldname})){
						$item->{$fieldname} = $profile->{$fieldname};
					}
				}
			}
		}

		return $item;
	}

	function pointsUsedByUser($user)
	{
		$db = JFactory::getDBO();

		$query = "SELECT id FROM #__djcf_users_points WHERE user_id=".$user->id;
		$db->setQuery($query);
		$points_used = $db->loadResult();

		return isset($points_used) ? true : false;
	}

	function isOneCatOnly($cats) // check if one root cat, not the others' parent
	{
		$only_cat = null;
		$cat_count = 0;
		foreach($cats as $cat){
			if(!$cat->parent_id || ($only_cat && $cat->parent_id==$only_cat->id)){
				$only_cat = $cat;
				$cat_count++;
			}
			if($cat_count > 1){
				return false;
			}
		}
		return $only_cat->id;
	}

	function getCancelLink($item_id)
	{
		$app = JFactory::getApplication();
		$user = JFactory::getUser();

		$pre_edit_page = $app->getUserState('djcf.pre_edit_page');

		if($item_id && $pre_edit_page && $pre_edit_page['view'] == 'item' && $pre_edit_page['id'] == $item_id){
			$item = $this->getItemById($item_id);
			return DJClassifiedsSEO::getItemRoute($item->id.':'.$item->alias,$item->cat_id.':'.$item->c_alias,$item->region_id.':'.$item->r_alias).($pre_edit_page['juri']->hasVar('token') ? '&token='.$pre_edit_page['juri']->getVar('token') : '');
		}elseif($user->id){
			return DJClassifiedsSEO::getViewUri('useritems');
		}else{
			return DJClassifiedsSEO::getCategoryRoute('0:all');
		}
	}
}
Site is undergoing maintenance

PACJA Events

Maintenance mode is on

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