diff options
Diffstat (limited to 'mod/members')
| -rw-r--r-- | mod/members/index.php | 80 | ||||
| -rw-r--r-- | mod/members/languages/en.php | 21 | ||||
| -rw-r--r-- | mod/members/manifest.xml | 24 | ||||
| -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 | 44 | ||||
| -rw-r--r-- | mod/members/views/default/members/css.php | 24 | ||||
| -rw-r--r-- | mod/members/views/default/members/members_navigation.php | 23 | ||||
| -rw-r--r-- | mod/members/views/default/members/nav.php | 24 | ||||
| -rw-r--r-- | mod/members/views/default/members/search.php | 26 | ||||
| -rw-r--r-- | mod/members/views/default/members/sidebar.php | 25 |
11 files changed, 197 insertions, 185 deletions
diff --git a/mod/members/index.php b/mod/members/index.php deleted file mode 100644 index e85817dec..000000000 --- a/mod/members/index.php +++ /dev/null @@ -1,80 +0,0 @@ -<?php -/** - * Elgg members index page - * - * @package ElggMembers - */ - -require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); - -// Get the current page's owner -$page_owner = elgg_get_page_owner(); -if ($page_owner === false || is_null($page_owner)) { - $page_owner = get_loggedin_user(); - //set_page_owner($page_owner->getGUID()); -} - -// get filter parameters -$limit = get_input('limit', 10); -$offset = get_input('offset', 0); -$filter = get_input("filter", "newest"); - -// search options -$tag = get_input('tag'); - -// friends links -$area1 = "<ul class='submenu page_navigation'><li><a href=\"" . elgg_get_site_url()."pg/friends/" . elgg_get_page_owner()->username . "\">". elgg_echo('friends') . "</a></li>"; -$area1 .= "<li><a href=\"" . elgg_get_site_url()."pg/friendsof/" . elgg_get_page_owner()->username . "\">". elgg_echo('friends:of') . "</a></li>"; -$area1 .= "<li class='selected'><a href=\"" . elgg_get_site_url()."mod/members/index.php\">". elgg_echo('members:browse') . "</a></li>"; -$area1 .= "</ul>"; - -//search members -$area1 .= elgg_view("members/search"); - -// count members -$members = get_number_users(); - -// title -$pagetitle = elgg_echo("members:members")." ({$members})"; -$area2 = elgg_view_title($pagetitle); - -//get the correct view based on filter -switch($filter){ - case "newest": - $filter_content = elgg_list_entities(array('type' => 'user', 'offset' => $offset, 'full_view' => FALSE)); - break; - case "pop": - $filter_content = list_entities_by_relationship_count('friend', true, '', '', 0, 10, false); - break; - case "active": - $filter_content = get_online_users(); - break; - // search based on name - case "search": - set_context('search'); - $filter_content = list_user_search($tag); - break; - // search based on tags - case "search_tags": - $options = array(); - $options['query'] = $tag; - $options['type'] = "user"; - $options['offset'] = $offset; - $options['limit'] = $limit; - $results = trigger_plugin_hook('search', 'tags', $options, array()); - $count = $results['count']; - $users = $results['entities']; - $filter_content = elgg_view_entity_list($users, $count, $offset, $limit, false, false, true); - break; - case 'default': - $filter_content = elgg_list_entities(array('type' => 'user', 'offset' => $offset, 'full_view' => FALSE)); - break; -} - -$area2 .= elgg_view('page_elements/elgg_content', array('body' => elgg_view("members/members_navigation", array("count" => $members, "filter" => $filter)) . "<div class='members_list'>".$filter_content."</div>", 'subclass' => 'members')); - -//select the correct canvas area -$body = elgg_view_layout("one_column_with_sidebar", $area2, $area1); - -// Display page -page_draw(sprintf(elgg_echo('members:members'), $page_owner->name), $body);
\ No newline at end of file diff --git a/mod/members/languages/en.php b/mod/members/languages/en.php index bb1701928..73783143e 100644 --- a/mod/members/languages/en.php +++ b/mod/members/languages/en.php @@ -1,21 +1,16 @@ <?php /** - * Elgg members language - * - * @package ElggMembers + * Members English language file */ $english = array( - 'members:members' => "Site members", - 'members:online' => "Members active now", - 'members:browse' => "Browse members", - 'members:active' => "site members", - 'members:searchtag' => "Member search via tag", - 'members:searchname' => "Member search via name", - 'members:label:newest' => 'Newest', 'members:label:popular' => 'Popular', - 'members:label:active' => 'Active', + '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', ); - -add_translation('en', $english);
\ No newline at end of file + +add_translation('en', $english); diff --git a/mod/members/manifest.xml b/mod/members/manifest.xml index 37959b66e..8b18c9f91 100644 --- a/mod/members/manifest.xml +++ b/mod/members/manifest.xml @@ -1,12 +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" /> - <field key="elgg_install_state" value="enabled" /> - <field key="admin_interface" value="simple" /> +<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 395922219..54787cd16 100644 --- a/mod/members/start.php +++ b/mod/members/start.php @@ -1,15 +1,41 @@ <?php /** - * Elgg members plugin - * - * @package Elggmembers + * Members plugin intialization + */ + +elgg_register_event_handler('init', 'system', 'members_init'); + +/** + * Initialize page handler and site menu item */ - function members_init() { - global $CONFIG; - elgg_extend_view('css','members/css'); + 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'); -register_elgg_event_handler('init','system','members_init');
\ No newline at end of file +/** + * 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]; + + 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 9c92398fc..000000000 --- a/mod/members/views/default/members/css.php +++ /dev/null @@ -1,24 +0,0 @@ -<?php -/** - * Elgg Members Css - * - * @package Members - */ -?> -.members .group_count { - font-weight: bold; - color: #666666; - margin:0 0 5px 4px; -} -#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:196px; -}
\ No newline at end of file diff --git a/mod/members/views/default/members/members_navigation.php b/mod/members/views/default/members/members_navigation.php deleted file mode 100644 index f3d53a954..000000000 --- a/mod/members/views/default/members/members_navigation.php +++ /dev/null @@ -1,23 +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 = elgg_get_site_url() . "mod/members/index.php"; - -?> -<div class="elgg_horizontal_tabbed_nav margin_top"> -<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>
\ 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/search.php b/mod/members/views/default/members/search.php deleted file mode 100644 index 993df239b..000000000 --- a/mod/members/views/default/members/search.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * Elgg Members search - * - * @package Members - */ -?> -<div class="sidebar_container"> - -<h3><?php echo elgg_echo('members:searchtag'); ?></h3> -<form id="memberssearchform" class="member_tags" action="<?php echo elgg_get_site_url(); ?>mod/members/index.php?" method="get"> - <input type="text" name="tag" value="Member tags" onclick="if (this.value=='Member tags') { this.value='' }" class="search_input" /> - <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" class="member_name" action="<?php echo elgg_get_site_url(); ?>mod/members/index.php?" method="get"> - <input type="text" name="tag" value="Members name" onclick="if (this.value=='Members name') { 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 |
