Esempio n. 1
0
 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];
 }
Esempio n. 2
0
 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];
 }