3 function browser_pagesetup() {
9 $page_owner = $profile_id;
12 if (defined("context") && context == "network") {
13 $PAGE->menu_sub[] = array( 'name' => 'friend',
14 'html' => a_href("{$CFG->wwwroot}mod/browser/index.php" ,
15 __gettext("Browse users and communities")));
21 // Advanced search function
22 function browser_advanced_search($type, $display, $filter) {
27 $filter = preg_replace("/([A-Za-z_0-9]*)\:\:/i", "", $filter);
29 $sort = optional_param('sort', '');
30 $sortcriteria = optional_param('sortcriteria', '');
31 $recent = optional_param('recent','');
36 $where = " u.user_type = 'person' ";
39 $where = " u.user_type = 'community' ";
50 switch($sortcriteria) {
52 $having = " HAVING members > 0 AND members < 11";
55 $having = " HAVING members > 10 AND members < 101";
58 $having = " HAVING members > 100 AND members < 1001";
61 $having = " HAVING members > 1000";
67 $formatted_filter = $db->qstr($filter);
68 $formatted_filter_wild = $db->qstr("%" . $filter . "%");
70 $sql = "SELECT u.ident, u.username, u.name, u.icon, u.user_type, COUNT(m.ident) AS members "; // assumes GROUP BY u.ident
74 case "name": $sql .= "FROM ".$CFG->prefix
."users u JOIN ".$CFG->prefix
."friends m ON m.friend = u.ident WHERE $where AND u.name LIKE " . $formatted_filter_wild . " GROUP BY u.ident $having ORDER BY members DESC, name DESC";
76 case "schools": $sql .= "FROM ".$CFG->prefix
."users u JOIN ".$CFG->prefix
."profile_data p ON u.ident = p.owner JOIN ".$CFG->prefix
."friends m ON m.friend = u.ident WHERE $where AND p.value LIKE " . $formatted_filter_wild . " AND p.name IN ('highschool', 'university') GROUP BY u.ident $having ORDER BY members DESC, name DESC";
80 case "email": $sql .= "FROM ".$CFG->prefix
."users u JOIN ".$CFG->prefix
."tags t ON u.ident = t.owner JOIN ".$CFG->prefix
."friends m ON m.friend = u.ident WHERE $where AND t.tag = " . $formatted_filter . " AND t.tagtype = 'emailaddress' GROUP BY u.ident $having ORDER BY members DESC, name DESC";
82 case "interests": $sql .= "FROM ".$CFG->prefix
."users u JOIN ".$CFG->prefix
."tags t ON u.ident = t.owner JOIN ".$CFG->prefix
."friends m ON m.friend = u.ident WHERE $where AND t.tag = " . $formatted_filter . " AND t.tagtype = 'interests' GROUP BY u.ident $having ORDER BY members DESC, name DESC";
84 case "expertise": $sql .= "FROM ".$CFG->prefix
."users u JOIN ".$CFG->prefix
."tags t ON u.ident = t.owner JOIN ".$CFG->prefix
."friends m ON m.friend = u.ident WHERE $where AND t.tag = " . $formatted_filter . " AND t.tagtype = 'skills' GROUP BY u.ident $having ORDER BY members DESC, name DESC";
86 case "language": $sql .= "FROM ".$CFG->prefix
."users u JOIN ".$CFG->prefix
."tags t ON u.ident = t.owner JOIN ".$CFG->prefix
."friends m ON m.friend = u.ident WHERE $where AND t.tag = " . $formatted_filter . " AND t.tagtype = 'languages' GROUP BY u.ident $having ORDER BY members DESC, name DESC";