--- /dev/null
+<?php
+global $CONFIG;
+
+/**
+ * Disable members plugin as it has been moved into core.
+ */
+disable_plugin('members', $CONFIG->site->guid);
\ No newline at end of file
add_entity_relationship($object->getGUID(), 'member_of_site', $CONFIG->site->getGUID());
}
+/**
+ * Members page handler
+ *
+ * @param array $page url segments
+ */
+function elgg_members_page_handler($page) {
+ global $CONFIG;
+
+ if (!isset($page[0])) {
+ $page[0] = 'newest';
+ }
+
+ $vars = array();
+ $vars['page'] = $page[0];
+
+ if ($page[0] == 'search') {
+ $vars['search_type'] = $page[1];
+ require_once("{$CONFIG->path}pages/members/search.php");
+ } else {
+ require_once("{$CONFIG->path}pages/members/index.php");
+ }
+}
+
/**
* Sets up user-related menu items
*
register_page_handler('register', 'registration_page_handler');
register_page_handler('resetpassword', 'elgg_user_resetpassword_page_handler');
register_page_handler('login', 'elgg_user_login_page_handler');
+ register_page_handler('members', 'elgg_members_page_handler');
elgg_register_action("register", '', 'public');
elgg_register_action("useradd", '', 'public');
'river:comments:more' => '+%u more',
'river:generic_comment' => 'commented on %s %s',
+ 'members:label:newest' => 'Newest',
+ 'members:label:popular' => 'Popular',
+ 'members:label:online' => 'Online',
+ 'members:searchname' => 'Search members by name',
+ 'members:searchtag' => 'Search members by tag',
+ 'members:title:searchname' => 'Member search for %s',
+ 'members:title:searchtag' => 'Members tagged with %s',
/**
* Generic action words
'site' => 'Site',
'activity' => 'Activity',
+ 'members' => 'Members',
'up' => 'Up',
'down' => 'Down',
--- /dev/null
+<?php
+/**
+ * Members index
+ *
+ */
+
+$num_members = get_number_users();
+
+$title = elgg_echo('members');
+
+$options = array('type' => 'user', 'full_view' => false);
+switch ($vars['page']) {
+ case 'popular':
+ $options['relationship'] = 'friend';
+ $options['inverse_relationship'] = false;
+ $content = elgg_list_entities_from_relationship_count($options);
+ break;
+ case 'online':
+ $content = get_online_users();
+ break;
+ case 'newest':
+ default:
+ $content = elgg_list_entities($options);
+ break;
+}
+
+$params = array(
+ 'content' => $content,
+ 'sidebar' => elgg_view('core/members/sidebar'),
+ 'title' => $title . " ($num_members)",
+ 'buttons' => '',
+ 'filter_override' => elgg_view('core/members/nav', array('selected' => $vars['page'])),
+);
+
+$body = elgg_view_layout('content', $params);
+
+echo elgg_view_page($title, $body);
--- /dev/null
+<?php
+/**
+ * Members search page
+ *
+ */
+
+if ($vars['search_type'] == 'tag') {
+ $tag = get_input('tag');
+
+ $title = elgg_echo('members:title:searchtag', array($tag));
+ $content = elgg_view_title($title);
+
+ $options = array();
+ $options['query'] = $tag;
+ $options['type'] = "user";
+ $options['offset'] = $offset;
+ $options['limit'] = $limit;
+ $results = elgg_trigger_plugin_hook('search', 'tags', $options, array());
+ $count = $results['count'];
+ $users = $results['entities'];
+ $content .= elgg_view_entity_list($users, $count, $offset, $limit, false, false, true);
+} else {
+ $name = get_input('name');
+
+ $title = elgg_echo('members:title:searchname', array($name));
+ $content = elgg_view_title($title);
+
+ elgg_set_context('search');
+ $content .= list_user_search($name);
+}
+
+$params = array(
+ 'body' => $content,
+ 'sidebar' => elgg_view('core/members/sidebar'),
+);
+
+$body = elgg_view_layout('one_sidebar', $params);
+
+echo elgg_view_page($title, $body);
// YYYYMMDD = Elgg Date
// XX = Interim incrementer
-$version = 2010111501;
+$version = 2010121401;
// Human-friendly version name
$release = '1.8-svn';
--- /dev/null
+<?php
+/**
+ * Members navigation
+ */
+
+$tabs = array(
+ 'newest' => array(
+ 'title' => elgg_echo('members:label:newest'),
+ 'url' => "pg/members/newest/",
+ 'selected' => $vars['selected'] == 'newest',
+ ),
+ 'popular' => array(
+ 'title' => elgg_echo('members:label:popular'),
+ 'url' => "pg/members/popular/",
+ 'selected' => $vars['selected'] == 'popular',
+ ),
+ 'online' => array(
+ 'title' => elgg_echo('members:label:online'),
+ 'url' => "pg/members/online/",
+ 'selected' => $vars['selected'] == 'online',
+ ),
+);
+
+echo elgg_view('navigation/tabs', array('tabs' => $tabs));
--- /dev/null
+<?php
+/**
+ * Members sidebar
+ */
+
+// Tag search
+$params = array(
+ 'method' => 'get',
+ 'action' => elgg_get_site_url() . 'pg/members/search/tag/',
+ 'disable_security' => true,
+);
+$body = elgg_view_form('members/tag_search', $params);
+
+$params = array(
+ 'title' => elgg_echo('members:searchtag'),
+ 'body' => $body,
+);
+echo elgg_view('layout/objects/module', $params);
+
+
+// name search
+$params = array(
+ 'method' => 'get',
+ 'action' => elgg_get_site_url() . 'pg/members/search/name/',
+ 'disable_security' => true,
+);
+$body = elgg_view_form('members/name_search', $params);
+
+$params = array(
+ 'title' => elgg_echo('members:searchname'),
+ 'body' => $body,
+);
+echo elgg_view('layout/objects/module', $params);
--- /dev/null
+<?php
+
+$params = array(
+ 'internalname' => 'name',
+);
+echo elgg_view('input/text', $params);
+
+echo elgg_view('input/submit', array('value' => elgg_echo('search')));
--- /dev/null
+<?php
+/**
+ * Simple members search by tag form
+ */
+
+$params = array(
+ 'internalname' => 'tag',
+);
+echo elgg_view('input/text', $params);
+
+echo elgg_view('input/submit', array('value' => elgg_echo('search')));