Example #1
0
 public function getRegAll()
 {
     $regions = DJClassifiedsRegion::getRegions();
     $sort_regions = DJClassifiedsRegion::getRegListAll($regions);
     //echo '<pre>';print_r($sort_regions);echo '</pre>';die();
     return $sort_regions;
 }
Example #2
0
 protected function getInput()
 {
     $attr = '';
     $attr .= $this->element['class'] ? ' class="' . (string) $this->element['class'] . '"' : '';
     $attr .= (string) $this->element['disabled'] == 'true' ? ' disabled="disabled"' : '';
     $attr .= $this->element['size'] ? ' size="' . (int) $this->element['size'] . '"' : '';
     $attr .= $this->element['multiple'] == 'true' ? ' multiple="multiple"' : '';
     $default_name = $this->element['default_name'] ? '- ' . JText::_($this->element['default_name']) . ' -' : null;
     $optionss = array();
     $optionss = DJClassifiedsRegion::getRegSelect();
     //$main_tab = array();
     //$main_tab[0]= JHTML::_('select.option', '0', JText::_('MOD_DJCLASSIFIEDS_ITEMS_ALL_REGIONS'));
     //$options = array();
     //$options = array_merge_recursive ($main_tab, $optionss);
     $html = JHTML::_('select.genericlist', $optionss, $this->name, trim($attr), 'value', 'text', $this->value);
     return $html;
 }
Example #3
0
 function getRegions()
 {
     $search = $this->getState('filter.search');
     if ($this->getState('filter.region') != '' || $search != '') {
         $db = JFactory::getDBO();
         $query = "SELECT r.*, rr.name as parent_name FROM #__djcf_regions r " . "LEFT JOIN #__djcf_regions rr ON r.parent_id=rr.id " . "WHERE 1  " . $this->_buildWhere() . " ORDER BY r.name";
         $db->setQuery($query);
         $regions = $db->loadObjectList();
     } else {
         $regions = DJClassifiedsRegion::getRegAll();
     }
     $limitstart = $this->getState('list.start', 0);
     $limit = $this->getState('list.limit', 0);
     if ($limit > 0) {
         $regions = array_slice($regions, $limitstart, $limit);
     } else {
         $regions = array_slice($regions, 0);
     }
     return $regions;
 }
Example #4
0
 protected function getInput()
 {
     $language = JFactory::getLanguage();
     $c_lang = $language->getTag();
     if ($c_lang == 'pl-PL' || $c_lang == 'en-GB') {
         $language->load('com_djclassifieds', JPATH_SITE . '/components/com_djclassifieds', null, true);
     } else {
         $language->load('com_djclassifieds', JPATH_SITE, null, true);
     }
     $attr = '';
     $attr .= $this->element['class'] ? ' class="' . (string) $this->element['class'] . '"' : '';
     $attr .= (string) $this->element['disabled'] == 'true' ? ' disabled="disabled"' : '';
     $attr .= $this->element['size'] ? ' size="' . (int) $this->element['size'] . '"' : '';
     $attr .= $this->element['multiple'] == 'true' ? ' multiple="multiple"' : '';
     $default_name = $this->element['default_name'] ? '- ' . JText::_($this->element['default_name']) . ' -' : null;
     $optionss = array();
     $optionss = DJClassifiedsRegion::getRegSelect();
     $main_tab = array();
     $main_tab[0] = JHTML::_('select.option', '0', JText::_('COM_DJCLASSIFIEDS_ALL_REGIONS'));
     $options = array();
     $options = array_merge_recursive($main_tab, $optionss);
     $html = JHTML::_('select.genericlist', $options, $this->name, trim($attr), 'value', 'text', $this->value);
     return $html;
 }
Example #5
0
 static function getItems($params)
 {
     $app = JFactory::getApplication();
     $db = JFactory::getDBO();
     $date_time = JFactory::getDate();
     $date_exp = $date_time->toSQL();
     $ord = "i.date_start DESC";
     if ($params->get('items_ord') == 1) {
         $ord = "i.display DESC";
     } else {
         if ($params->get('items_ord') == 2) {
             $ord = "rand()";
         }
     }
     if ($params->get('follow_search', 1) == 1 && JRequest::getInt('se', 0) != 0) {
         $where = '';
         $search = '';
         $search_fields = '';
         $cat_id = 0;
         $reg_id = 0;
         $search_radius_v = '';
         $search_radius_h = '';
         if (JRequest::getVar('search', JText::_('COM_DJCLASSIFIEDS_SEARCH'), '', 'string') != JText::_('COM_DJCLASSIFIEDS_SEARCH')) {
             $search_word = $db->Quote('%' . $db->escape(JRequest::getVar('search', '', '', 'string'), true) . '%');
             $search = " AND (CONCAT(i.name,i.intro_desc,i.description) LIKE " . $search_word . " OR c.name LIKE " . $search_word . " OR r.name LIKE " . $search_word . " ) ";
         }
         if (isset($_GET['se_cats'])) {
             $cat_id = end($_GET['se_cats']);
             if ($cat_id == '' && count($_GET['se_cats']) > 2) {
                 $cat_id = $_GET['se_cats'][count($_GET['se_cats']) - 2];
             }
         }
         $cat_id = str_ireplace('p', '', $cat_id);
         if ($cat_id > 0) {
             $cats = DJClassifiedsCategory::getSubCat($cat_id, 1);
             $catlist = $cat_id;
             foreach ($cats as $c) {
                 $catlist .= ',' . $c->id;
             }
             $search .= ' AND i.cat_id IN (' . $catlist . ') ';
             $search_fields = self::getSearchFields();
         }
         if (isset($_GET['se_regs'])) {
             $reg_id = end($_GET['se_regs']);
             if ($reg_id == '' && count($_GET['se_regs']) > 2) {
                 $reg_id = $_GET['se_regs'][count($_GET['se_regs']) - 2];
             }
             $reg_id = (int) $reg_id;
         }
         if ($reg_id > 0) {
             $regs = DJClassifiedsRegion::getSubReg($reg_id, 1);
             $reglist = $reg_id;
             foreach ($regs as $r) {
                 $reglist .= ',' . $r->id;
             }
             $search .= ' AND i.region_id IN (' . $reglist . ') ';
         }
         $se_price_from = JRequest::getInt('se_price_f', '');
         $se_price_to = JRequest::getInt('se_price_t', '');
         if ($se_price_from) {
             $search .= " AND ABS(i.price) >= " . $se_price_from . " ";
         }
         if ($se_price_to && $se_price_to > $se_price_from) {
             $search .= " AND ABS(i.price) <= " . $se_price_to . " ";
         }
         $type_id = JRequest::getInt('se_type_id', '0');
         if ($type_id > 0) {
             $where .= " AND i.type_id=" . $type_id . " ";
         }
         $days_l = JRequest::getInt('days_l', '0');
         if ($days_l > 0) {
             $date_limit = date("Y-m-d H:i:s", mktime(date("H"), date("i"), date("s"), date("m"), date("d") - $days_l, date("Y")));
             $where .= " AND i.date_start >= '" . $date_limit . "' ";
         }
         $only_img = JRequest::getInt('se_only_img', 0);
         if ($only_img == 1) {
             $search .= " AND i.image_url!='' ";
         }
         $only_video = JRequest::getInt('se_only_video', 0);
         if ($only_video == 1) {
             $search .= " AND i.video!='' ";
         }
         $postcode = JRequest::getVar('se_postcode', '');
         $radius = JRequest::getInt('se_radius', 0);
         if ($postcode != '' && $postcode != JText::_('COM_DJCLASSIFIEDS_SEARCH_MODULE_POSTCODE') && $radius) {
             $postcode_country = JRequest::getVar('se_postcode_c', '');
             $post_coord = DJClassifiedsGeocode::getLocationPostCode($postcode, $postcode_country);
             $radius_unit = JRequest::getCmd('se_radius_unit', 'km');
             if ($radius_unit == 'mile') {
                 $radius_unit_v = 6371;
             } else {
                 $radius_unit_v = 3959;
             }
             if ($post_coord) {
                 $search_radius_v = ', ( ' . $radius_unit_v . ' * acos( cos( radians(' . $post_coord['lat'] . ') ) * cos( radians( i.latitude ) ) * cos( radians( i.longitude ) - radians(' . $post_coord['lng'] . ') ) + sin( radians(' . $post_coord['lat'] . ') ) * sin( radians( i.latitude ) ) ) ) AS distance ';
                 $search_radius_h = 'HAVING distance < ' . $radius . ' ';
             } else {
                 $app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_SORRY_WE_CANT_FIND_COORDINATES_FROM_POSTCODE_WE_OMIITED_RANGE_RESTRICTION'), 'notice');
             }
         }
         $query = "SELECT i.*, c.name AS c_name,c.alias AS c_alias, c.id as c_id, r.name as r_name, r.id as r_id " . $search_radius_v . ", img.path as img_path, img.name as img_name, img.ext as img_ext,img.caption as img_caption FROM " . $search_fields . " #__djcf_items i " . "LEFT JOIN #__djcf_categories c ON i.cat_id = c.id " . "LEFT JOIN #__djcf_regions r ON i.region_id = r.id " . "LEFT JOIN ( SELECT img.id, img.item_id, img.name, img.path, img.ext, img.ordering, img.caption \n\t\t \t\t\t\t\t  FROM (SELECT * FROM #__djcf_images WHERE type='item' ORDER BY ordering) img GROUP BY img.item_id ) AS img ON img.item_id=i.id " . "WHERE i.date_exp > NOW() AND i.published=1 " . $where;
         if ($search_fields) {
             $query .= " AND sf.item_id=i.id ";
         }
         $query .= $search_radius_h . $search . " ORDER BY i.special DESC, " . $ord . "";
         $db->setQuery($query);
         $items = $db->loadObjectList();
         //echo '<pre>'; print_r($items);die();
     } else {
         $where = '';
         $cid = JRequest::getInt('cid', '0');
         if ($params->get('follow_category', 1) == 1 && $cid > 0) {
             $djcfcatlib = new DJClassifiedsCategory();
             $cats = $djcfcatlib->getSubCat($cid, 1);
             $catlist = $cid;
             foreach ($cats as $c) {
                 $catlist .= ',' . $c->id;
             }
             $where .= ' AND i.cat_id IN (' . $catlist . ') ';
         }
         $query = "SELECT i.*, c.name as c_name, c.alias as c_alias, img.path as img_path, img.name as img_name, img.ext as img_ext,img.caption as img_caption " . "FROM #__djcf_categories c, #__djcf_items i  " . "LEFT JOIN ( SELECT img.id, img.item_id, img.name, img.path, img.ext, img.ordering, img.caption \n\t\t \t\t\t\t\t  FROM (SELECT * FROM #__djcf_images WHERE type='item' ORDER BY ordering) img GROUP BY img.item_id ) AS img ON img.item_id=i.id " . "WHERE i.date_exp > '" . $date_exp . "' AND i.published = 1 AND i.cat_id=c.id AND i.latitude!='0.000000000000000' AND i.longitude!='0.000000000000000' " . $where . " " . "ORDER BY " . $ord . " limit " . $params->get('items_limit');
         $db->setQuery($query);
         $items = $db->loadObjectList();
     }
     return $items;
 }
Example #6
0
?>
" />
					</td>
				</tr>				
				<tr>
					<td width="150" align="right" class="key">
						<?php 
echo JText::_('COM_DJCLASSIFIEDS_SELECT_PARENT_REGION');
?>
					</td>
					<td>					
						<?php 
$optionss = array();
$optionss = DJClassifiedsRegion::getRegSelect();
if ($this->region->id > 0) {
    $reg_list = DJClassifiedsRegion::getSubReg($this->region->id);
    $reg_list_assoc = array();
    $reg_list_assoc[$this->region->id] = 1;
    foreach ($reg_list as $cl) {
        $reg_list_assoc[$cl->id] = 1;
    }
    foreach ($optionss as $op) {
        if (isset($reg_list_assoc[$op->value])) {
            $op->disable = 1;
        }
    }
}
$main_tab = array();
$main_tab[0] = JHTML::_('select.option', '0', JText::_('COM_DJCLASSIFIEDS_MAIN_REGION'));
$options = array();
$options = array_merge_recursive($main_tab, $optionss);
Example #7
0
 function generateCoordinates()
 {
     $app = JFactory::getApplication();
     $par = JComponentHelper::getParams('com_djclassifieds');
     $db = JFactory::getDBO();
     JToolBarHelper::title(JText::_('COM_DJCLASSIFIEDS_GENERATING_COORDINATES'), 'generic.png');
     $id_checked = JRequest::getVar('idc', '');
     $id_checked_s = '';
     if ($id_checked) {
         $id_checked_s = 'AND id NOT IN (' . $id_checked . ')';
     }
     $query = "SELECT * FROM #__djcf_items WHERE (region_id>0 OR address!='') " . "AND latitude=0.000000000000000 AND longitude=0.000000000000000 " . $id_checked_s . " LIMIT 1";
     $db->setQuery($query);
     $item = $db->loadObject();
     //echo '<pre>';print_r($db);die();
     if ($item) {
         if ($id_checked) {
             $id_checked .= ',' . $item->id;
         } else {
             $id_checked .= $item->id;
         }
         $address = '';
         if ($item->region_id) {
             $reg_path = DJClassifiedsRegion::getParentPath($item->region_id);
             for ($r = count($reg_path) - 1; $r >= 0; $r--) {
                 if ($reg_path[$r]->country) {
                     $address = $reg_path[$r]->name;
                 }
                 if ($reg_path[$r]->city) {
                     if ($address) {
                         $address .= ', ';
                     }
                     $address .= $reg_path[$r]->name;
                 }
             }
         }
         if ($address) {
             $address .= ', ';
         }
         $address .= $item->address;
         if ($item->post_code) {
             $address .= ', ' . $item->post_code;
         }
         $loc_coord = DJClassifiedsGeocode::getLocation($address);
         if (is_array($loc_coord)) {
             $query = "UPDATE #__djcf_items SET latitude=" . $loc_coord['lat'] . ",longitude=" . $loc_coord['lng'] . "  WHERE id=" . $item->id;
             $db->setQuery($query);
             $db->query();
             //echo '<pre>';print_r($db);die();
         }
         echo '<h3>' . JTEXT::_('COM_DJCLASSIFIEDS_GENERATING_COORDINATES') . ' [id = ' . $item->id . ']... ' . JTEXT::_('COM_DJCLASSIFIEDS_PLEASE_WAIT') . '</h3>';
         header("refresh: 0; url=" . JURI::base() . 'index.php?option=com_djclassifieds&task=items.generateCoordinates&idc=' . $id_checked);
     } else {
         $redirect = 'index.php?option=com_djclassifieds&view=items';
         $app->redirect($redirect, JText::_('COM_DJCLASSIFIEDS_COORDINATES_REGENERATED'));
     }
 }
Example #8
0
 function getCountItems($catlist = '')
 {
     $par = JComponentHelper::getParams('com_djclassifieds');
     $user = JFactory::getUser();
     $db = JFactory::getDBO();
     $cid = JRequest::getInt('cid', 0);
     $app = JFactory::getApplication();
     $where = '';
     if ($catlist) {
         $where = ' AND i.cat_id IN (' . $catlist . ') ';
     }
     $uid = JRequest::getVar('uid', '0', '', 'int');
     if ($uid > 0) {
         $where .= " AND i.user_id=" . $uid . " ";
     }
     $fav_lj = '';
     if ($par->get('favourite', '1') && $user->id > 0) {
         $fav_lj = "LEFT JOIN ( SELECT * FROM #__djcf_favourites WHERE user_id=" . $user->id . ") f ON i.id=f.item_id ";
         $fav = JRequest::getVar('fav', '0', '', 'int');
         if ($fav > 0) {
             $where .= " AND f.id IS NOT NULL ";
         }
     }
     $search = '';
     $search_fields = '';
     $cat_id = 0;
     $reg_id = 0;
     $search_radius_v = '';
     $search_radius_h = '';
     $search_img_count_lj = '';
     if (JRequest::getVar('se', '0', '', 'string') != '0') {
         if (JRequest::getVar('search', JText::_('COM_DJCLASSIFIEDS_SEARCH'), '', 'string') != JText::_('COM_DJCLASSIFIEDS_SEARCH')) {
             if ($par->get('search_type_phrase', 0) == 1) {
                 $se_words = explode(' ', $db->escape(JRequest::getVar('search', '', '', 'string'), true));
                 foreach ($se_words as $se_w) {
                     if (strlen($se_w) > 2) {
                         $search .= " AND (CONCAT_WS(i.name,i.intro_desc,i.description) LIKE " . $db->Quote('%' . $se_w . '%') . " OR c.name LIKE " . $db->Quote('%' . $se_w . '%') . " OR r.name LIKE " . $db->Quote('%' . $se_w . '%') . " OR i.id=" . $db->Quote($se_w) . " ) ";
                     }
                 }
             } else {
                 $search_word = $db->Quote('%' . $db->escape(JRequest::getVar('search', '', '', 'string'), true) . '%');
                 $search_word2 = $db->Quote($db->escape(JRequest::getVar('search', '', '', 'string'), true));
                 $search = " AND (CONCAT_WS(i.name,i.intro_desc,i.description) LIKE " . $search_word . " OR c.name LIKE " . $search_word . " OR r.name LIKE " . $search_word . "  OR i.id=" . $search_word2 . "  ) ";
             }
         }
         if (isset($_GET['se_cats'])) {
             if (is_array($_GET['se_cats'])) {
                 $cat_id = end($_GET['se_cats']);
                 if ($cat_id == '' && count($_GET['se_cats']) > 2) {
                     $cat_id = $_GET['se_cats'][count($_GET['se_cats']) - 2];
                 }
             } else {
                 $cat_ids = explode(',', JRequest::getVar('se_cats'));
                 $cat_id = end($cat_ids);
             }
             $cat_id = (int) $cat_id;
         }
         $cat_id = str_ireplace('p', '', $cat_id);
         if ($cat_id > 0) {
             $cats = DJClassifiedsCategory::getSubCat($cat_id, 1);
             $catlist = $cat_id;
             foreach ($cats as $c) {
                 $catlist .= ',' . $c->id;
             }
             $search .= ' AND i.cat_id IN (' . $catlist . ') ';
         }
         $se_ef = JRequest::getInt('ef', 0);
         if ($cat_id > 0 || $se_ef) {
             $search_fields = $this->getSearchFields($cat_id, $se_ef);
         }
         if (isset($_GET['se_regs'])) {
             if (is_array($_GET['se_regs'])) {
                 $reg_id = end($_GET['se_regs']);
                 if ($reg_id == '' && count($_GET['se_regs']) > 2) {
                     $reg_id = $_GET['se_regs'][count($_GET['se_regs']) - 2];
                 }
             } else {
                 $reg_ids = explode(',', JRequest::getVar('se_regs'));
                 $reg_id = end($reg_ids);
             }
             $reg_id = (int) $reg_id;
         }
         if ($reg_id > 0) {
             $regs = DJClassifiedsRegion::getSubReg($reg_id, 1);
             $reglist = $reg_id;
             foreach ($regs as $r) {
                 $reglist .= ',' . $r->id;
             }
             $search .= ' AND i.region_id IN (' . $reglist . ') ';
         }
         $se_price_from = JRequest::getInt('se_price_f', '');
         $se_price_to = JRequest::getInt('se_price_t', '');
         if ($se_price_from) {
             $search .= " AND ABS(i.price) >= '" . $se_price_from . "' ";
         }
         if ($se_price_to && $se_price_to > $se_price_from) {
             $search .= " AND ABS(i.price) <= '" . $se_price_to . "' ";
         }
         $type_id = JRequest::getInt('se_type_id', '0');
         if ($type_id > 0) {
             $where .= " AND i.type_id=" . $type_id . " ";
         }
         $days_l = JRequest::getInt('days_l', '0');
         if ($days_l > 0) {
             $date_limit = date("Y-m-d H:i:s", mktime(date("H"), date("i"), date("s"), date("m"), date("d") - $days_l, date("Y")));
             $where .= " AND i.date_start >= '" . $date_limit . "' ";
         }
         $only_img = JRequest::getInt('se_only_img', 0);
         if ($only_img == 1) {
             $search .= " AND img.img_c>0 ";
             $search_img_count_lj = "LEFT JOIN ( SELECT COUNT(img.id) as img_c, img.item_id FROM #__djcf_images img\r\n\t\t\t\t\t\t\t\t\t\t\t\tWHERE img.type='item' GROUP BY item_id ) img ON i.id=img.item_id ";
         }
         $only_video = JRequest::getInt('se_only_video', 0);
         if ($only_video == 1) {
             $search .= " AND i.video!='' ";
         }
         $only_auctions = JRequest::getInt('se_only_auctions', 0);
         if ($only_auctions == 1) {
             $search .= " AND i.auction = 1 ";
         }
         $postcode = JRequest::getVar('se_postcode', '');
         $radius = JRequest::getFloat('se_radius', 0);
         $se_address = JRequest::getVar('se_address', '');
         $se_geoloc = JRequest::getVar('se_geoloc', '');
         if ($radius) {
             $radius_unit = JRequest::getCmd('se_radius_unit', 'km');
             if ($radius_unit == 'mile') {
                 $radius_unit_v = 3959;
             } else {
                 $radius_unit_v = 6371;
             }
             if ($se_geoloc) {
                 $user_latlog = explode('_', $_COOKIE["djcf_latlon"]);
                 $search_radius_v = ', ( ' . $radius_unit_v . ' * acos( cos( radians(' . $user_latlog[0] . ') ) * cos( radians( i.latitude ) ) * cos( radians( i.longitude ) - radians(' . $user_latlog[1] . ') ) + sin( radians(' . $user_latlog[0] . ') ) * sin( radians( i.latitude ) ) ) ) AS distance ';
                 $search_radius_h = 'HAVING distance < ' . $radius . ' ';
             } else {
                 if ($postcode != '' && $postcode != JText::_('COM_DJCLASSIFIEDS_SEARCH_MODULE_POSTCODE')) {
                     $postcode_country = JRequest::getVar('se_postcode_c', '');
                     $post_coord = DJClassifiedsGeocode::getLocationPostCode($postcode, $postcode_country);
                     if ($post_coord) {
                         $search_radius_v = ', ( ' . $radius_unit_v . ' * acos( cos( radians(' . $post_coord['lat'] . ') ) * cos( radians( i.latitude ) ) * cos( radians( i.longitude ) - radians(' . $post_coord['lng'] . ') ) + sin( radians(' . $post_coord['lat'] . ') ) * sin( radians( i.latitude ) ) ) ) AS distance ';
                         $search_radius_h = 'HAVING distance < ' . $radius . ' ';
                     } else {
                         //$app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_SORRY_WE_CANT_FIND_COORDINATES_FROM_POSTCODE_WE_OMIITED_RANGE_RESTRICTION'),'notice');
                     }
                 } else {
                     if ($se_address != '' && $se_address != JText::_('COM_DJCLASSIFIEDS_SEARCH_MODULE_ADDRESS')) {
                         $se_address_coord = DJClassifiedsGeocode::getLocation($se_address);
                         if ($se_address_coord) {
                             $search_radius_v = ', ( ' . $radius_unit_v . ' * acos( cos( radians(' . $se_address_coord['lat'] . ') ) * cos( radians( i.latitude ) ) * cos( radians( i.longitude ) - radians(' . $se_address_coord['lng'] . ') ) + sin( radians(' . $se_address_coord['lat'] . ') ) * sin( radians( i.latitude ) ) ) ) AS distance ';
                             $search_radius_h = 'HAVING distance < ' . $radius . ' ';
                         } else {
                             //$app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_SORRY_WE_CANT_FIND_COORDINATES_FROM_ADDRESS_WE_OMIITED_RANGE_RESTRICTION'),'notice');
                         }
                     }
                 }
             }
         }
         if (JRequest::getInt('se_also_18', 0) == 0) {
             $search .= " AND c.restriction_18=0 ";
         }
     } else {
         if ($par->get('restriction_18_allads', 0) == 1 && !isset($_COOKIE["djcf_warning18"])) {
             $where .= " AND c.restriction_18=0 ";
         }
     }
     $groups_acl = '0,' . implode(',', $user->getAuthorisedViewLevels());
     $where .= " AND c.access_view IN (" . $groups_acl . ") ";
     $date_time = JFactory::getDate();
     $date_exp = $date_time->toSQL();
     $date_now = date("Y-m-d H:i:s");
     $query = "SELECT count(i.id) FROM (SELECT i.id " . $search_radius_v . " FROM " . $search_fields . " #__djcf_items i " . "LEFT JOIN #__djcf_categories c ON i.cat_id = c.id " . "LEFT JOIN #__djcf_regions r ON i.region_id = r.id " . $search_img_count_lj . $fav_lj . "WHERE i.date_exp > '" . $date_now . "' AND i.published=1 AND c.published=1 " . $where . $search;
     if ($search_fields) {
         $query .= " AND sf.item_id=i.id ";
     }
     $query .= $search_radius_h;
     $query .= " ) as i ";
     $db->setQuery($query);
     $items_count = $db->loadResult();
     //	echo '<pre>';print_r($db);print_r($items_count);echo '<pre>';die();
     return $items_count;
 }
Example #9
0
 function save()
 {
     $app = JFactory::getApplication();
     JTable::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR . DS . 'tables');
     jimport('joomla.database.table');
     JPluginHelper::importPlugin('djclassifieds');
     $row = JTable::getInstance('Items', 'DJClassifiedsTable');
     $par = JComponentHelper::getParams('com_djclassifieds');
     $user = JFactory::getUser();
     $lang = JFactory::getLanguage();
     $dispatcher = JDispatcher::getInstance();
     $db = JFactory::getDBO();
     $id = JRequest::getVar('id', 0, '', 'int');
     $token = JRequest::getCMD('token', '');
     $redirect = '';
     $menus = $app->getMenu('site');
     $menu_item = $menus->getItems('link', 'index.php?option=com_djclassifieds&view=items&cid=0', 1);
     $menu_item_blog = $menus->getItems('link', 'index.php?option=com_djclassifieds&view=items&layout=blog&cid=0', 1);
     $itemid = '';
     if ($menu_item) {
         $itemid = '&Itemid=' . $menu_item->id;
     } else {
         if ($menu_item_blog) {
             $itemid = '&Itemid=' . $menu_item_blog->id;
         }
     }
     $menu_newad_itemid = $menus->getItems('link', 'index.php?option=com_djclassifieds&view=additem', 1);
     $new_ad_link = 'index.php?option=com_djclassifieds&view=additem';
     if ($menu_newad_itemid) {
         $new_ad_link .= '&Itemid=' . $menu_newad_itemid->id;
     }
     $new_ad_link = JRoute::_($new_ad_link);
     if ($user->id == 0 && $id > 0) {
         $message = JText::_('COM_DJCLASSIFIEDS_WRONG_AD');
         //$redirect="index.php?option=com_djclassifieds&view=items&cid=0".$itemid;
         $redirect = DJClassifiedsSEO::getCategoryRoute('0:all');
         $redirect = JRoute::_($redirect);
         $app->redirect($redirect, $message, 'error');
     }
     $db = JFactory::getDBO();
     if ($id > 0) {
         $query = "SELECT user_id FROM #__djcf_items WHERE id='" . $id . "' LIMIT 1";
         $db->setQuery($query);
         $item_user_id = $db->loadResult();
         if ($item_user_id != $user->id) {
             $message = JText::_('COM_DJCLASSIFIEDS_WRONG_AD');
             $redirect = DJClassifiedsSEO::getCategoryRoute('0:all');
             $redirect = JRoute::_($redirect);
             $app->redirect($redirect, $message, 'error');
         }
     }
     if ($par->get('user_type') == 1 && $user->id == '0') {
         //$uri = "index.php?option=com_djclassifieds&view=items&cid=0".$itemid;
         $uri = DJClassifiedsSEO::getCategoryRoute('0:all');
         $app->redirect('index.php?option=com_users&view=login&return=' . base64_encode($uri), JText::_('COM_DJCLASSIFIEDS_PLEASE_LOGIN'));
     }
     $row->bind(JRequest::get('post'));
     if ($token && !$user->id && !$id) {
         $query = "SELECT i.id FROM #__djcf_items i " . "WHERE i.user_id=0 AND i.token=" . $db->Quote($db->escape($token));
         $db->setQuery($query);
         $ad_id = $db->loadResult();
         if ($ad_id) {
             $row->id = $ad_id;
         } else {
             $uri = DJClassifiedsSEO::getCategoryRoute('0:all');
             $app->redirect('index.php?option=com_users&view=login&return=' . base64_encode($uri), JText::_('COM_DJCLASSIFIEDS_WRONG_TOKEN'));
         }
     }
     $dispatcher->trigger('onAfterInitialiseDJClassifiedsSaveAdvert', array(&$row, &$par));
     if ($par->get('title_char_limit', '0') > 0) {
         $row->name = mb_substr($row->name, 0, $par->get('title_char_limit', '100'), "UTF-8");
     }
     if ((int) $par->get('allow_htmltags', '0')) {
         $row->description = JRequest::getVar('description', '', 'post', 'string', JREQUEST_ALLOWRAW);
         $allowed_tags = explode(';', $par->get('allowed_htmltags', ''));
         $a_tags = '';
         for ($a = 0; $a < count($allowed_tags); $a++) {
             $a_tags .= '<' . $allowed_tags[$a] . '>';
         }
         $row->description = strip_tags($row->description, $a_tags);
     } else {
         $row->description = nl2br(JRequest::getVar('description', '', 'post', 'string'));
     }
     $row->intro_desc = mb_substr(strip_tags(nl2br($row->intro_desc)), 0, $par->get('introdesc_char_limit', '120'), "UTF-8");
     if (!$row->intro_desc) {
         $row->intro_desc = mb_substr(strip_tags($row->description), 0, $par->get('introdesc_char_limit', '120'), "UTF-8");
     }
     $row->contact = nl2br(JRequest::getVar('contact', '', 'post', 'string'));
     $row->price_negotiable = JRequest::getInt('price_negotiable', '0');
     $row->bid_min = str_ireplace(',', '.', JRequest::getVar('bid_min', '', 'post', 'string'));
     $row->bid_max = str_ireplace(',', '.', JRequest::getVar('bid_max', '', 'post', 'string'));
     $row->price_reserve = str_ireplace(',', '.', JRequest::getVar('price_reserve', '', 'post', 'string'));
     if (!$id && !$token && !$user->id && $par->get('guest_can_edit', 0)) {
         $characters = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
         $row->token = '';
         for ($p = 0; $p < 20; $p++) {
             $row->token .= $characters[mt_rand(0, strlen($characters))];
         }
     }
     /*
     	//removing images from folder and from database
     	$path = JPATH_BASE."/components/com_djclassifieds/images/";
     $images = $row->image_url;
     		if(isset($_POST['del_img'])){			
     			$del_image = $_POST['del_img'];	
     		}else{
     			$del_image = array();
     		}    
     
     
     for ($i = 0; $i < count($del_image); $i++){
     
         $images = str_replace($del_image[$i].';', '', $images);
         //deleting the main image
         if (JFile::exists($path.$del_image[$i])){
             JFile::delete($path.$del_image[$i]);
         }
         //deleting thumbnail of image
     		if (JFile::exists($path.$del_image[$i].'.thb.jpg')){
             JFile::delete($path.$del_image[$i].'.thb.jpg');
         }
         if (JFile::exists($path.$del_image[$i].'.th.jpg')){
             JFile::delete($path.$del_image[$i].'.th.jpg');
         }
     		if (JFile::exists($path.$del_image[$i].'.thm.jpg')){
             JFile::delete($path.$del_image[$i].'.thm.jpg');
         }
         if (JFile::exists($path.$del_image[$i].'.ths.jpg')){
             JFile::delete($path.$del_image[$i].'.ths.jpg');
         }
     }
     
      
     //add images
     $new_files = $_FILES['image'];
     if(count($new_files['name'])>0 && $row->id==0){			
     		$query = "SELECT id FROM #__djcf_items ORDER BY id DESC LIMIT 1";
     		$db->setQuery($query);
     		$last_id =$db->loadResult();
     		$last_id++;
     	}else{
     		$last_id= $row->id;
     	}
     	
     	$nw = (int)$par->get('th_width',-1);
     $nh = (int)$par->get('th_height',-1);
     	$nws = $par->get('smallth_width',-1);
     $nhs = $par->get('smallth_height',-1);
     	$nwm = $par->get('middleth_width',-1);
     $nhm = $par->get('middleth_height',-1);			
     	$nwb = $par->get('bigth_width',-1);
     $nhb = $par->get('bigth_height',-1);		
     	$img_maxsize = $par->get('img_maxsize',0);		
     		if($img_maxsize>0){
     			$img_maxsize = $img_maxsize*1024*1024;
     		}
     	
     	$lang = JFactory::getLanguage();
     for ($i = 0; $i < count($new_files['name']); $i++)
     {
         if (substr($new_files['type'][$i], 0, 5) == "image")
         {
        			if($img_maxsize>0 && $new_files['size'][$i]>$img_maxsize){
        				$app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_TO_BIG_IMAGE').' : \''.$new_files['name'][$i].'\'','error');
     				continue;
     			}
     			if(!getimagesize($new_files['tmp_name'][$i])){
     				$app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_WRONG_IMAGE_TYPE').' : \''.$new_files['name'][$i].'\'','error');
     				continue;
     			}				
     			$n_name = $last_id.'_'.$new_files['name'][$i];    				
     			$n_name = $lang->transliterate($n_name);
     			$n_name = strtolower($n_name);
     			$n_name = JFile::makeSafe($n_name);
     			        	
         	$new_path = JPATH_BASE."/components/com_djclassifieds/images/".$n_name;
     			$nimg= 0;			
     			while(JFile::exists($new_path)){
     				$nimg++;
     			$n_name = $last_id.'_'.$nimg.'_'.$new_files['name'][$i];
     					$n_name = $lang->transliterate($n_name);
     					$n_name = strtolower($n_name);
     					$n_name = JFile::makeSafe($n_name);            	
         		$new_path = JPATH_BASE."/components/com_djclassifieds/images/".$n_name;
     			}
     			$images .= $n_name.';';
         	move_uploaded_file($new_files['tmp_name'][$i], $new_path);
     			//DJClassifiedsImage::makeThumb($new_path, $nw, $nh, 'th');
     			 	DJClassifiedsImage::makeThumb($new_path, $nws, $nhs, 'ths');
     				DJClassifiedsImage::makeThumb($new_path, $nwm, $nhm, 'thm');
     				DJClassifiedsImage::makeThumb($new_path, $nwb, $nhb, 'thb');
         }else if($new_files['name'][$i]){
     			$app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_WRONG_IMAGE_TYPE').' : \''.$new_files['name'][$i].'\'','error');	        	
         }
     }
     	
     $row->image_url = $images;
     */
     $row->image_url = '';
     $duration_price = 0;
     if ($row->id == 0) {
         if ($par->get('durations_list', '')) {
             $exp_days = JRequest::getVar('exp_days', $par->get('exp_days'), '', 'int');
             $query = "SELECT * FROM #__djcf_days WHERE days = " . $exp_days;
             $db->setQuery($query);
             $duration = $db->loadObject();
             if ($duration) {
                 $duration_price = $duration->price;
             } else {
                 //$exp_days = $par->get('exp_days','7');
                 $message = JText::_('COM_DJCLASSIFIEDS_WRONG_DURATION_LIMIT');
                 $app->redirect($new_ad_link, $message, 'error');
             }
         } else {
             $exp_days = $par->get('exp_days', '7');
         }
         if ($exp_days == 0) {
             $row->date_exp = "2038-01-01 00:00:00";
         } else {
             $row->date_exp = date("Y-m-d G:i:s", mktime(date("G"), date("i"), date("s"), date("m"), date("d") + $exp_days, date("Y")));
         }
         if ($row->date_exp == '1970-01-01 1:00:00') {
             $row->date_exp = '2038-01-19 00:00:00';
         }
         $row->exp_days = $exp_days;
         $row->date_start = date("Y-m-d H:i:s");
     }
     $row->cat_id = end($_POST['cats']);
     if (!$row->cat_id) {
         $row->cat_id = $_POST['cats'][count($_POST['cats']) - 2];
     }
     $row->cat_id = str_ireplace('p', '', $row->cat_id);
     /*if($par->get('region_add_type','1')){
     			$g_area = JRequest::getVar('g_area','');
     			$g_locality = JRequest::getVar('g_locality','');
     			$g_country = JRequest::getVar('g_country','');			
     			$latlong = str_ireplace(array('(',')'), array('',''), JRequest::getVar('latlong',''));
     			
     				$query = "SELECT id FROM #__djcf_regions WHERE name = '".$g_area."'";	
     				$db->setQuery($query);
     				$parent_r_id = $db->loadResult();
     				
     				if($parent_r_id){					
     					$query = "SELECT id FROM #__djcf_regions WHERE name = '".$g_locality."' AND parent_id=".$parent_r_id;	
     					$db->setQuery($query);
     					$region_id = $db->loadResult();
     					
     					if($region_id){
     						$row->region_id=$region_id;
     					}else{					
     						$region_row = &JTable::getInstance('Regions', 'DJClassifiedsTable');
     							$region_row->country=0;
     							$region_row->city=1;
     							$region_row->name=$g_locality;
     							$region_row->parent_id=$parent_r_id;
     													
     							//$ll = explode(',', $latlong);
     							//$region_row->latitude=$ll[0];
     							//$region_row->longitude=$ll[0];	
     							$region_row->published=1;
     							//echo '<pre>';print_r($region_row);die();							
     							if (!$region_row->store()){
     				        		exit ();	
     				    		}
     						$row->region_id=$region_row->id;	
     					}
     				}else{
     					$query = "SELECT id FROM #__djcf_regions WHERE name = '".$g_country."' ";	
     					$db->setQuery($query);
     					$country_id = $db->loadResult();
     					
     					if(!$country_id){$country_id=0;}
     					
     					$area_row = &JTable::getInstance('Regions', 'DJClassifiedsTable');
     						$area_row->country=0;
     						$area_row->city=0;
     						$area_row->name=$g_area;
     						$area_row->parent_id=$country_id;
     						$area_row->published=1;
     						//echo '<pre>';print_r($region_row);die();							
     						if (!$area_row->store()){
     			        		exit ();	
     			    		}
     					
     					$region_row = &JTable::getInstance('Regions', 'DJClassifiedsTable');
     						$region_row->country=0;
     						$region_row->city=1;
     						$region_row->name=$g_locality;
     						$region_row->parent_id=$area_row->id;
     												
     						//$ll = explode(',', $latlong);
     						//$region_row->latitude=$ll[0];
     						//$region_row->longitude=$ll[0];
     						$region_row->published=1;		
     						//echo '<pre>';print_r($region_row);die();							
     						if (!$region_row->store()){
     			        		exit ();	
     			    		}
     					$row->region_id=$region_row->id;	
     					
     				} 						
     		}else{*/
     $row->region_id = end($_POST['regions']);
     if (!$row->region_id) {
         $row->region_id = $_POST['regions'][count($_POST['regions']) - 2];
     }
     //}
     if (($row->region_id || $row->address) && ($row->latitude == '0.000000000000000' && $row->longitude == '0.000000000000000' || !$row->latitude && !$row->longitude)) {
         $address = '';
         if ($row->region_id) {
             $reg_path = DJClassifiedsRegion::getParentPath($row->region_id);
             for ($r = count($reg_path) - 1; $r >= 0; $r--) {
                 if ($reg_path[$r]->country) {
                     $address = $reg_path[$r]->name;
                 }
                 if ($reg_path[$r]->city) {
                     if ($address) {
                         $address .= ', ';
                     }
                     $address .= $reg_path[$r]->name;
                 }
             }
         }
         if ($address) {
             $address .= ', ';
         }
         $address .= $row->address;
         if ($row->post_code) {
             $address .= ', ' . $row->post_code;
         }
         $loc_coord = DJClassifiedsGeocode::getLocation($address);
         if (is_array($loc_coord)) {
             $row->latitude = $loc_coord['lat'];
             $row->longitude = $loc_coord['lng'];
         }
     }
     //echo '<pre>';print_r($row);die();
     $row->user_id = $user->id;
     $row->ip_address = $_SERVER['REMOTE_ADDR'];
     $row->promotions = '';
     if ($par->get('promotion', '1') == '1') {
         $query = "SELECT p.* FROM #__djcf_promotions p WHERE p.published=1 ORDER BY p.id ";
         $db->setQuery($query);
         $promotions = $db->loadObjectList();
         foreach ($promotions as $prom) {
             if (JRequest::getVar($prom->name, '0')) {
                 $row->promotions .= $prom->name . ',';
             }
         }
         if ($row->promotions) {
             $row->promotions = substr($row->promotions, 0, -1);
         }
     } else {
         if ($row->id > 0) {
             $row->promotions = $old_row->promotions;
         }
     }
     if (strstr($row->promotions, 'p_first')) {
         $row->special = 1;
     } else {
         $row->special = 0;
     }
     $cat = '';
     if ($row->cat_id) {
         $query = "SELECT name,alias,price,autopublish FROM #__djcf_categories WHERE id = " . $row->cat_id;
         $db->setQuery($query);
         $cat = $db->loadObject();
         if (!$cat->alias) {
             $cat->alias = DJClassifiedsSEO::getAliasName($cat->name);
         }
     }
     $is_new = 1;
     if ($row->id > 0) {
         $query = "SELECT * FROM #__djcf_items WHERE id = " . $row->id;
         $db->setQuery($query);
         $old_row = $db->loadObject();
         $query = "DELETE FROM #__djcf_fields_values WHERE item_id= " . $row->id . " ";
         $db->setQuery($query);
         $db->query();
         $query = "DELETE FROM #__djcf_fields_values_sale WHERE item_id= " . $row->id . " ";
         $db->setQuery($query);
         $db->query();
         $row->payed = $old_row->payed;
         $row->pay_type = $old_row->pay_type;
         $row->exp_days = $old_row->exp_days;
         $row->alias = $old_row->alias;
         $row->published = $old_row->published;
         $is_new = 0;
     }
     if (!$row->alias) {
         $row->alias = DJClassifiedsSEO::getAliasName($row->name);
     }
     $dispatcher->trigger('onBeforePaymentsDJClassifiedsSaveAdvert', array(&$row, $is_new, &$cat, &$promotions));
     if ($cat->autopublish == '0') {
         if ($par->get('autopublish') == '1') {
             $row->published = 1;
             if ($row->id) {
                 $message = JText::_('COM_DJCLASSIFIEDS_AD_SAVED_SUCCESSFULLY');
             } else {
                 $message = JText::_('COM_DJCLASSIFIEDS_AD_ADDED_SUCCESSFULLY');
             }
         } else {
             $row->published = 0;
             if ($row->id) {
                 $message = JText::_('COM_DJCLASSIFIEDS_AD_SAVED_SUCCESSFULLY_WAITING_FOR_PUBLISH');
             } else {
                 $message = JText::_('COM_DJCLASSIFIEDS_AD_ADDED_SUCCESSFULLY_WAITING_FOR_PUBLISH');
             }
             //$redirect="index.php?option=com_djclassifieds&view=items&cid=0".$itemid;
             $redirect = DJClassifiedsSEO::getItemRoute($row->id . ':' . $row->alias, $row->cat_id . ':' . $i->c_alias);
         }
     } elseif ($cat->autopublish == '1') {
         $row->published = 1;
         if ($row->id) {
             $message = JText::_('COM_DJCLASSIFIEDS_AD_SAVED_SUCCESSFULLY');
         } else {
             $message = JText::_('COM_DJCLASSIFIEDS_AD_ADDED_SUCCESSFULLY');
         }
     } elseif ($cat->autopublish == '2') {
         $row->published = 0;
         if ($row->id) {
             $message = JText::_('COM_DJCLASSIFIEDS_AD_SAVED_SUCCESSFULLY_WAITING_FOR_PUBLISH');
         } else {
             $message = JText::_('COM_DJCLASSIFIEDS_AD_ADDED_SUCCESSFULLY_WAITING_FOR_PUBLISH');
         }
         $redirect = DJClassifiedsSEO::getCategoryRoute('0:all');
     }
     $pay_redirect = 0;
     $row->pay_type = '';
     $row->payed = 1;
     //echo '<pre>';print_r($old_row);print_r($row);die();
     if (isset($old_row)) {
         if ($cat->price == 0 && $row->promotions == '' && !strstr($old_row->pay_type, 'duration')) {
             $row->payed = 1;
             $row->pay_type = '';
         } else {
             if ($old_row->cat_id != $row->cat_id && $cat->price > 0 || $old_row->promotions != $row->promotions || strstr($old_row->pay_type, 'duration') || $old_row->pay_type) {
                 $row->pay_type = '';
                 if ($old_row->cat_id != $row->cat_id && $cat->price > 0) {
                     $row->pay_type = 'cat,';
                 } else {
                     if ($old_row->cat_id == $row->cat_id && $cat->price > 0 && strstr($old_row->pay_type, 'cat')) {
                         $row->pay_type = 'cat,';
                     }
                 }
                 //if($old_row->promotions!=$row->promotions){
                 $prom_new = explode(',', $row->promotions);
                 for ($pn = 0; $pn < count($prom_new); $pn++) {
                     if (!strstr($old_row->promotions, $prom_new[$pn]) || strstr($old_row->pay_type, $prom_new[$pn])) {
                         $row->pay_type .= $prom_new[$pn] . ',';
                     }
                 }
                 //}
                 if (strstr($old_row->pay_type, 'duration')) {
                     $row->pay_type .= 'duration,';
                 }
                 if ($row->pay_type) {
                     $row->published = 0;
                     $row->payed = 0;
                     $pay_redirect = 1;
                 }
                 //echo $row->pay_type;print_r($old_row);
                 //print_r($row);echo $pay_redirect;die();
             } else {
                 if ($row->payed == 0 && ($cat->price > 0 || $row->promotions != '')) {
                     $row->payed = 0;
                     $row->published = 0;
                     $pay_redirect = 1;
                 }
             }
         }
     } else {
         if ($cat->price > 0 || $row->promotions != '' || $duration_price > 0) {
             if ($cat->price > 0) {
                 $row->pay_type .= 'cat,';
             }
             if ($duration_price > 0) {
                 $row->pay_type .= 'duration,';
             }
             if ($row->promotions != '') {
                 $row->pay_type .= $row->promotions;
             }
             $row->published = 0;
             $row->payed = 0;
             $pay_redirect = 1;
         } else {
             $row->payed = 1;
             $row->pay_type = '';
         }
     }
     //check for free promotions
     if (!strstr($row->pay_type, 'cat') && !strstr($row->pay_type, 'duration') && strstr($row->pay_type, 'p_')) {
         $prom_to_pay = explode(',', $row->pay_type);
         $prom_price = 0;
         for ($pp = 0; $pp < count($prom_to_pay); $pp++) {
             foreach ($promotions as $prom) {
                 if ($prom->name == $prom_to_pay[$pp]) {
                     $prom_price += $prom->price;
                 }
             }
         }
         if ($prom_price == 0) {
             $row->pay_type = '';
             $redirect = '';
             $pay_redirect = 0;
             if ($cat->autopublish == '0' && $par->get('autopublish') == '1' || $cat->autopublish == '1') {
                 $row->published = 1;
             }
         }
     }
     //echo '<pre>';print_r($row);die();echo '</pre>';
     $dispatcher->trigger('onBeforeDJClassifiedsSaveAdvert', array(&$row, $is_new));
     if (!$row->store()) {
         //echo $row->getError();exit ();
     }
     if ($is_new) {
         $query = "UPDATE #__djcf_items SET date_sort=date_start WHERE id=" . $row->id . " ";
         $db->setQuery($query);
         $db->query();
     }
     $item_images = '';
     $images_c = 0;
     if (!$is_new) {
         $query = "SELECT * FROM #__djcf_images WHERE item_id=" . $row->id . " AND type='item' ";
         $db->setQuery($query);
         $item_images = $db->loadObjectList('id');
         $images_c = count($item_images);
     }
     $img_ids = JRequest::getVar('img_id', array(), 'post', 'array');
     $img_captions = JRequest::getVar('img_caption', array(), 'post', 'array');
     $img_images = JRequest::getVar('img_image', array(), 'post', 'array');
     $img_id_to_del = '';
     if ($item_images) {
         foreach ($item_images as $item_img) {
             $img_to_del = 1;
             foreach ($img_ids as $img_id) {
                 if ($item_img->id == $img_id) {
                     $img_to_del = 0;
                     break;
                 }
             }
             if ($img_to_del) {
                 $images_c--;
                 $path_to_delete = JPATH_ROOT . $item_img->path . $item_img->name;
                 if (JFile::exists($path_to_delete . '.' . $item_img->ext)) {
                     JFile::delete($path_to_delete . '.' . $item_img->ext);
                 }
                 if (JFile::exists($path_to_delete . '_ths.' . $item_img->ext)) {
                     JFile::delete($path_to_delete . '_ths.' . $item_img->ext);
                 }
                 if (JFile::exists($path_to_delete . '_thm.' . $item_img->ext)) {
                     JFile::delete($path_to_delete . '_thm.' . $item_img->ext);
                 }
                 if (JFile::exists($path_to_delete . '_thb.' . $item_img->ext)) {
                     JFile::delete($path_to_delete . '_thb.' . $item_img->ext);
                 }
                 $img_id_to_del .= $item_img->id . ',';
             }
         }
         if ($img_id_to_del) {
             $query = "DELETE FROM #__djcf_images WHERE item_id=" . $row->id . " AND type='item' AND ID IN (" . substr($img_id_to_del, 0, -1) . ") ";
             $db->setQuery($query);
             $db->query();
         }
     }
     $last_id = $row->id;
     $imglimit = $par->get('img_limit', '3');
     $nw = (int) $par->get('th_width', -1);
     $nh = (int) $par->get('th_height', -1);
     $nws = (int) $par->get('smallth_width', -1);
     $nhs = (int) $par->get('smallth_height', -1);
     $nwm = (int) $par->get('middleth_width', -1);
     $nhm = (int) $par->get('middleth_height', -1);
     $nwb = (int) $par->get('bigth_width', -1);
     $nhb = (int) $par->get('bigth_height', -1);
     $img_ord = 1;
     $img_to_insert = 0;
     $query_img = "INSERT INTO #__djcf_images(`item_id`,`type`,`name`,`ext`,`path`,`caption`,`ordering`) VALUES ";
     $new_img_path = JPATH_SITE . "/components/com_djclassifieds/images/item/";
     for ($im = 0; $im < count($img_ids); $im++) {
         if ($img_ids[$im]) {
             if ($item_images[$img_ids[$im]]->ordering != $img_ord || $item_images[$img_ids[$im]]->caption != $img_captions[$im]) {
                 $query = "UPDATE #__djcf_images SET ordering='" . $img_ord . "', caption='" . $db->escape($img_captions[$im]) . "' WHERE item_id=" . $row->id . " AND type='item' AND id=" . $img_ids[$im] . " ";
                 $db->setQuery($query);
                 $db->query();
             }
         } else {
             if ($images_c >= $imglimit) {
                 break;
             }
             $new_img_name = explode(';', $img_images[$im]);
             if (is_array($new_img_name)) {
                 $new_img_name_u = JPATH_ROOT . '/tmp/djupload/' . $new_img_name[0];
                 if (JFile::exists($new_img_name_u)) {
                     if (getimagesize($new_img_name_u)) {
                         $new_img_n = $last_id . '_' . str_ireplace(' ', '_', $new_img_name[1]);
                         $new_img_n = $lang->transliterate($new_img_n);
                         $new_img_n = strtolower($new_img_n);
                         $new_img_n = JFile::makeSafe($new_img_n);
                         $nimg = 0;
                         $name_parts = pathinfo($new_img_n);
                         $img_name = $name_parts['filename'];
                         $img_ext = $name_parts['extension'];
                         $new_path_check = $new_img_path . $new_img_n;
                         $new_path_check = str_ireplace('.' . $img_ext, '_thm.' . $img_ext, $new_path_check);
                         while (JFile::exists($new_path_check)) {
                             $nimg++;
                             $new_img_n = $last_id . '_' . $nimg . '_' . str_ireplace(' ', '_', $new_img_name[1]);
                             $new_img_n = $lang->transliterate($new_img_n);
                             $new_img_n = strtolower($new_img_n);
                             $new_img_n = JFile::makeSafe($new_img_n);
                             $new_path_check = $new_img_path . $new_img_n;
                             $new_path_check = str_ireplace('.' . $img_ext, '_thm.' . $img_ext, $new_path_check);
                         }
                         rename($new_img_name_u, $new_img_path . $new_img_n);
                         $name_parts = pathinfo($new_img_n);
                         $img_name = $name_parts['filename'];
                         $img_ext = $name_parts['extension'];
                         DJClassifiedsImage::makeThumb($new_img_path . $new_img_n, $new_img_path . $img_name . '_ths.' . $img_ext, $nws, $nhs);
                         DJClassifiedsImage::makeThumb($new_img_path . $new_img_n, $new_img_path . $img_name . '_thm.' . $img_ext, $nwm, $nhm);
                         DJClassifiedsImage::makeThumb($new_img_path . $new_img_n, $new_img_path . $img_name . '_thb.' . $img_ext, $nwb, $nhb);
                         $query_img .= "('" . $row->id . "','item','" . $img_name . "','" . $img_ext . "','/components/com_djclassifieds/images/item/','" . $db->escape($img_captions[$im]) . "','" . $img_ord . "'), ";
                         $img_to_insert++;
                         if ($par->get('store_org_img', '1') == 0) {
                             JFile::delete($new_img_path . $new_img_n);
                         }
                     }
                 }
             }
             $images_c++;
         }
         $img_ord++;
     }
     if ($img_to_insert) {
         $query_img = substr($query_img, 0, -2) . ';';
         $db->setQuery($query_img);
         $db->query();
     }
     $imgfreelimit = $par->get('img_free_limit', '-1');
     if ($imgfreelimit > -1 && $images_c > $imgfreelimit) {
         $extra_images = $images_c - $imgfreelimit;
         $images_to_pay = $extra_images;
         if (!$is_new) {
             if ($old_row->extra_images >= $images_to_pay) {
                 $images_to_pay = 0;
             } else {
                 $images_to_pay = $images_to_pay - $old_row->extra_images;
             }
         }
         $images_to_pay = $images_to_pay + $old_row->extra_images_to_pay;
         if ($images_to_pay > 0) {
             $row->extra_images = $extra_images;
             $row->extra_images_to_pay = $images_to_pay;
             $row->pay_type .= 'extra_img,';
             $row->published = 0;
             $row->payed = 0;
             $pay_redirect = 1;
             $row->store();
         }
     }
     $desc_chars_limit = $par->get('pay_desc_chars_free_limit', 0);
     $desc_c = strlen($row->description);
     if ($par->get('pay_desc_chars', 0) && $desc_c > $desc_chars_limit) {
         $extra_chars = $desc_c - $desc_chars_limit;
         $chars_to_pay = $extra_chars;
         if (!$is_new) {
             if ($old_row->extra_chars >= $chars_to_pay) {
                 $chars_to_pay = 0;
             } else {
                 $chars_to_pay = $chars_to_pay - $old_row->extra_chars;
             }
         }
         $chars_to_pay = $chars_to_pay + $old_row->extra_chars_to_pay;
         if ($chars_to_pay > 0) {
             $row->extra_chars = $extra_chars;
             $row->extra_chars_to_pay = $chars_to_pay;
             $row->pay_type .= 'extra_chars,';
             $row->published = 0;
             $row->payed = 0;
             $pay_redirect = 1;
             $row->store();
         }
     }
     $query = "SELECT f.* FROM #__djcf_fields f " . "LEFT JOIN #__djcf_fields_xref fx ON f.id=fx.field_id " . " WHERE fx.cat_id  = " . $row->cat_id . " OR f.source=1 ";
     $db->setQuery($query);
     $fields_list = $db->loadObjectList();
     //echo '<pre>'; print_r($db);print_r($fields_list);die();
     $a_tags_cf = '';
     if ((int) $par->get('allow_htmltags_cf', '0')) {
         $allowed_tags_cf = explode(';', $par->get('allowed_htmltags_cf', ''));
         for ($a = 0; $a < count($allowed_tags_cf); $a++) {
             $a_tags_cf .= '<' . $allowed_tags_cf[$a] . '>';
         }
     }
     $ins = 0;
     if (count($fields_list) > 0) {
         $query = "INSERT INTO #__djcf_fields_values(`field_id`,`item_id`,`value`,`value_date`) VALUES ";
         foreach ($fields_list as $fl) {
             if ($fl->type == 'checkbox') {
                 if (isset($_POST[$fl->name])) {
                     $field_v = $_POST[$fl->name];
                     $f_value = ';';
                     for ($fv = 0; $fv < count($field_v); $fv++) {
                         $f_value .= $field_v[$fv] . ';';
                     }
                     $query .= "('" . $fl->id . "','" . $row->id . "','" . $db->escape($f_value) . "',''), ";
                     $ins++;
                 }
             } else {
                 if ($fl->type == 'date') {
                     if (isset($_POST[$fl->name])) {
                         $f_var = JRequest::getVar($fl->name, '', '', 'string');
                         $query .= "('" . $fl->id . "','" . $row->id . "','','" . $db->escape($f_var) . "'), ";
                         $ins++;
                     }
                 } else {
                     if (isset($_POST[$fl->name])) {
                         if ($a_tags_cf) {
                             $f_var = JRequest::getVar($fl->name, '', '', 'string', JREQUEST_ALLOWRAW);
                             $f_var = strip_tags($f_var, $a_tags_cf);
                         } else {
                             $f_var = JRequest::getVar($fl->name, '', '', 'string');
                         }
                         $query .= "('" . $fl->id . "','" . $row->id . "','" . $db->escape($f_var) . "',''), ";
                         $ins++;
                     }
                 }
             }
         }
     }
     //print_r($query);die();
     if ($ins > 0) {
         $query = substr($query, 0, -2) . ';';
         $db->setQuery($query);
         $db->query();
     }
     $query = "SELECT f.* FROM #__djcf_fields f " . "LEFT JOIN #__djcf_fields_xref fx ON f.id=fx.field_id " . "WHERE fx.cat_id  = " . $row->cat_id . " AND f.in_buynow=1 ";
     $db->setQuery($query);
     $fields_list = $db->loadObjectList();
     //echo '<pre>'; print_r($_POST);print_r($fields_list);die();
     $ins = 0;
     if (count($fields_list) > 0) {
         $query = "INSERT INTO #__djcf_fields_values_sale(`item_id`,`quantity`,`options`) VALUES ";
         $bn_quantity = JRequest::getVar('bn-quantity', array());
         $quantity_total = 0;
         foreach ($fields_list as &$fl) {
             $fl->bn_values = JRequest::getVar('bn-' . $fl->name, array());
         }
         $bn_options = array();
         for ($q = 0; $q < count($bn_quantity); $q++) {
             if ($bn_quantity[$q] == '' || $bn_quantity[$q] == 0) {
                 continue;
             }
             $bn_option = array();
             $bn_option['quantity'] = $bn_quantity[$q];
             $bn_option['options'] = array();
             $quantity_total = $quantity_total + $bn_quantity[$q];
             foreach ($fields_list as &$fl) {
                 if ($fl->bn_values[$q]) {
                     $bn_opt = array();
                     $bn_opt['id'] = $fl->id;
                     $bn_opt['name'] = $fl->name;
                     $bn_opt['label'] = $fl->label;
                     $bn_opt['value'] = $fl->bn_values[$q];
                     $bn_option['options'][] = $bn_opt;
                 }
             }
             if (count($bn_option['options'])) {
                 $bn_options[] = $bn_option;
             }
         }
         if (count($bn_options)) {
             foreach ($bn_options as $opt) {
                 $query .= "('" . $row->id . "','" . $opt['quantity'] . "','" . $db->escape(json_encode($opt['options'])) . "'), ";
                 $ins++;
             }
             if ($ins) {
                 $query = substr($query, 0, -2) . ';';
                 $db->setQuery($query);
                 $db->query();
                 $query = "UPDATE #__djcf_items SET quantity=" . $quantity_total . " WHERE id=" . $row->id . " ";
                 $db->setQuery($query);
                 $db->query();
             }
         }
     }
     if ($par->get('notify_admin', '0')) {
         if ($id > 0) {
             $new_ad = 0;
         } else {
             $new_ad = 1;
         }
         if ($par->get('notify_admin', '0') == 1) {
             DJClassifiedsNotify::notifyAdmin($row, $cat, $new_ad);
         } else {
             if ($par->get('notify_admin', '0') == 2 && $id == 0) {
                 DJClassifiedsNotify::notifyAdmin($row, $cat, $new_ad);
             }
         }
     }
     if ($id == 0 && $par->get('user_new_ad_email', '0') && ($user->id > 0 || $par->get('email_for_guest', '0') && $row->email)) {
         DJClassifiedsNotify::notifyNewAdvertUser($row, $cat);
     }
     $dispatcher->trigger('onAfterDJClassifiedsSaveAdvert', array(&$row, $is_new));
     if ($pay_redirect == 1) {
         $menu_uads_itemid = $menus->getItems('link', 'index.php?option=com_djclassifieds&view=useritems', 1);
         $redirect = 'index.php?option=com_djclassifieds&view=payment&id=' . $row->id;
         if ($menu_uads_itemid) {
             $redirect .= '&Itemid=' . $menu_uads_itemid->id;
         }
         //$redirect= 'index.php?option=com_djclassifieds&view=payment&id='.$row->id.$itemid;
         if ($row->id) {
             $message = JTExt::_('COM_DJCLASSIFIEDS_AD_SAVED_SUCCESSFULLY_CHOOSE_PAYMENT');
         } else {
             $message = JTExt::_('COM_DJCLASSIFIEDS_AD_ADDED_SUCCESSFULLY_CHOOSE_PAYMENT');
         }
     }
     if (!$redirect) {
         //$redirect= 'index.php?option=com_djclassifieds&view=item&cid='.$row->cat_id.'&id='.$row->id.$itemid;
         $redirect = DJClassifiedsSEO::getItemRoute($row->id . ':' . $row->alias, $row->cat_id . ':' . $cat->alias);
     }
     $redirect = JRoute::_($redirect, false);
     $app->redirect($redirect, $message);
 }
 function getCountItems($catlist = '')
 {
     $par = JComponentHelper::getParams('com_djclassifieds');
     $user = JFactory::getUser();
     $db = JFactory::getDBO();
     $where = '';
     if ($catlist) {
         $where = ' AND i.cat_id IN (' . $catlist . ') ';
     }
     $uid = JRequest::getVar('uid', '0', '', 'int');
     if ($uid > 0) {
         $where .= " AND i.user_id=" . $uid . " ";
     }
     $fav_lj = '';
     if ($par->get('favourite', '1') && $user->id > 0) {
         $fav_lj = "LEFT JOIN ( SELECT * FROM #__djcf_favourites WHERE user_id=" . $user->id . ") f ON i.id=f.item_id ";
         $fav = JRequest::getVar('fav', '0', '', 'int');
         if ($fav > 0) {
             $where .= " AND f.id IS NOT NULL ";
         }
     }
     $search = '';
     $search_fields = '';
     $cat_id = 0;
     $reg_id = 0;
     $search_radius_v = '';
     $search_radius_h = '';
     if (JRequest::getVar('se', '0', '', 'string') != '0') {
         if (JRequest::getVar('search', JText::_('COM_DJCLASSIFIEDS_SEARCH'), '', 'string') != JText::_('COM_DJCLASSIFIEDS_SEARCH')) {
             $search_word = $db->Quote('%' . $db->escape(JRequest::getVar('search', '', '', 'string'), true) . '%');
             $search = " AND (CONCAT_WS(i.name,i.intro_desc,i.description) LIKE " . $search_word . " OR c.name LIKE " . $search_word . " OR r.name LIKE " . $search_word . " ) ";
         }
         if (isset($_GET['se_cats'])) {
             $cat_id = end($_GET['se_cats']);
             if ($cat_id == '' && count($_GET['se_cats']) > 2) {
                 $cat_id = $_GET['se_cats'][count($_GET['se_cats']) - 2];
             }
         }
         $cat_id = str_ireplace('p', '', $cat_id);
         if ($cat_id > 0) {
             $cats = DJClassifiedsCategory::getSubCat($cat_id, 1);
             $catlist = $cat_id;
             foreach ($cats as $c) {
                 $catlist .= ',' . $c->id;
             }
             $search .= ' AND i.cat_id IN (' . $catlist . ') ';
             $search_fields = $this->getSearchFields();
         }
         if (isset($_GET['se_regs'])) {
             $reg_id = end($_GET['se_regs']);
             if ($reg_id == '' && count($_GET['se_regs']) > 2) {
                 $reg_id = $_GET['se_regs'][count($_GET['se_regs']) - 2];
             }
             $reg_id = (int) $reg_id;
         }
         if ($reg_id > 0) {
             $regs = DJClassifiedsRegion::getSubReg($reg_id, 1);
             $reglist = $reg_id;
             foreach ($regs as $r) {
                 $reglist .= ',' . $r->id;
             }
             $search .= ' AND i.region_id IN (' . $reglist . ') ';
         }
         $se_price_from = JRequest::getInt('se_price_f', '');
         $se_price_to = JRequest::getInt('se_price_t', '');
         if ($se_price_from) {
             $search .= " AND ABS(i.price) >= '" . $se_price_from . "' ";
         }
         if ($se_price_to && $se_price_to > $se_price_from) {
             $search .= " AND ABS(i.price) <= '" . $se_price_to . "' ";
         }
         $type_id = JRequest::getInt('se_type_id', '0');
         if ($type_id > 0) {
             $where .= " AND i.type_id=" . $type_id . " ";
         }
         $days_l = JRequest::getInt('days_l', '0');
         if ($days_l > 0) {
             $date_limit = date("Y-m-d H:i:s", mktime(date("H"), date("i"), date("s"), date("m"), date("d") - $days_l, date("Y")));
             $where .= " AND i.date_start >= '" . $date_limit . "' ";
         }
         $only_img = JRequest::getInt('se_only_img', 0);
         if ($only_img == 1) {
             $search .= " AND img.img_c>0 ";
         }
         $only_video = JRequest::getInt('se_only_video', 0);
         if ($only_video == 1) {
             $search .= " AND i.video!='' ";
         }
         $postcode = JRequest::getVar('se_postcode', '');
         $radius = JRequest::getInt('se_radius', 0);
         if ($postcode && $radius) {
             $postcode_country = JRequest::getVar('se_postcode_c', '');
             $post_coord = DJClassifiedsGeocode::getLocationPostCode($postcode, $postcode_country);
             $radius_unit = JRequest::getCmd('se_radius_unit', 'km');
             if ($radius_unit == 'mile') {
                 $radius_unit_v = 6371;
             } else {
                 $radius_unit_v = 3959;
             }
             if ($post_coord) {
                 $search_radius_v = ', ( ' . $radius_unit_v . ' * acos( cos( radians(' . $post_coord['lat'] . ') ) * cos( radians( i.latitude ) ) * cos( radians( i.longitude ) - radians(' . $post_coord['lng'] . ') ) + sin( radians(' . $post_coord['lat'] . ') ) * sin( radians( i.latitude ) ) ) ) AS distance ';
                 $search_radius_h = 'HAVING distance < ' . $radius . ' ';
             }
         }
     }
     $date_time = JFactory::getDate();
     $date_exp = $date_time->toSQL();
     $query = "SELECT count(i.id) FROM (SELECT i.id " . $search_radius_v . " FROM " . $search_fields . " #__djcf_items i " . "LEFT JOIN #__djcf_categories c ON i.cat_id = c.id " . "LEFT JOIN #__djcf_regions r ON i.region_id = r.id " . "LEFT JOIN ( SELECT COUNT(img.id) as img_c, img.item_id FROM #__djcf_images img\r\n\t\t\t\t\t\t\t\tWHERE img.type='item' GROUP BY item_id ) img ON i.id=img.item_id " . $fav_lj . "WHERE i.date_exp > NOW() AND i.published=1 " . $where . $search;
     if ($search_fields) {
         $query .= " AND sf.item_id=i.id ";
     }
     $query .= $search_radius_h;
     $query .= " ) as i ";
     $db->setQuery($query);
     $items_count = $db->loadResult();
     //echo '<pre>';print_r($db);print_r($items_count);echo '<pre>';die();
     return $items_count;
 }
require_once JPATH_BASE . DS . 'administrator' . DS . 'components' . DS . 'com_djclassifieds' . DS . 'lib' . DS . 'djseo.php';
require_once JPATH_BASE . DS . 'administrator' . DS . 'components' . DS . 'com_djclassifieds' . DS . 'lib' . DS . 'djtheme.php';
$reg_id = 0;
if (isset($_GET['se_regs'])) {
    if (is_array($_GET['se_regs'])) {
        $reg_id = end($_GET['se_regs']);
        if ($reg_id == '' && count($_GET['se_regs']) > 2) {
            $reg_id = $_GET['se_regs'][count($_GET['se_regs']) - 2];
        }
    } else {
        $reg_ids = explode(',', JRequest::getVar('se_regs'));
        $reg_id = end($reg_ids);
    }
    $reg_id = (int) $reg_id;
}
$djcfreglib = new DJClassifiedsRegion();
$show_items_c = $params->get('items_count', 0);
$ret = $djcfreglib->getMenuRegions($reg_id, $show_items_c);
//echo '<pre>';print_r($ret);die();
if ($params->get('expand_type', '0') == 1) {
    if ($params->get('region_id', '0')) {
        $regs = $djcfreglib->getSubReg($params->get('region_id', '0'), $show_items_c);
        //echo '<pre>';print_r($regs);die();
    } else {
        $regs = $ret[2];
    }
} else {
    $regs = $ret[0];
}
$reg_path = $ret[1];
$menus = $app->getMenu('site');
 public function save()
 {
     $app = JFactory::getApplication();
     $model = $this->getModel('item');
     $row = JTable::getInstance('Items', 'DJClassifiedsTable');
     $par = JComponentHelper::getParams('com_djclassifieds');
     $db = JFactory::getDBO();
     $lang = JFactory::getLanguage();
     $dispatcher = JDispatcher::getInstance();
     $row->bind(JRequest::get('post'));
     $row->description = JRequest::getVar('description', '', 'post', 'string', JREQUEST_ALLOWRAW);
     $row->intro_desc = JRequest::getVar('intro_desc', '', 'post', 'string', JREQUEST_ALLOWRAW);
     $row->contact = nl2br(JRequest::getVar('contact', '', 'post', 'string'));
     if ($row->alias) {
         $row->alias = DJClassifiedsSEO::getAliasName($row->alias);
     } else {
         $row->alias = DJClassifiedsSEO::getAliasName($row->name);
     }
     $row->image_url = '';
     //$exp_date = explode('-', $_POST['date_expir']);
     //$exp_time = explode(':', $_POST['time_expir']);
     //$row->date_exp = mktime($exp_time[0],$exp_time[1],0,$exp_date[1],$exp_date[2],$exp_date[0]);
     $row->date_exp = $_POST['date_expir'] . ' ' . $_POST['time_expir'] . ':00';
     $is_new = 1;
     if ($row->id > 0) {
         $old_date_exp = JRequest::getVar('date_exp_old', '');
         if ($old_date_exp != $row->date_exp) {
             $row->notify = 0;
         }
         $is_new = 0;
     }
     if ($row->id == 0) {
         $row->exp_days = ceil((strtotime($row->date_exp) - time()) / (60 * 60 * 24));
     }
     if ($row->user_id == 0 && $row->id == 0) {
         $user = JFactory::getUser();
         $row->user_id = $user->id;
         $row->ip_address = $_SERVER['REMOTE_ADDR'];
     }
     $row->region_id = end($_POST['regions']);
     if (!$row->region_id) {
         $row->region_id = $_POST['regions'][count($_POST['regions']) - 2];
         if (!reset($_POST['regions'])) {
             $row->region_id = 0;
         }
     }
     if ($row->id > 0) {
         $query = "DELETE FROM #__djcf_fields_values WHERE item_id= " . $row->id . " ";
         $db->setQuery($query);
         $db->query();
         if ($row->payed == 1) {
             $row->pay_type = '';
             $query = "UPDATE #__djcf_payments SET status='Completed' WHERE item_id= " . $row->id . " AND type=0 ";
             $db->setQuery($query);
             $db->query();
         }
     }
     $row->promotions = '';
     $query = "SELECT p.* FROM #__djcf_promotions p ORDER BY p.id ";
     $db->setQuery($query);
     $promotions = $db->loadObjectList();
     foreach ($promotions as $prom) {
         if (JRequest::getVar($prom->name, '0')) {
             $row->promotions .= $prom->name . ',';
         }
     }
     if ($row->promotions) {
         $row->promotions = substr($row->promotions, 0, -1);
     }
     if (strstr($row->promotions, 'p_first')) {
         $row->special = 1;
     } else {
         $row->special = 0;
     }
     if (($row->region_id || $row->address) && ($row->latitude == '0.000000000000000' && $row->longitude == '0.000000000000000' || !$row->latitude && !$row->longitude)) {
         $address = '';
         if ($row->region_id) {
             $reg_path = DJClassifiedsRegion::getParentPath($row->region_id);
             for ($r = count($reg_path) - 1; $r >= 0; $r--) {
                 if ($reg_path[$r]->country) {
                     $address = $reg_path[$r]->name;
                 }
                 if ($reg_path[$r]->city) {
                     if ($address) {
                         $address .= ', ';
                     }
                     $address .= $reg_path[$r]->name;
                 }
             }
         }
         if ($address) {
             $address .= ', ';
         }
         $address .= $row->address;
         if ($row->post_code) {
             $address .= ', ' . $row->post_code;
         }
         $loc_coord = DJClassifiedsGeocode::getLocation($address);
         if (is_array($loc_coord)) {
             $row->latitude = $loc_coord['lat'];
             $row->longitude = $loc_coord['lng'];
         }
     }
     //echo '<pre>';print_r($_POST);print_r($row);echo '</pre>';die();
     if (!$row->store()) {
         echo $row->getError();
         exit;
     }
     if ($is_new) {
         $query = "UPDATE #__djcf_items SET date_sort=date_start WHERE id=" . $row->id . " ";
         $db->setQuery($query);
         $db->query();
     }
     $item_images = '';
     if (!$is_new) {
         $query = "SELECT * FROM #__djcf_images WHERE item_id=" . $row->id . " AND type='item' ";
         $db->setQuery($query);
         $item_images = $db->loadObjectList('id');
     }
     $img_ids = JRequest::getVar('img_id', array(), 'post', 'array');
     $img_captions = JRequest::getVar('img_caption', array(), 'post', 'array');
     $img_images = JRequest::getVar('img_image', array(), 'post', 'array');
     $img_id_to_del = '';
     foreach ($item_images as $item_img) {
         $img_to_del = 1;
         foreach ($img_ids as $img_id) {
             if ($item_img->id == $img_id) {
                 $img_to_del = 0;
                 break;
             }
         }
         if ($img_to_del) {
             $path_to_delete = JPATH_ROOT . $item_img->path . $item_img->name;
             if (JFile::exists($path_to_delete . '.' . $item_img->ext)) {
                 JFile::delete($path_to_delete . '.' . $item_img->ext);
             }
             if (JFile::exists($path_to_delete . '_ths.' . $item_img->ext)) {
                 JFile::delete($path_to_delete . '_ths.' . $item_img->ext);
             }
             if (JFile::exists($path_to_delete . '_thm.' . $item_img->ext)) {
                 JFile::delete($path_to_delete . '_thm.' . $item_img->ext);
             }
             if (JFile::exists($path_to_delete . '_thb.' . $item_img->ext)) {
                 JFile::delete($path_to_delete . '_thb.' . $item_img->ext);
             }
             $img_id_to_del .= $item_img->id . ',';
         }
     }
     if ($img_id_to_del) {
         $query = "DELETE FROM #__djcf_images WHERE item_id=" . $row->id . " AND type='item' AND ID IN (" . substr($img_id_to_del, 0, -1) . ") ";
         $db->setQuery($query);
         $db->query();
     }
     $last_id = $row->id;
     $nw = (int) $par->get('th_width', -1);
     $nh = (int) $par->get('th_height', -1);
     $nws = (int) $par->get('smallth_width', -1);
     $nhs = (int) $par->get('smallth_height', -1);
     $nwm = (int) $par->get('middleth_width', -1);
     $nhm = (int) $par->get('middleth_height', -1);
     $nwb = (int) $par->get('bigth_width', -1);
     $nhb = (int) $par->get('bigth_height', -1);
     $img_ord = 1;
     $img_to_insert = 0;
     $query_img = "INSERT INTO #__djcf_images(`item_id`,`type`,`name`,`ext`,`path`,`caption`,`ordering`) VALUES ";
     $new_img_path = JPATH_SITE . "/components/com_djclassifieds/images/item/";
     for ($im = 0; $im < count($img_ids); $im++) {
         if ($img_ids[$im]) {
             if ($item_images[$img_ids[$im]]->ordering != $img_ord || $item_images[$img_ids[$im]]->caption != $img_captions[$im]) {
                 $query = "UPDATE #__djcf_images SET ordering='" . $img_ord . "', caption='" . $db->escape($img_captions[$im]) . "' WHERE item_id=" . $row->id . " AND type='item' AND id=" . $img_ids[$im] . " ";
                 $db->setQuery($query);
                 $db->query();
             }
         } else {
             $new_img_name = explode(';', $img_images[$im]);
             if (is_array($new_img_name)) {
                 $new_img_name_u = JPATH_ROOT . '/tmp/djupload/' . $new_img_name[0];
                 if (JFile::exists($new_img_name_u)) {
                     if (getimagesize($new_img_name_u)) {
                         $new_img_n = $last_id . '_' . str_ireplace(' ', '_', $new_img_name[1]);
                         $new_img_n = $lang->transliterate($new_img_n);
                         $new_img_n = strtolower($new_img_n);
                         $new_img_n = JFile::makeSafe($new_img_n);
                         $new_path_check = $new_img_path . $new_img_n;
                         $nimg = 0;
                         while (JFile::exists($new_path_check)) {
                             $nimg++;
                             $new_img_n = $last_id . '_' . $nimg . '_' . str_ireplace(' ', '_', $new_img_name[1]);
                             $new_img_n = $lang->transliterate($new_img_n);
                             $new_img_n = strtolower($new_img_n);
                             $new_img_n = JFile::makeSafe($new_img_n);
                             $new_path_check = $new_img_path . $new_img_n;
                         }
                         rename($new_img_name_u, $new_img_path . $new_img_n);
                         $name_parts = pathinfo($new_img_n);
                         $img_name = $name_parts['filename'];
                         $img_ext = $name_parts['extension'];
                         DJClassifiedsImage::makeThumb($new_img_path . $new_img_n, $new_img_path . $img_name . '_ths.' . $img_ext, $nws, $nhs);
                         DJClassifiedsImage::makeThumb($new_img_path . $new_img_n, $new_img_path . $img_name . '_thm.' . $img_ext, $nwm, $nhm);
                         DJClassifiedsImage::makeThumb($new_img_path . $new_img_n, $new_img_path . $img_name . '_thb.' . $img_ext, $nwb, $nhb);
                         $query_img .= "('" . $row->id . "','item','" . $img_name . "','" . $img_ext . "','/components/com_djclassifieds/images/item/','" . $db->escape($img_captions[$im]) . "','" . $img_ord . "'), ";
                         $img_to_insert++;
                         if ($par->get('store_org_img', '1') == 0) {
                             JFile::delete($new_img_path . $new_img_n);
                         }
                     }
                 }
             }
         }
         $img_ord++;
     }
     if ($img_to_insert) {
         $query_img = substr($query_img, 0, -2) . ';';
         $db->setQuery($query_img);
         $db->query();
     }
     //if($row->cat_id){
     $query = "SELECT f.* FROM #__djcf_fields f " . "LEFT JOIN #__djcf_fields_xref fx ON f.id=fx.field_id " . "WHERE (fx.cat_id  = " . $row->cat_id . " OR f.source=1) ";
     $db->setQuery($query);
     $fields_list = $db->loadObjectList();
     //echo '<pre>'; print_r($db);print_r($fields_list);die();
     $ins = 0;
     if (count($fields_list) > 0) {
         $query = "INSERT INTO #__djcf_fields_values(`field_id`,`item_id`,`value`,`value_date`) VALUES ";
         foreach ($fields_list as $fl) {
             if ($fl->type == 'checkbox') {
                 if (isset($_POST[$fl->name])) {
                     $field_v = $_POST[$fl->name];
                     $f_value = ';';
                     for ($fv = 0; $fv < count($field_v); $fv++) {
                         $f_value .= $field_v[$fv] . ';';
                     }
                     $query .= "('" . $fl->id . "','" . $row->id . "','" . $db->escape($f_value) . "',''), ";
                     $ins++;
                 }
             } else {
                 if ($fl->type == 'date') {
                     if (isset($_POST[$fl->name])) {
                         $f_var = JRequest::getVar($fl->name, '', '', 'string');
                         $query .= "('" . $fl->id . "','" . $row->id . "','','" . $db->escape($f_var) . "'), ";
                         $ins++;
                     }
                 } else {
                     if (isset($_POST[$fl->name])) {
                         $f_var = JRequest::getVar($fl->name, '', '', 'string', JREQUEST_ALLOWRAW);
                         $query .= "('" . $fl->id . "','" . $row->id . "','" . $db->escape($f_var) . "',''), ";
                         $ins++;
                     }
                 }
             }
         }
     }
     //print_r($query);die();
     if ($ins) {
         $query = substr($query, 0, -2) . ';';
         $db->setQuery($query);
         $db->query();
     }
     //}
     JPluginHelper::importPlugin('djclassifieds');
     $dispatcher->trigger('onAfterDJClassifiedsSaveAdvert', array($row, $is_new));
     switch (JRequest::getVar('task')) {
         case 'apply':
             $link = 'index.php?option=com_djclassifieds&task=item.edit&id=' . $row->id;
             $msg = JText::_('COM_DJCLASSIFIEDS_ITEM_SAVED');
             break;
         case 'save2new':
             $link = 'index.php?option=com_djclassifieds&task=item.add';
             $msg = JText::_('COM_DJCLASSIFIEDS_ITEM_SAVED');
             break;
         case 'saveItem':
         default:
             $link = 'index.php?option=com_djclassifieds&view=items';
             $msg = JText::_('COM_DJCLASSIFIEDS_ITEM_SAVED');
             break;
     }
     $app->redirect($link, $msg);
 }
Example #13
0
 public static function getItems($params)
 {
     $date_time = JFactory::getDate();
     $date_exp = $date_time->toSQL();
     $db = JFactory::getDBO();
     $user = JFactory::getUser();
     $ord = "i.date_start DESC";
     if ($params->get('items_ord') == 1) {
         $ord = "i.display DESC";
     } else {
         if ($params->get('items_ord') == 2) {
             $ord = "rand()";
         } else {
             if ($params->get('items_ord') == 3) {
                 $ord = "i.name";
             }
         }
     }
     $promoted = '';
     $prom_list = array();
     if ($params->get('only_p_special', '0') == 1) {
         $prom_list[] = " i.promotions LIKE '%p_special%' ";
     }
     if ($params->get('only_p_first', '0') == 1) {
         $prom_list[] = " i.promotions LIKE '%p_first%' ";
     }
     if ($params->get('only_p_bold', '0') == 1) {
         $prom_list[] = " i.promotions LIKE '%p_bold%' ";
     }
     if ($params->get('only_p_border', '0') == 1) {
         $prom_list[] = " i.promotions LIKE '%p_border%' ";
     }
     if ($params->get('only_p_bg', '0') == 1) {
         $prom_list[] = " i.promotions LIKE '%p_bg%' ";
     }
     if (count($prom_list) == 1) {
         $promoted = ' AND ' . $prom_list[0] . ' ';
     } else {
         if (count($prom_list) > 1) {
             $promoted = ' AND (' . implode(' OR ', $prom_list) . ') ';
         }
     }
     $item_ids = $params->get('items_ids', '');
     if ($item_ids) {
         $item_ids = ' AND i.id IN (' . $item_ids . ')';
     } else {
         $item_ids = '';
     }
     $users_ids = $params->get('users_ids', '');
     if ($users_ids) {
         $users_ids = ' AND i.user_id IN (' . $users_ids . ')';
     } else {
         $users_ids = '';
     }
     $types_ids = $params->get('type_id', '');
     if (is_array($types_ids)) {
         $types_ids = ' AND i.type_id IN (' . implode(',', $types_ids) . ')';
     } else {
         $types_ids = '';
     }
     $cat_ids = $params->get('cat_id', '0');
     $cid = JRequest::getInt('cid', '0');
     $fallow_cat = '';
     $cat_list = '';
     if ($params->get('fallow_category') == 1 && JRequest::getVar('option', '') == 'com_djclassifieds' && $cid > 0) {
         $djcfcatlib = new DJClassifiedsCategory();
         $cats = $djcfcatlib->getSubCat($cid, 1);
         $catlist = $cid;
         foreach ($cats as $c) {
             $catlist .= ',' . $c->id;
         }
         $fallow_cat = ' AND i.cat_id IN (' . $catlist . ') ';
     } else {
         if (is_array($cat_ids)) {
             if (count($cat_ids) > 1) {
                 $cat_list = ' AND i.cat_id IN (' . implode(',', $cat_ids) . ') ';
             } else {
                 if ($cat_ids[0] > 0) {
                     $cat_list = ' AND i.cat_id = ' . $cat_ids[0] . ' ';
                 }
             }
         }
     }
     $reg_ids = $params->get('region_id', '0');
     $fallow_region = '';
     $region_list = '';
     if ($params->get('fallow_region', '0') == 1 && JRequest::getVar('option', '') == 'com_djclassifieds' && JRequest::getVar('view', '') == 'item') {
         $djcfreglib = new DJClassifiedsRegion();
         $id = JRequest::getInt('id', '0');
         $query = "SELECT i.region_id FROM #__djcf_items i " . "WHERE i.id=" . $id . " LIMIT 1";
         $db->setQuery($query);
         $region_id = $db->loadResult();
         if ($region_id) {
             $regs = $djcfreglib->getSubReg($region_id);
             $reglist = $region_id;
             foreach ($regs as $r) {
                 $reglist .= ',' . $r->id;
             }
             $fallow_region = ' AND i.region_id IN (' . $reglist . ') ';
         }
     }
     if (is_array($reg_ids) && $fallow_region == '') {
         if (count($reg_ids) > 1) {
             $region_list = ' AND i.region_id IN (' . implode(',', $reg_ids) . ') ';
         } else {
             if ($reg_ids[0] > 0) {
                 $region_list = ' AND i.region_id = ' . $reg_ids[0] . ' ';
             }
         }
     }
     $only_img = '';
     if ($params->get('only_with_img', '0') == 1) {
         $only_img = " AND img.name !='' ";
     }
     $source = '';
     $fav_lj = '';
     $fav_s = '';
     if ($user->id) {
         if ($params->get('items_source', '0') == 1) {
             $source = ' AND i.user_id=' . $user->id . ' ';
         } else {
             if ($params->get('items_source', '0') == 2) {
                 $fav_lj = "LEFT JOIN ( SELECT * FROM #__djcf_favourites WHERE user_id=" . $user->id . ") f ON i.id=f.item_id ";
                 $fav_s = ',f.id as f_id ';
                 $source = " AND f.id IS NOT NULL ";
             }
         }
     }
     $query = "SELECT i.*,c.id as c_id, c.name as c_name,c.alias as c_alias,c.icon_url as c_icon_url, r.name as r_name, " . " img.path as img_path, img.name as img_name, img.ext as img_ext,img.caption as img_caption " . $fav_s . "FROM #__djcf_categories c, #__djcf_items i " . "LEFT JOIN #__djcf_regions r ON r.id=i.region_id " . $fav_lj . "LEFT JOIN ( SELECT img.id, img.item_id, img.name, img.path, img.ext, img.ordering, img.caption \n\t\t \t\t\t\t\t  FROM (SELECT * FROM #__djcf_images WHERE type='item' ORDER BY ordering) img GROUP BY img.item_id ) AS img ON img.item_id=i.id " . "WHERE i.date_exp > '" . $date_exp . "' AND i.published = 1 AND c.published = 1 AND i.cat_id=c.id " . $promoted . $item_ids . $users_ids . $fallow_cat . $cat_list . $fallow_region . $region_list . $types_ids . $only_img . $source . "ORDER BY " . $ord . " limit " . $params->get('items_nr');
     $db->setQuery($query);
     $items = $db->loadObjectList();
     //echo '<pre>';print_r($db);die();
     return $items;
 }
Example #14
0
echo JText::_('JSEARCH_FILTER_SUBMIT');
?>
</button>
			<button type="button" onclick="document.id('filter_search').value='';this.form.submit();"><?php 
echo JText::_('JSEARCH_FILTER_CLEAR');
?>
</button>
		</div>
		<div class="filter-select fltrt">
			<select name="filter_region" class="inputbox" onchange="this.form.submit()">
				<option value=""><?php 
echo JText::_('COM_DJCLASSIFIEDS_SELECT_REGION');
?>
</option>	
				<?php 
echo JHtml::_('select.options', DJClassifiedsRegion::getRegSelect(), 'value', 'text', $this->state->get('filter.region'));
?>
			</select>
		</div>
	</fieldset>
	<div class="clr"> </div>
    <table class="adminlist">
        <thead>
            <tr>
                <th width="5%">
                    <input type="checkbox" name="checkall-toggle" value="" onclick="checkAll(this)" />
                </th>
                <th width="5%">
					<?php 
echo JText::_('COM_DJCLASSIFIEDS_ID');
?>
Example #15
0
 public static function getListSubreg(&$lists, &$lists_const, $main_id = 0, $main_level = 0, $main_f = 0, &$option = array())
 {
     $liczba = count($lists_const);
     foreach ($lists as $list) {
         if (isset($list->level)) {
             $current_level = $list->level;
         } else {
             $current_level = 0;
         }
         if ($main_f == 1 && ($main_level > $current_level || $current_level == $main_level)) {
             break;
         }
         if ($main_id == $list->id) {
             $main_f = 1;
             $main_level = $current_level;
         }
         if ($main_f == 1 && $main_level < $current_level) {
             $cat_item = new CatItem();
             $cat_item->id = $list->id;
             $cat_item->name = $list->name;
             $cat_item->parent_id = $list->parent_id;
             $cat_item->parent_name = $list->parent_name;
             $cat_item->country = $list->country;
             $cat_item->city = $list->city;
             $cat_item->published = $list->published;
             $cat_item->level = $current_level;
             $option[] = $cat_item;
         }
         $childs = array();
         if (isset($lists_const[$list->id])) {
             for ($i = 0; $i < count($lists_const[$list->id]); $i++) {
                 $child = new RegionItem();
                 $child->id = $lists_const[$list->id][$i]->id;
                 $child->name = $lists_const[$list->id][$i]->name;
                 $child->parent_id = $lists_const[$list->id][$i]->parent_id;
                 $child->parent_name = $lists_const[$list->id][$i]->parent_name;
                 $child->country = $lists_const[$list->id][$i]->country;
                 $child->city = $lists_const[$list->id][$i]->city;
                 $child->published = $lists_const[$list->id][$i]->published;
                 if (isset($list->level)) {
                     $child->level = $list->level + 1;
                 } else {
                     $child->level = 1;
                 }
                 $childs[] = $child;
             }
             DJClassifiedsRegion::getListSubreg($childs, $lists_const, $main_id, $main_level, $main_f, $option);
             //echo count($lists_const).' ';
             unset($lists_const[$list->id]);
         }
     }
     return $option;
 }
Example #16
0
 public static function getItems($params)
 {
     $date_time = JFactory::getDate();
     $date_exp = $date_time->toSQL();
     $db = JFactory::getDBO();
     $user = JFactory::getUser();
     $ord = "i.date_start DESC";
     if ($params->get('items_ord') == 1) {
         $ord = "i.display DESC";
     } else {
         if ($params->get('items_ord') == 2) {
             $ord = "rand()";
         } else {
             if ($params->get('items_ord') == 3) {
                 $ord = "i.name";
             }
         }
     }
     $promoted = '';
     $prom_list = array();
     if ($params->get('only_p_special', '0') == 1) {
         $prom_list[] = " i.promotions LIKE '%p_special%' ";
     }
     if ($params->get('only_p_first', '0') == 1) {
         $prom_list[] = " i.promotions LIKE '%p_first%' ";
     }
     if ($params->get('only_p_bold', '0') == 1) {
         $prom_list[] = " i.promotions LIKE '%p_bold%' ";
     }
     if ($params->get('only_p_border', '0') == 1) {
         $prom_list[] = " i.promotions LIKE '%p_border%' ";
     }
     if ($params->get('only_p_bg', '0') == 1) {
         $prom_list[] = " i.promotions LIKE '%p_bg%' ";
     }
     if (count($prom_list) == 1) {
         $promoted = ' AND ' . $prom_list[0] . ' ';
     } else {
         if (count($prom_list) > 1) {
             $promoted = ' AND (' . implode(' OR ', $prom_list) . ') ';
         }
     }
     $item_ids = $params->get('items_ids', '');
     if ($item_ids) {
         $item_ids = ' AND i.id IN (' . $item_ids . ')';
     } else {
         $item_ids = '';
     }
     $users_ids = $params->get('users_ids', '');
     if ($users_ids) {
         $users_ids = ' AND i.user_id IN (' . $users_ids . ')';
     } else {
         $users_ids = '';
     }
     $types_ids_v = $params->get('type_id', '');
     $types_ids = '';
     if (is_array($types_ids_v)) {
         if (count($types_ids_v)) {
             $types_ids = ' AND i.type_id IN (' . implode(',', $types_ids_v) . ')';
         }
     }
     $cat_ids = $params->get('cat_id', '0');
     $cid = JRequest::getInt('cid', '0');
     $fallow_cat = '';
     $cat_list = '';
     if ($params->get('fallow_category') == 1 && JRequest::getVar('option', '') == 'com_djclassifieds' && $cid > 0) {
         $djcfcatlib = new DJClassifiedsCategory();
         $cats = $djcfcatlib->getSubCat($cid, 1);
         $catlist = $cid;
         foreach ($cats as $c) {
             $catlist .= ',' . $c->id;
         }
         $fallow_cat = ' AND i.cat_id IN (' . $catlist . ') ';
     } else {
         if (is_array($cat_ids)) {
             if (count($cat_ids) > 1) {
                 $cat_list = ' AND i.cat_id IN (' . implode(',', $cat_ids) . ') ';
             } else {
                 if (isset($cat_ids[0])) {
                     if ($cat_ids[0] > 0) {
                         $cat_list = ' AND i.cat_id = ' . $cat_ids[0] . ' ';
                     }
                 }
             }
         }
     }
     $reg_ids = $params->get('region_id', '0');
     $fallow_region = '';
     $region_list = '';
     if ($params->get('fallow_region', '0') == 1 && JRequest::getVar('option', '') == 'com_djclassifieds') {
         $djcfreglib = new DJClassifiedsRegion();
         if (JRequest::getVar('view', '') == 'item') {
             $id = JRequest::getInt('id', '0');
             $query = "SELECT i.region_id FROM #__djcf_items i " . "WHERE i.id=" . $id . " LIMIT 1";
             $db->setQuery($query);
             $region_id = $db->loadResult();
             if ($region_id) {
                 $regs = $djcfreglib->getSubReg($region_id);
                 $reglist = $region_id;
                 foreach ($regs as $r) {
                     $reglist .= ',' . $r->id;
                 }
                 $fallow_region = ' AND i.region_id IN (' . $reglist . ') ';
             }
         } else {
             if (JRequest::getVar('view', '') == 'items' && JRequest::getInt('se', '') == 1 && isset($_GET['se_regs'])) {
                 if (is_array($_GET['se_regs'])) {
                     $reg_id_se = end($_GET['se_regs']);
                     if ($reg_id_se == '' && count($_GET['se_regs']) > 2) {
                         $reg_id_se = $_GET['se_regs'][count($_GET['se_regs']) - 2];
                     }
                 } else {
                     $reg_ids_se = explode(',', JRequest::getVar('se_regs'));
                     $reg_id_se = end($reg_ids_se);
                 }
                 $reg_id_se = (int) $reg_id_se;
                 if ($reg_id_se) {
                     $regs = $djcfreglib->getSubReg($reg_id_se);
                     $reglist = $reg_id_se;
                     foreach ($regs as $r) {
                         $reglist .= ',' . $r->id;
                     }
                     $fallow_region = ' AND i.region_id IN (' . $reglist . ') ';
                 }
             }
         }
     }
     if (is_array($reg_ids) && $fallow_region == '') {
         if (count($reg_ids) > 1) {
             $region_list = ' AND i.region_id IN (' . implode(',', $reg_ids) . ') ';
         } else {
             if (isset($reg_ids[0])) {
                 if ($reg_ids[0] > 0) {
                     $region_list = ' AND i.region_id = ' . $reg_ids[0] . ' ';
                 }
             }
         }
     }
     $only_img = '';
     $search_img_count_lj = '';
     if ($params->get('only_with_img', '0') == 1) {
         //$only_img = " AND img.name !='' ";
         $only_img .= " AND img.img_c>0 ";
         $search_img_count_lj = "LEFT JOIN ( SELECT COUNT(img.id) as img_c, img.item_id FROM #__djcf_images img\r\n\t\t\t\t\t\t\t\t\tWHERE img.type='item' GROUP BY item_id ) img ON i.id=img.item_id ";
     }
     $source = '';
     $fav_lj = '';
     $fav_s = '';
     if ($user->id) {
         if ($params->get('items_source', '0') == 1) {
             $source = ' AND i.user_id=' . $user->id . ' ';
         } else {
             if ($params->get('items_source', '0') == 2) {
                 $fav_lj = "LEFT JOIN ( SELECT * FROM #__djcf_favourites WHERE user_id=" . $user->id . ") f ON i.id=f.item_id ";
                 $fav_s = ',f.id as f_id ';
                 $source = " AND f.id IS NOT NULL ";
             }
         }
     }
     $groups_acl = '0,' . implode(',', $user->getAuthorisedViewLevels());
     $access_view = " AND c.access_view IN (" . $groups_acl . ") ";
     $current_ad = '';
     if (JRequest::getVar('option', '') == 'com_djclassifieds' && JRequest::getVar('view', '') == 'item' && JRequest::getInt('id', 0) > 0) {
         $current_ad = ' AND i.id!=' . JRequest::getInt('id', 0) . ' ';
     }
     $adult_restriction = '';
     if (!isset($_COOKIE["djcf_warning18"])) {
         $adult_restriction .= " AND c.restriction_18=0 ";
     }
     $query = "SELECT i.*,c.id as c_id, c.name as c_name,c.alias as c_alias,c.icon_url as c_icon_url, r.name as r_name " . $fav_s . "FROM #__djcf_categories c, #__djcf_items i " . $search_img_count_lj . "LEFT JOIN #__djcf_regions r ON r.id=i.region_id " . $fav_lj . "WHERE i.date_exp > '" . $date_exp . "' AND i.published = 1 AND c.published = 1 AND i.cat_id=c.id " . $promoted . $item_ids . $users_ids . $fallow_cat . $cat_list . $fallow_region . $region_list . $types_ids . $only_img . $source . $access_view . $current_ad . $adult_restriction . "ORDER BY " . $ord . " limit " . $params->get('items_nr');
     $db->setQuery($query);
     $items = $db->loadObjectList();
     //echo '<pre>';print_r($db);die();
     if (count($items)) {
         $id_list = '';
         foreach ($items as $item) {
             if ($id_list) {
                 $id_list .= ',' . $item->id;
             } else {
                 $id_list .= $item->id;
             }
         }
         $items_img = DJClassifiedsImage::getAdsImages($id_list);
         for ($i = 0; $i < count($items); $i++) {
             $img_found = 0;
             $items[$i]->images = array();
             foreach ($items_img as $img) {
                 if ($items[$i]->id == $img->item_id) {
                     $img_found = 1;
                     $items[$i]->images[] = $img;
                 } else {
                     if ($img_found) {
                         break;
                     }
                 }
             }
         }
     }
     return $items;
 }