function getObjectTypeStatistics() { global $ilDB, $objDefinition; // re-use add new item selection (folder is not that important) $types = array_keys($objDefinition->getCreatableSubObjects("root", ilObjectDefinition::MODE_REPOSITORY)); include_once "Services/Tree/classes/class.ilTree.php"; $tree = new ilTree(1); $sql = "SELECT " . $tree->table_obj_data . ".obj_id," . $tree->table_obj_data . ".type," . $tree->table_tree . "." . $tree->tree_pk . "," . $tree->table_obj_reference . ".ref_id" . " FROM " . $tree->table_tree . " " . $tree->buildJoin() . " WHERE " . $ilDB->in($tree->table_obj_data . ".type", $types, "", "text"); $set = $ilDB->query($sql); $res = array(); while ($row = $ilDB->fetchAssoc($set)) { $res[$row["type"]]["type"] = $row["type"]; $res[$row["type"]]["references"]++; $res[$row["type"]]["objects"][] = $row["obj_id"]; if ($row[$tree->tree_pk] < 0) { $res[$row["type"]]["deleted"]++; } } foreach ($res as $type => $values) { $res[$type]["objects"] = sizeof(array_unique($values["objects"])); } return $res; }