public static function GetCategories() { $Categories = Achievements::GetRootCategories(); $Index = 0; foreach ($Categories as $Category) { $Categories[$Index]['achievements_in_category'] = 0; $Categories[$Index]['points_for_category'] = 0; $SubCategories = Achievements::GetSubCategories($Category['id']); $CategoryData = Achievements::GetDataForCategory($Category['id']); $Categories[$Index]['achievements_in_category'] = $Categories[$Index]['achievements_in_category'] + $CategoryData['amount']; $Categories[$Index]['points_for_category'] = $Categories[$Index]['points_for_category'] + $CategoryData['maxscore']; if (!empty($SubCategories)) { $Categories[$Index]['subcategories'] = $SubCategories; $InnerIndex = 0; foreach ($SubCategories as $SubCategory) { $SubSubCategories = Achievements::GetSubCategories($SubCategory['id']); $SubCategoryData = Achievements::GetDataForCategory($SubCategory['id']); $Categories[$Index]['achievements_in_category'] = $Categories[$Index]['achievements_in_category'] + $SubCategoryData['amount']; $Categories[$Index]['points_for_category'] = $Categories[$Index]['points_for_category'] + $SubCategoryData['maxscore']; if (!empty($LastCategories)) { $Categories[$Index]['subcategories'][$InnerIndex]['lastcategory'] = $LastCategories; } $InnerIndex++; } } $Index++; } //unset($Categories[0]); // we dont need stats.... yet.... return $Categories; }