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