static function getTotalAllowedChildItems($gids, $metaUser, $list = array())
 {
     $groups = ItemGroupHandler::getChildren($gids, 'group');
     if (!empty($groups)) {
         foreach ($groups as $groupid) {
             $group = new ItemGroup();
             $group->load($groupid);
             if (!$group->checkVisibility($metaUser)) {
                 continue;
             }
             if (!empty($group->params['reveal_child_items']) && empty($group->params['symlink'])) {
                 $list = ItemGroupHandler::getTotalAllowedChildItems($groupid, $metaUser, $list);
             } else {
                 if (ItemGroupHandler::hasVisibleChildren($group, $metaUser)) {
                     $list[] = ItemGroupHandler::getGroupListItem($group);
                 }
             }
         }
     }
     $items = ItemGroupHandler::getChildren($gids, 'item');
     if (!empty($items)) {
         foreach ($items as $itemid) {
             $plan = new SubscriptionPlan();
             $plan->load($itemid);
             if (!$plan->checkVisibility($metaUser)) {
                 continue;
             }
             $list[] = ItemGroupHandler::getItemListItem($plan);
         }
     }
     return $list;
 }