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; }