From 5a3390fbb42a787f7c2ba4f13b6a6843d9a90c7b Mon Sep 17 00:00:00 2001 From: Cash Costello Date: Tue, 24 Jan 2012 21:32:03 -0500 Subject: Fixes #4272 where an array of entity types can be used, use array in config object --- engine/lib/configuration.php | 3 +++ engine/lib/entities.php | 8 ++++---- engine/lib/views.php | 23 ++++++++++------------- 3 files changed, 17 insertions(+), 17 deletions(-) (limited to 'engine') diff --git a/engine/lib/configuration.php b/engine/lib/configuration.php index 772c24930..7f787331f 100644 --- a/engine/lib/configuration.php +++ b/engine/lib/configuration.php @@ -613,4 +613,7 @@ function _elgg_load_application_config() { $viewtype = get_input('view', 'default'); $lastcached = datalist_get("simplecache_lastcached_$viewtype"); $CONFIG->lastcache = $lastcached; + + // this must be synced with the enum for the entities table + $CONFIG->entity_types = array('group', 'object', 'site', 'user'); } diff --git a/engine/lib/entities.php b/engine/lib/entities.php index 67011b802..2dc0eb8ae 100644 --- a/engine/lib/entities.php +++ b/engine/lib/entities.php @@ -960,8 +960,8 @@ function elgg_get_entity_type_subtype_where_sql($table, $types, $subtypes, $pair return ''; } - // these are the only valid types for entities in elgg as defined in the DB. - $valid_types = array('object', 'user', 'group', 'site'); + // these are the only valid types for entities in elgg + $valid_types = elgg_get_config('entity_types'); // pairs override $wheres = array(); @@ -1965,7 +1965,7 @@ function elgg_register_entity_type($type, $subtype = null) { global $CONFIG; $type = strtolower($type); - if (!in_array($type, array('object', 'site', 'group', 'user'))) { + if (!in_array($type, $CONFIG->entity_types)) { return FALSE; } @@ -2000,7 +2000,7 @@ function unregister_entity_type($type, $subtype) { global $CONFIG; $type = strtolower($type); - if (!in_array($type, array('object', 'site', 'group', 'user'))) { + if (!in_array($type, $CONFIG->entity_types)) { return FALSE; } diff --git a/engine/lib/views.php b/engine/lib/views.php index 0a7969ae3..4883ee739 100644 --- a/engine/lib/views.php +++ b/engine/lib/views.php @@ -1330,21 +1330,18 @@ function elgg_view_form($action, $form_vars = array(), $body_vars = array()) { * @access private */ function elgg_view_list_item($item, array $vars = array()) { + global $CONFIG; - switch ($item->getType()) { - case 'user': - case 'object': - case 'group': - case 'site': - return elgg_view_entity($item, $vars); - case 'annotation': - return elgg_view_annotation($item, $vars); - case 'river': - return elgg_view_river_item($item, $vars); - default: - return false; - break; + $type = $item->getType(); + if (in_array($type, $CONFIG->entity_types)) { + return elgg_view_entity($item, $vars); + } else if ($type == 'annotation') { + return elgg_view_annotation($item, $vars); + } else if ($type == 'river') { + return elgg_view_river_item($item, $vars); } + + return false; } /** -- cgit v1.2.3