diff options
Diffstat (limited to 'mod/members')
| -rw-r--r-- | mod/members/index.php | 64 | ||||
| -rw-r--r-- | mod/members/languages/en.php | 31 | ||||
| -rw-r--r-- | mod/members/manifest.xml | 22 | ||||
| -rw-r--r-- | mod/members/pages/members/index.php | 36 | ||||
| -rw-r--r-- | mod/members/pages/members/search.php | 55 | ||||
| -rw-r--r-- | mod/members/start.php | 56 | ||||
| -rw-r--r-- | mod/members/views/default/members/css.php | 64 | ||||
| -rw-r--r-- | mod/members/views/default/members/members_sort_menu.php | 29 | ||||
| -rw-r--r-- | mod/members/views/default/members/nav.php | 24 | ||||
| -rw-r--r-- | mod/members/views/default/members/online.php | 11 | ||||
| -rw-r--r-- | mod/members/views/default/members/search.php | 32 | ||||
| -rw-r--r-- | mod/members/views/default/members/sidebar.php | 25 |
12 files changed, 200 insertions, 249 deletions
diff --git a/mod/members/index.php b/mod/members/index.php deleted file mode 100644 index ecfcabb1c..000000000 --- a/mod/members/index.php +++ /dev/null @@ -1,64 +0,0 @@ -<?php - -/** - * Elgg members index page - called from filter or search - * - * @package ElggMembers - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @author Curverider <info@elgg.com> - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - */ - -require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); - -// get filter parameters -$limit = get_input('limit', 10); -$offset = get_input('offset', 0); -$filter = get_input("filter", "newest"); - -// search options -$tag = get_input('tag'); - - -//search members -$sidebar = elgg_view("members/search"); - -// get the correct content based on filter/search -switch ($filter) { - case "pop": - $filter_content = list_entities_by_relationship_count('friend', true, '', '', 0, 10, false); - break; - case "active": - $filter_content = elgg_view("members/online"); - break; - // search based on name - case "search": - set_context('search'); - $filter_content = list_user_search($tag); - break; - // search based on tags - case "search_tags": - $filter_content = trigger_plugin_hook('search','',$tag,""); - $filter_content .= list_entities_from_metadata("", $tag, "user", "", "", 10, false, false); - break; - case "newest": - case 'default': - $filter_content = elgg_list_entities(array('type' => 'user', 'offset' => $offset, 'full_view' => FALSE)); - break; -} - -// create the members navigation/filtering -$members = get_number_users(); -$members_nav = elgg_view("members/members_sort_menu", array("count" => $members, "filter" => $filter)); - -$content = $members_nav . $filter_content; - -// title -$main_content = elgg_view_title(elgg_echo("members:members")); - -$main_content .= elgg_view('page_elements/contentwrapper', array('body' => $content, 'subclass' => 'members')); - -$body = elgg_view_layout("sidebar_boxes", $sidebar, $main_content); - -page_draw(elgg_echo('members:members'), $body); diff --git a/mod/members/languages/en.php b/mod/members/languages/en.php index a6c4d0079..73783143e 100644 --- a/mod/members/languages/en.php +++ b/mod/members/languages/en.php @@ -1,21 +1,16 @@ <?php +/** + * Members English language file + */ - $english = array( - - 'members:members' => "Members", - 'members:online' => "Users active now", - 'members:active' => "site users", - 'members:searchtag' => "User search via tag", - 'members:searchname' => "User search via name", - - 'members:label:newest' => 'Newest', - 'members:label:popular' => 'Popular', - 'members:label:active' => 'Active', - 'members:search:name' => 'Users name', - 'members:search:tags' => 'Tags', - - ); - - add_translation("en",$english); +$english = array( + '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', +); -?>
\ No newline at end of file +add_translation('en', $english); diff --git a/mod/members/manifest.xml b/mod/members/manifest.xml index 2248f8853..8b18c9f91 100644 --- a/mod/members/manifest.xml +++ b/mod/members/manifest.xml @@ -1,10 +1,16 @@ <?xml version="1.0" encoding="UTF-8"?> -<plugin_manifest> - <field key="author" value="Curverider" /> - <field key="version" value="1.7" /> - <field key="description" value="A simple plugin to let users browser other members." /> - <field key="website" value="http://www.elgg.org/" /> - <field key="copyright" value="(C) Curverider 2008-2010" /> - <field key="licence" value="GNU Public License version 2" /> - <field key="elgg_version" value="2010030101" /> +<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8"> + <name>Members</name> + <author>Core developers</author> + <version>1.8</version> + <category>bundled</category> + <description>Lists the members of your site</description> + <website>http://www.elgg.org/</website> + <copyright>See COPYRIGHT.txt</copyright> + <license>GNU General Public License version 2</license> + <requires> + <type>elgg_release</type> + <version>1.8</version> + </requires> + <activate_on_install>true</activate_on_install> </plugin_manifest> diff --git a/mod/members/pages/members/index.php b/mod/members/pages/members/index.php new file mode 100644 index 000000000..330ef66bf --- /dev/null +++ b/mod/members/pages/members/index.php @@ -0,0 +1,36 @@ +<?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('members/sidebar'), + 'title' => $title . " ($num_members)", + 'filter_override' => elgg_view('members/nav', array('selected' => $vars['page'])), +); + +$body = elgg_view_layout('content', $params); + +echo elgg_view_page($title, $body); diff --git a/mod/members/pages/members/search.php b/mod/members/pages/members/search.php new file mode 100644 index 000000000..5466a8246 --- /dev/null +++ b/mod/members/pages/members/search.php @@ -0,0 +1,55 @@ +<?php +/** + * Members search page + * + */ + +if ($vars['search_type'] == 'tag') { + $tag = get_input('tag'); + + $display_query = _elgg_get_display_query($tag);
+ + $title = elgg_echo('members:title:searchtag', array($display_query)); + + $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, array( + 'count' => $count, + 'offset' => $offset, + 'limit' => $limit, + 'full_view' => false, + 'list_type_toggle' => false, + 'pagination' => true, + )); +} else { + $name = sanitize_string(get_input('name')); + + $display_query = _elgg_get_display_query($name); + + $title = elgg_echo('members:title:searchname', array($display_query)); + + $db_prefix = elgg_get_config('dbprefix'); + $params = array( + 'type' => 'user', + 'full_view' => false, + 'joins' => array("JOIN {$db_prefix}users_entity u ON e.guid=u.guid"), + 'wheres' => array("(u.name LIKE \"%{$name}%\" OR u.username LIKE \"%{$name}%\")"), + ); + $content .= elgg_list_entities($params); +} + +$params = array( + 'title' => $title, + 'content' => $content, + 'sidebar' => elgg_view('members/sidebar'), +); + +$body = elgg_view_layout('one_sidebar', $params); + +echo elgg_view_page($title, $body); diff --git a/mod/members/start.php b/mod/members/start.php index fa6810157..54787cd16 100644 --- a/mod/members/start.php +++ b/mod/members/start.php @@ -1,31 +1,41 @@ <?php +/** + * Members plugin intialization + */ + +elgg_register_event_handler('init', 'system', 'members_init'); /** - * Elgg members plugin - * This plugin has some interesting options for users; see who is online, site members, - * - * @package Elggmembers - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @author Curverider Ltd <info@elgg.com> - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ + * Initialize page handler and site menu item */ - function members_init() { - - global $CONFIG; - - elgg_extend_view('css','members/css'); - - - // Set up menu for logged in users - if (isloggedin()) { - add_menu(elgg_echo('members:members'), $CONFIG->wwwroot . "mod/members/index.php"); - } - + elgg_register_page_handler('members', 'members_page_handler'); + + $item = new ElggMenuItem('members', elgg_echo('members'), 'members'); + elgg_register_menu_item('site', $item); } -// @todo - use page handler for members index -register_elgg_event_handler('pagesetup','system','members_pagesetup'); +/** + * Members page handler + * + * @param array $page url segments + * @return bool + */ +function members_page_handler($page) { + $base = elgg_get_plugins_path() . 'members/pages/members'; + + if (!isset($page[0])) { + $page[0] = 'newest'; + } + + $vars = array(); + $vars['page'] = $page[0]; -register_elgg_event_handler('init','system','members_init'); + if ($page[0] == 'search') { + $vars['search_type'] = $page[1]; + require_once "$base/search.php"; + } else { + require_once "$base/index.php"; + } + return true; +} diff --git a/mod/members/views/default/members/css.php b/mod/members/views/default/members/css.php deleted file mode 100644 index 048d71bad..000000000 --- a/mod/members/views/default/members/css.php +++ /dev/null @@ -1,64 +0,0 @@ -<?php - - /** - * Elgg Members - * - * @package Members - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @author Curverider Ltd <info@elgg.com> - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - */ - -?> - -/* new members page */ -.members .search_listing { - border:2px solid #cccccc; - margin:0 0 5px 0; -} -.members .search_listing:hover { - background:#dedede; -} -.members .group_count { - font-weight: bold; - color: #666666; - margin:0 0 5px 4px; -} -.members .search_listing_info { - color:#666666; -} - -.members .profile_status { - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - background:#bbdaf7; - line-height:1.2em; - padding:2px 4px; -} -.members .profile_status span { - font-size:90%; - color:#666666; -} -.members p.owner_timestamp { - padding-left:3px; -} -.members .pagination { - border:2px solid #cccccc; - margin:5px 0 5px 0; -} - - -#memberssearchform { - border-bottom: 1px solid #cccccc; - margin-bottom: 10px; -} -#memberssearchform input[type="submit"] { - padding:2px; - height:auto; - margin:4px 0 5px 0; -} -#memberssearchform .search_input { - width:176px; -} - diff --git a/mod/members/views/default/members/members_sort_menu.php b/mod/members/views/default/members/members_sort_menu.php deleted file mode 100644 index e9ad96039..000000000 --- a/mod/members/views/default/members/members_sort_menu.php +++ /dev/null @@ -1,29 +0,0 @@ -<?php - - /** - * A simple view to provide the user with group filters and the number of group on the site - **/ - - $members = $vars['count']; - if(!$num_groups) - $num_groups = 0; - - $filter = $vars['filter']; - - //url - $url = $vars['url'] . "mod/members/index.php"; - -?> -<div id="elgg_horizontal_tabbed_nav"> -<ul> - <li <?php if($filter == "newest") echo "class='selected'"; ?>><a href="<?php echo $url; ?>?filter=newest"><?php echo elgg_echo('members:label:newest'); ?></a></li> - <li <?php if($filter == "pop") echo "class='selected'"; ?>><a href="<?php echo $url; ?>?filter=pop"><?php echo elgg_echo('members:label:popular'); ?></a></li> - <li <?php if($filter == "active") echo "class='selected'"; ?>><a href="<?php echo $url; ?>?filter=active"><?php echo elgg_echo('members:label:active'); ?></a></li> -</ul> -</div> - -<div class="group_count"> - <?php - echo $members . " " . elgg_echo("members:active"); - ?> -</div>
\ No newline at end of file diff --git a/mod/members/views/default/members/nav.php b/mod/members/views/default/members/nav.php new file mode 100644 index 000000000..510d1849b --- /dev/null +++ b/mod/members/views/default/members/nav.php @@ -0,0 +1,24 @@ +<?php +/** + * Members navigation + */ + +$tabs = array( + 'newest' => array( + 'title' => elgg_echo('members:label:newest'), + 'url' => "members/newest", + 'selected' => $vars['selected'] == 'newest', + ), + 'popular' => array( + 'title' => elgg_echo('members:label:popular'), + 'url' => "members/popular", + 'selected' => $vars['selected'] == 'popular', + ), + 'online' => array( + 'title' => elgg_echo('members:label:online'), + 'url' => "members/online", + 'selected' => $vars['selected'] == 'online', + ), +); + +echo elgg_view('navigation/tabs', array('tabs' => $tabs)); diff --git a/mod/members/views/default/members/online.php b/mod/members/views/default/members/online.php deleted file mode 100644 index cfbe062b4..000000000 --- a/mod/members/views/default/members/online.php +++ /dev/null @@ -1,11 +0,0 @@ -<?php - - /** - * Show members online - **/ - - echo "<div class=\"members_online\">"; - echo get_online_users(); - echo "</div>"; - -?>
\ No newline at end of file diff --git a/mod/members/views/default/members/search.php b/mod/members/views/default/members/search.php deleted file mode 100644 index 69d8c06bf..000000000 --- a/mod/members/views/default/members/search.php +++ /dev/null @@ -1,32 +0,0 @@ -<?php - - /** - * Simple member search - **/ - -$tag_string = elgg_echo('members:search:tags'); -$name_string = elgg_echo('members:search:name'); - -?> - -<div class="sidebarBox"> - -<h3><?php echo elgg_echo('members:searchtag'); ?></h3> -<form id="memberssearchform" action="<?php echo $vars['url']; ?>mod/members/index.php?" method="get"> - <input type="text" name="tag" value="<?php echo $tag_string; ?>" onclick="if (this.value=='<?php echo $tag_string; ?>') { this.value='' }" class="search_input" /> - <input type="hidden" name="subtype" value="" /> - <input type="hidden" name="object" value="user" /> - <input type="hidden" name="filter" value="search_tags" /> - <input type="submit" value="<?php echo elgg_echo('go'); ?>" /> -</form> - -<h3><?php echo elgg_echo('members:searchname'); ?></h3> -<form id="memberssearchform" action="<?php echo $vars['url']; ?>mod/members/index.php?" method="get"> - <input type="text" name="tag" value="<?php echo $name_string; ?>" onclick="if (this.value=='<?php echo $name_string; ?>') { this.value='' }" class="search_input" /> - <input type="hidden" name="subtype" value="" /> - <input type="hidden" name="object" value="user" /> - <input type="hidden" name="filter" value="search" /> - <input type="submit" value="<?php echo elgg_echo('go'); ?>" /> -</form> - -</div>
\ No newline at end of file diff --git a/mod/members/views/default/members/sidebar.php b/mod/members/views/default/members/sidebar.php new file mode 100644 index 000000000..8fa0fe02b --- /dev/null +++ b/mod/members/views/default/members/sidebar.php @@ -0,0 +1,25 @@ +<?php +/** + * Members sidebar + */ + +// Tag search +$params = array( + 'method' => 'get', + 'action' => elgg_get_site_url() . 'members/search/tag', + 'disable_security' => true, +); + +$body = elgg_view_form('members/tag_search', $params); + +echo elgg_view_module('aside', elgg_echo('members:searchtag'), $body); + +// name search +$params = array( + 'method' => 'get', + 'action' => elgg_get_site_url() . 'members/search/name', + 'disable_security' => true, +); +$body = elgg_view_form('members/name_search', $params); + +echo elgg_view_module('aside', elgg_echo('members:searchname'), $body);
\ No newline at end of file |
