private static function HandleForumCategories()
 {
     if (!is_array(self::$forum_categories)) {
         return false;
     }
     // First of all, create category header
     $forum_categories = array();
     foreach (self::$forum_categories as $category) {
         if ($category['header'] == 1) {
             $forum_categories[$category['cat_id']] = array();
             $forum_categories[$category['cat_id']]['category_info'] = $category;
             $forum_categories[$category['cat_id']]['subcategories'] = array();
         }
     }
     // Load subcategories into parent categories. Each category can have only level 1 subcategories.
     foreach (self::$forum_categories as $category) {
         if ($category['header'] == 0 && $category['parent_cat'] > 0) {
             if (!isset($forum_categories[$category['parent_cat']])) {
                 // Unknown category, continue.
                 WoW_Log::WriteError('%s : forum category %d ("%s") has parent_cat %d, but this category was not found.', __METHOD__, $category['cat_id'], $category['title'], $category['parent_cat']);
                 continue;
             }
             $forum_categories[$category['parent_cat']]['subcategories'][] = $category;
         }
     }
     // Save handled categories
     self::$forum_categories = $forum_categories;
     unset($forum_categories, $category);
     return true;
 }