public static function getCategoriesSortParent($p = '0', $ord = 'ord') { if (!self::$_categories_sparent) { self::$_categories_sparent = array(); } if (isset(self::$_categories_sparent[$p . '_' . $ord])) { return self::$_categories_sparent[$p . '_' . $ord]; } if ($p) { $pub = 'WHERE c.published=1 '; } else { $pub = ''; } if ($ord == 'name') { $order = 'c.name'; } else { $order = 'c.ordering'; } $db = JFactory::getDBO(); $query = "SELECT c.*, cc.name as parent_name,IFNULL(i.items_count,0) items_count FROM #__djcf_categories c " . "LEFT JOIN #__djcf_categories cc ON c.parent_id=cc.id " . "LEFT JOIN (SELECT i.cat_id, count(i.id) as items_count " . "FROM #__djcf_items i WHERE i.published=1 AND i.date_exp > NOW() GROUP BY i.cat_id) i ON i.cat_id=c.id " . $pub . "ORDER BY c.parent_id, " . $order; $db->setQuery($query); $allcategories = $db->loadObjectList(); $categories = array(); foreach ($allcategories as $cat) { if (!$cat->alias) { $cat->alias = DJClassifiedsSEO::getAliasName($cat->name); } if (!isset($categories[$cat->parent_id])) { $categories[$cat->parent_id] = array(); } $categories[$cat->parent_id][] = $cat; } //echo '<pre>';print_r($db);print_r($allcategories);die(); self::$_categories_sparent[$p . '_' . $ord] = $categories; return self::$_categories_sparent[$p . '_' . $ord]; }
public static function getCategoriesSortParent($p = '0', $ord = 'ord', $ord_dir = 'ASC') { $user = JFactory::getUser(); if (!self::$_categories_sparent) { self::$_categories_sparent = array(); } if (isset(self::$_categories_sparent[$p . '_' . $ord])) { return self::$_categories_sparent[$p . '_' . $ord]; } if ($p) { $pub = 'WHERE c.published=1 '; $groups_acl = implode(',', $user->getAuthorisedViewLevels()); $access_view = " AND c.access_view IN (" . $groups_acl . ") "; } else { $pub = ''; $access_view = ''; } if ($ord == 'name') { $order = 'c.name'; } else { if ($ord == 'id') { $order = 'c.id'; } else { if ($ord == 'price') { $order = 'c.price'; } else { if ($ord == 'pub') { $order = 'c.published'; } else { $order = 'c.ordering'; } } } } $db = JFactory::getDBO(); $date_now = date("Y-m-d H:i:s"); $query = "SELECT c.*, cc.name as parent_name,IFNULL(i.items_count,0) items_count FROM #__djcf_categories c " . "LEFT JOIN #__djcf_categories cc ON c.parent_id=cc.id " . "LEFT JOIN (SELECT i.cat_id, count(i.id) as items_count " . "FROM #__djcf_items i WHERE i.published=1 AND i.date_exp > '" . $date_now . "' GROUP BY i.cat_id) i ON i.cat_id=c.id " . $pub . $access_view . "ORDER BY c.parent_id, " . $order . " " . $ord_dir; $db->setQuery($query); $allcategories = $db->loadObjectList(); $categories = array(); foreach ($allcategories as $cat) { if (!$cat->alias) { $cat->alias = DJClassifiedsSEO::getAliasName($cat->name); } if (!isset($categories[$cat->parent_id])) { $categories[$cat->parent_id] = array(); } $categories[$cat->parent_id][] = $cat; } //echo '<pre>';print_r($db);print_r($allcategories);die(); self::$_categories_sparent[$p . '_' . $ord] = $categories; return self::$_categories_sparent[$p . '_' . $ord]; }