diff options
-rw-r--r-- | engine/classes/ElggSite.php | 56 | ||||
-rw-r--r-- | engine/lib/sites.php | 38 |
2 files changed, 61 insertions, 33 deletions
diff --git a/engine/classes/ElggSite.php b/engine/classes/ElggSite.php index 93d442e0a..aa94b9fd2 100644 --- a/engine/classes/ElggSite.php +++ b/engine/classes/ElggSite.php @@ -196,22 +196,60 @@ class ElggSite extends ElggEntity { } /** - * Returns an array of ElggUser entities who are members of the site. + * Gets an array of ElggUser entities who are members of the site. * - * @param int $limit Limit - * @param int $offset Offset + * @param array $options An associative array for key => value parameters + * accepted by elgg_get_entities(). Common parameters + * include 'limit', and 'offset'. + * Note: this was $limit before version 1.8 + * @param int $offset Offset @deprecated parameter + * + * @todo remove $offset in 2.0 * * @return array of ElggUsers */ - public function getMembers($limit = 10, $offset = 0) { - return elgg_get_entities_from_relationship(array( + public function getMembers($options = array(), $offset = 0) { + if (!is_array($limit)) { + elgg_deprecated_notice("ElggSite::getMembers has a different arguments!", 1.8); + $options = array( + 'limit' => $options, + 'offset' => $offset, + ); + } + + $defaults = array( 'relationship' => 'member_of_site', 'relationship_guid' => $this->getGUID(), 'inverse_relationship' => TRUE, - 'types' => 'user', - 'limit' => $limit, - 'offset' => $offset - )); + 'type' => 'user', + ); + + $options = array_merge($defaults, $options); + + return elgg_get_entities_from_relationship($options); + } + + /** + * List the members of this site + * + * @param array $options An associative array for key => value parameters + * accepted by elgg_list_entities(). Common parameters + * include 'full_view', 'limit', and 'offset'. + * + * @return string + * @since 1.8.0 + */ + public function listMembers($options = array()) { + $defaults = array( + 'relationship' => 'member_of_site', + 'relationship_guid' => $this->getGUID(), + 'inverse_relationship' => TRUE, + 'type' => 'user', + ); + + $options = array_merge($defaults, $options); + + return elgg_list_entities_from_relationship($options); } /** diff --git a/engine/lib/sites.php b/engine/lib/sites.php index ac048c26b..f8590a4e0 100644 --- a/engine/lib/sites.php +++ b/engine/lib/sites.php @@ -136,17 +136,12 @@ function get_site_members($site_guid, $limit = 10, $offset = 0) { elgg_deprecated_notice("get_site_members() deprecated. Use ElggSite::getMembers()", 1.8); - $site_guid = (int)$site_guid; - $limit = (int)$limit; - $offset = (int)$offset; + $site = get_entity($site_guid); + if ($site) { + return $site->getMembers($limit, $offset); + } - return elgg_get_entities_from_relationship(array( - 'relationship' => 'member_of_site', - 'relationship_guid' => $site_guid, - 'inverse_relationship' => TRUE, - 'types' => 'user', - 'limit' => $limit, 'offset' => $offset - )); + return false; } /** @@ -157,28 +152,23 @@ function get_site_members($site_guid, $limit = 10, $offset = 0) { * @param bool $fullview Whether or not to display the full view (default: true) * * @return string A displayable list of members - * @deprecated 1.8 Use elgg_list_entities_from_relationships() with relationship - * 'member_of_site' + * @deprecated 1.8 Use ElggSite::listMembers() */ function list_site_members($site_guid, $limit = 10, $fullview = true) { elgg_deprecated_notice("list_site_members() deprecated. - Use elgg_list_entities_from_relationships()", 1.8); + Use ElggSite::listMembers()", 1.8); - $offset = (int) get_input('offset'); - $limit = (int) $limit; $options = array( - 'relationship' => 'member_of_site', - 'relationship_guid' => $site_guid, - 'inverse_relationship' => TRUE, - 'types' => 'user', 'limit' => $limit, - 'offset' => $offset, - 'count' => TRUE + 'full_view' => $full_view, ); - $count = (int) elgg_get_entities_from_relationship($options); - $entities = get_site_members($site_guid, $limit, $offset); - return elgg_view_entity_list($entities, $count, $offset, $limit, $fullview); + $site = get_entity($site_guid); + if ($site) { + return $site->listMembers($options); + } + + return ''; } /** |