]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Fixes #2723 members listing pages now in core
authorcash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>
Tue, 14 Dec 2010 12:54:15 +0000 (12:54 +0000)
committercash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>
Tue, 14 Dec 2010 12:54:15 +0000 (12:54 +0000)
git-svn-id: http://code.elgg.org/elgg/trunk@7616 36083f99-b078-4883-b0ff-0f9b5a30f544

engine/lib/upgrades/2010121401.php [new file with mode: 0644]
engine/lib/users.php
languages/en.php
pages/members/index.php [new file with mode: 0644]
pages/members/search.php [new file with mode: 0644]
version.php
views/default/core/members/nav.php [new file with mode: 0644]
views/default/core/members/sidebar.php [new file with mode: 0644]
views/default/forms/members/name_search.php [new file with mode: 0644]
views/default/forms/members/tag_search.php [new file with mode: 0644]

diff --git a/engine/lib/upgrades/2010121401.php b/engine/lib/upgrades/2010121401.php
new file mode 100644 (file)
index 0000000..30e4dff
--- /dev/null
@@ -0,0 +1,7 @@
+<?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
index a91f143b0ca990a46da6630e6e5586cb6f5201e5..a7153a1be0ae1f1d61bb1319bc0cd3189523011e 100644 (file)
@@ -1461,6 +1461,29 @@ function user_create_hook_add_site_relationship($event, $object_type, $object) {
        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
  *
@@ -1511,6 +1534,7 @@ function users_init() {
        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');
index bbda438a1f996e20b5d68d6ad12c803943e44f8f..b89124c6c92b3afb8d61c52023d1989a45ad67e4 100644 (file)
@@ -638,6 +638,13 @@ $english = array(
        '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
@@ -676,6 +683,7 @@ $english = array(
 
        'site' => 'Site',
        'activity' => 'Activity',
+       'members' => 'Members',
        
        'up' => 'Up',
        'down' => 'Down',
diff --git a/pages/members/index.php b/pages/members/index.php
new file mode 100644 (file)
index 0000000..82adf2a
--- /dev/null
@@ -0,0 +1,37 @@
+<?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);
diff --git a/pages/members/search.php b/pages/members/search.php
new file mode 100644 (file)
index 0000000..1a01686
--- /dev/null
@@ -0,0 +1,39 @@
+<?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);
index 89dd26f69eede707a0ef167e13d58ae12e91b304..d2c27318ccc3b67b07dcc89c3f176a1600985ee8 100644 (file)
@@ -11,7 +11,7 @@
 
 // YYYYMMDD = Elgg Date
 // XX = Interim incrementer
-$version = 2010111501;
+$version = 2010121401;
 
 // Human-friendly version name
 $release = '1.8-svn';
diff --git a/views/default/core/members/nav.php b/views/default/core/members/nav.php
new file mode 100644 (file)
index 0000000..a713fa8
--- /dev/null
@@ -0,0 +1,24 @@
+<?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));
diff --git a/views/default/core/members/sidebar.php b/views/default/core/members/sidebar.php
new file mode 100644 (file)
index 0000000..821547f
--- /dev/null
@@ -0,0 +1,33 @@
+<?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);
diff --git a/views/default/forms/members/name_search.php b/views/default/forms/members/name_search.php
new file mode 100644 (file)
index 0000000..265290f
--- /dev/null
@@ -0,0 +1,8 @@
+<?php
+
+$params = array(
+       'internalname' => 'name',
+);
+echo elgg_view('input/text', $params);
+
+echo elgg_view('input/submit', array('value' => elgg_echo('search')));
diff --git a/views/default/forms/members/tag_search.php b/views/default/forms/members/tag_search.php
new file mode 100644 (file)
index 0000000..1a28196
--- /dev/null
@@ -0,0 +1,11 @@
+<?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')));