private static function SortAchievements()
 {
     if (!self::IsLoaded() && !self::LoadAchievements()) {
         return false;
     }
     $categories = DB::WoW()->select("SELECT `id`, `categoryId` FROM `DBPREFIX_achievement` WHERE `id` IN (%s)", self::GetAchievementsIDs());
     if (!$categories) {
         WoW_Log::WriteError('%s : unable to find achievements categories!', __METHOD__);
         return false;
     }
     $storage = array();
     foreach ($categories as $category) {
         if (!isset($storage[$category['categoryId']])) {
             $storage[$category['categoryId']] = array();
         }
         $current_id = $category['id'];
         foreach (self::$achievements_storage as $achievement) {
             if ($achievement['achievement'] == $current_id) {
                 $storage[$category['categoryId']][] = $achievement;
                 break;
             }
         }
     }
     self::$sorted_storage = $storage;
     // Criterias
     $criterias = array();
     foreach (self::$criterias_storage as $criteria) {
         $criterias[$criteria['criteria']] = $criteria;
     }
     self::$criterias_storage = $criterias;
     unset($storage, $criterias);
     return true;
 }