?> " /> </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);
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; }
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; }
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; }
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'); $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 {
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; }
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; }