diff options
author | ewinslow <ewinslow@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-11-03 01:05:34 +0000 |
---|---|---|
committer | ewinslow <ewinslow@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-11-03 01:05:34 +0000 |
commit | 08b8b7d630b1958e7b363c3794f8b67f667a9128 (patch) | |
tree | 81b7e3b1d5f931dae7d517500c2762ccdcc4b736 | |
parent | b8688c6c4f82c5eb3ec3f9744a0ba2e348cb45ba (diff) | |
download | elgg-08b8b7d630b1958e7b363c3794f8b67f667a9128.tar.gz elgg-08b8b7d630b1958e7b363c3794f8b67f667a9128.tar.bz2 |
Fixes #2606: Abstracted elgg_list_entities. Takes an optional second argument for the 'getter', defaulting to 'elgg_get_entities'. Converted current elgg_list_entities* functions to use it
git-svn-id: http://code.elgg.org/elgg/trunk@7212 36083f99-b078-4883-b0ff-0f9b5a30f544
-rw-r--r-- | engine/lib/access.php | 45 | ||||
-rw-r--r-- | engine/lib/annotations.php | 15 | ||||
-rw-r--r-- | engine/lib/entities.php | 35 | ||||
-rw-r--r-- | engine/lib/metadata.php | 16 |
4 files changed, 47 insertions, 64 deletions
diff --git a/engine/lib/access.php b/engine/lib/access.php index 5b67afbd1..78f933b27 100644 --- a/engine/lib/access.php +++ b/engine/lib/access.php @@ -843,29 +843,36 @@ function elgg_get_entities_from_access_id(array $options = array()) { /** * Lists entities from an access collection * - * @param int $collection_id ID of collection - * @param string $entity_type Type of entities - * @param string $entity_subtype Subtype of entities - * @param int $owner_guid Guid of owner - * @param int $limit Limit of number of entities to return - * @param bool $fullview Show a full view - * @param bool $viewtypetoggle Allow to toggle between views - * @param bool $pagination Show pagination - * + * @param array $options See elgg_list_entities() and elgg_get_entities_from_access_id() + * + * @see elgg_list_entities() + * @see elgg_get_entities_from_access_id() + * + * @return str + */ +function elgg_list_entities_from_access_id(array $options = array()) { + return elgg_list_entities($options, 'elgg_get_entities_from_access_id'); +} + +/** * @return str - * @todo deprecate with elgg_list_entities_from_access_id() function + * @deprecated 1.8 Use elgg_list_entities_from_access_id() */ function list_entities_from_access_id($collection_id, $entity_type = "", $entity_subtype = "", $owner_guid = 0, $limit = 10, $fullview = true, $viewtypetoggle = true, $pagination = true) { - $offset = (int) get_input('offset'); - $limit = (int) $limit; - $count = get_entities_from_access_id($collection_id, $entity_type, $entity_subtype, - $owner_guid, $limit, $offset, "", 0, true); - $entities = get_entities_from_access_id($collection_id, $entity_type, $entity_subtype, - $owner_guid, $limit, $offset, "", 0, false); - - return elgg_view_entity_list($entities, $count, $offset, $limit, - $fullview, $viewtypetoggle, $pagination); + + elgg_deprecated_notice("All list_entities* functions were deprecated in 1.8. Use elgg_list_entities* instead.", 1.8); + + echo elgg_list_entities_from_access_id(array( + 'collection_id' => $collection_id, + 'types' => $entity_type, + 'subtypes' => $entity_subtype, + 'owner_guids' => $owner_guid, + 'limit' => $limit, + 'full_view' => $fullview, + 'view_type_toggle' => $viewtypetoggle, + 'pagination' => $pagination, + )); } /** diff --git a/engine/lib/annotations.php b/engine/lib/annotations.php index 48421b2d6..78ad7a1b1 100644 --- a/engine/lib/annotations.php +++ b/engine/lib/annotations.php @@ -561,20 +561,7 @@ $viewtypetoggle = false) { * @return str */ function elgg_list_entities_from_annotations($options = array()) { - $defaults = array( - 'offset' => (int) max(get_input('offset', 0), 0), - 'limit' => (int) max(get_input('limit', 10), 0), - 'full_view' => TRUE, - 'view_type_toggle' => FALSE, - 'pagination' => TRUE - ); - $options = array_merge($defaults, $options); - - $count = elgg_get_entities_from_annotations(array_merge(array('count' => TRUE), $options)); - $entities = elgg_get_entities_from_annotations($options); - - return elgg_view_entity_list($entities, $count, $options['offset'], - $options['limit'], $options['full_view'], $options['view_type_toggle'], $options['pagination']); + return elgg_list_entities($options, 'elgg_get_entities_from_annotations'); } /** diff --git a/engine/lib/entities.php b/engine/lib/entities.php index 1fe657808..4a971eb57 100644 --- a/engine/lib/entities.php +++ b/engine/lib/entities.php @@ -1314,35 +1314,38 @@ function elgg_get_entity_site_where_sql($table, $site_guids) { * * @tip Pagination is handled automatically. * - * @param array $options Any elgg_get_entity() options plus: - * - * full_view => BOOL Display full view entities - * - * view_type_toggle => BOOL Display gallery / list switch - * - * pagination => BOOL Display pagination links + * @param array $options Any options from $getter options plus: + * full_view => BOOL Display full view entities + * view_type_toggle => BOOL Display gallery / list switch + * pagination => BOOL Display pagination links + * + * @param mixed $getter The entity getter function to use to fetch the entities * - * @return str - * @since 1.7.0 - * @see elgg_view_entity_list() + * @return string + * @since 1.7 * @see elgg_get_entities() + * @see elgg_view_entity_list() * @link http://docs.elgg.org/Entities/Output */ -function elgg_list_entities($options) { +function elgg_list_entities(array $options = array(), $getter = 'elgg_get_entities') { $defaults = array( 'offset' => (int) max(get_input('offset', 0), 0), 'limit' => (int) max(get_input('limit', 10), 0), 'full_view' => TRUE, 'view_type_toggle' => FALSE, - 'pagination' => TRUE + 'pagination' => TRUE, ); + $options = array_merge($defaults, $options); - $count = elgg_get_entities(array_merge(array('count' => TRUE), $options)); - $entities = elgg_get_entities($options); + $options['count'] = TRUE; + $count = $getter($options); + + $options['count'] = FALSE; + $entities = $getter($options); - return elgg_view_entity_list($entities, $count, $options['offset'], - $options['limit'], $options['full_view'], $options['view_type_toggle'], $options['pagination']); + return elgg_view_entity_list($entities, $count, $options['offset'], $options['limit'], + $options['full_view'], $options['view_type_toggle'], $options['pagination']); } /** diff --git a/engine/lib/metadata.php b/engine/lib/metadata.php index b0117bfd0..77267d8a2 100644 --- a/engine/lib/metadata.php +++ b/engine/lib/metadata.php @@ -1021,21 +1021,7 @@ $pagination = true, $case_sensitive = true) { * @since 1.7.0 */ function elgg_list_entities_from_metadata($options) { - $defaults = array( - 'offset' => (int) max(get_input('offset', 0), 0), - 'limit' => (int) max(get_input('limit', 10), 0), - 'full_view' => TRUE, - 'view_type_toggle' => FALSE, - 'pagination' => TRUE - ); - - $options = array_merge($defaults, $options); - - $count = elgg_get_entities_from_metadata(array_merge(array('count' => TRUE), $options)); - $entities = elgg_get_entities_from_metadata($options); - - return elgg_view_entity_list($entities, $count, $options['offset'], $options['limit'], - $options['full_view'], $options['view_type_toggle'], $options['pagination']); + return elgg_list_entities($options, 'elgg_get_entities_from_metadata'); } /** |