function get_avatar( $id_or_email, $size = '96', $default = '', $alt = false, $link = true ) { global $wpdb, $current_user; if ( false === $alt) $safe_alt = ''; else $safe_alt = esc_attr( $alt ); if ( !is_numeric($size) ) $size = '96'; $email = ''; $display_name = ''; if ( is_numeric($id_or_email) ) { $id = (int) $id_or_email; $user = get_userdata($id); if ( $user ) $email = $user->user_email; } elseif ( is_object($id_or_email) ) { // No avatar for pingbacks or trackbacks $allowed_comment_types = apply_filters( 'get_avatar_comment_types', array( 'comment' ) ); if ( ! empty( $id_or_email->comment_type ) && ! in_array( $id_or_email->comment_type, (array) $allowed_comment_types ) ) return false; if ( !empty($id_or_email->user_id) ) { $id = (int) $id_or_email->user_id; $user = get_userdata($id); if ( $user) $email = $user->user_email; } elseif ( !empty($id_or_email->comment_author_email) ) { $email = $id_or_email->comment_author_email; } } else { $id = $wpdb->get_var("select ID from ".$wpdb->base_prefix."users where user_email = '".$id_or_email."'"); } if ( empty($default) ) { $avatar_default = get_option('avatar_default'); if ( empty($avatar_default) ) $default = 'mystery'; else $default = $avatar_default; } if ( !empty($email) ) $email_hash = md5( strtolower( $email ) ); if ( is_ssl() ) { $host = 'https://secure.gravatar.com'; } else { if ( !empty($email) ) $host = sprintf( "http://%d.gravatar.com", ( hexdec( $email_hash[0] ) % 2 ) ); else $host = 'http://0.gravatar.com'; } if ( 'mystery' == $default ) $default = "$host/avatar/ad516503a11cd5ca435acc9bb6523536?s={$size}"; // ad516503a11cd5ca435acc9bb6523536 == md5('*****@*****.**') elseif ( 'blank' == $default ) $default = includes_url('images/blank.gif'); elseif ( !empty($email) && 'gravatar_default' == $default ) $default = ''; elseif ( 'gravatar_default' == $default ) $default = "$host/avatar/s={$size}"; elseif ( empty($email) ) $default = "$host/avatar/?d=$default&s={$size}"; elseif ( strpos($default, 'http://') === 0 ) $default = add_query_arg( 's', $size, $default ); if ( !empty($email) ) { $out = "$host/avatar/"; $out .= $email_hash; $out .= '?s='.$size; $out .= '&d=' . urlencode( $default ); $rating = get_option('avatar_rating'); if ( !empty( $rating ) ) $out .= "&r={$rating}"; $avatar = "<img alt='{$safe_alt}' src='{$out}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />"; } else { $avatar = "<img alt='{$safe_alt}' src='{$default}' class='avatar avatar-{$size} photo avatar-default' height='{$size}' width='{$size}' />"; } $return = ''; if (!isset($id)) { $id = 0; } if (get_option(WPS_OPTIONS_PREFIX.'_img_db') == "on") { $profile_photo = __wps__get_meta($id, 'profile_avatar'); $profile_avatars = get_option(WPS_OPTIONS_PREFIX.'_profile_avatars'); if ($profile_photo == '' || $profile_photo == 'upload_failed' || $profile_avatars != 'on') { $return .= apply_filters('get_avatar', $avatar, $id_or_email, $size, $default, $alt); } else { $return .= "<img src='".WP_CONTENT_URL."/plugins/".WPS_DIR."/server/get_profile_avatar.php?uid=".$id."' style='width:".$size."px; height:".$size."px' class='avatar avatar-".$size." photo' />"; } } else { $profile_photo = __wps__get_meta($id, 'profile_photo'); $profile_avatars = get_option(WPS_OPTIONS_PREFIX.'_profile_avatars'); if ($profile_photo == '' || $profile_photo == 'upload_failed' || $profile_avatars != 'on') { $return .= apply_filters('get_avatar', $avatar, $id_or_email, $size, $default, $alt); } else { $img_url = get_option(WPS_OPTIONS_PREFIX.'_img_url')."/members/".$id."/profile/"; $img_src = str_replace('//','/',$img_url) . $profile_photo; $return .= "<img src='".$img_src."' style='width:".$size."px; height:".$size."px' class='avatar avatar-".$size." photo' />"; } } if (!get_option(WPS_OPTIONS_PREFIX.'_wps_use_gravatar') && strpos($return, 'gravatar')) { $return = "<img src='".get_option(WPS_OPTIONS_PREFIX.'_images')."/unknown.jpg' style='width:".$size."px; height:".$size."px' class='avatar avatar-".$size." photo' />"; } // Get URL to profile if (function_exists('__wps__profile') && $id != '' ) { $profile_url = __wps__get_url('profile'); $profile_url = $profile_url.__wps__string_query($profile_url).'uid='.$id; if ($link) { $p = " style='cursor:pointer' onclick='javascript:document.location=\"".$profile_url."\";' />"; } else { $p = " style='cursor:pointer' />"; } $return = str_replace("/>", $p, $return); } // Filter to allow changes $return = apply_filters('__wps__get_avatar_filter', $return, $id); // Add Profile Plus (hover box) if installed if (function_exists('__wps__profile_plus')) { if (get_option(WPS_OPTIONS_PREFIX.'_wps_show_hoverbox') == 'on') { if ($id != '') { $display_name = str_replace("'", "'", $wpdb->get_var("select display_name from ".$wpdb->base_prefix."users where ID = '".$id."'")); } else { $display_name = ''; } if (__wps__friend_of($id, $current_user->ID)) { $return = str_replace("class='", "rel='friend' title = '".$display_name."' id='".$id."' class='__wps__follow ", $return); } else { if (__wps__pending_friendship($id)) { $return = str_replace("class='", "rel='pending' title = '".$display_name."' id='".$id."' class='__wps__follow ", $return); } else { $return = str_replace("class='", "rel='' title = '".$display_name."' id='".$id."' class='__wps__follow ", $return); } } if (__wps__is_following($current_user->ID, $id)) { $return = str_replace("class='", "rev='following' class='", $return); } else { $return = str_replace("class='", "rev='' class='", $return); } } } return $return; }
if (function_exists('__wps__forum')) { $sql = "SELECT cid, comment FROM ".$wpdb->base_prefix."symposium_comments WHERE author_uid = %d AND comment_parent = 0 AND type = 'forum' ORDER BY cid DESC LIMIT 0,1"; $forum = $wpdb->get_row($wpdb->prepare($sql, $member->uid)); if ($forum && (!$comment || $forum->cid != $comment->cid)) { $html .= '<div>'.__wps__buffer(__wps__make_url(stripslashes($forum->comment))).'</div>'; } } } } // Show add as a friend if (is_user_logged_in() && get_option(WPS_OPTIONS_PREFIX.'_show_dir_buttons') && $member->uid != $current_user->ID) { if (__wps__pending_friendship($member->uid)) { // Pending $html .= sprintf(__('%s request sent.', WPS_TEXT_DOMAIN), get_option(WPS_OPTIONS_PREFIX.'_alt_friend')); } else { if (!$is_friend) { // Not a friend $html .= '<div id="addasfriend_done1_'.$member->uid.'">'; $html .= '<input class="add_as_friend_message addfriend_text" title="'.$member->uid.'" id="addtext_'.$member->uid.'" type="text" onclick="this.value=\'\'" value="'.sprintf(__('Add as a %s...', WPS_TEXT_DOMAIN), get_option(WPS_OPTIONS_PREFIX.'_alt_friend')).'">'; $html .= '<input type="submit" title="'.$member->uid.'" class="addasfriend __wps__button" value="'.__('Add', WPS_TEXT_DOMAIN).'" /> '; $html .= '</div>'; $html .= '<div id="addasfriend_done2_'.$member->uid.'" class="hidden">'.sprintf(__('%s Request Sent', WPS_TEXT_DOMAIN), get_option(WPS_OPTIONS_PREFIX.'_alt_friend')).'</div>'; } } } // Filter for individual member reults
function __wps__members($attr) { global $wpdb, $current_user; wp_get_current_user(); $plugin = WPS_PLUGIN_URL; $dbpage = $plugin.'/symposium_members_db.php'; $roles = isset($attr['roles']) ? $attr['roles'] : ''; if ($roles) { if (strpos($roles, ' ') !== FALSE) $roles = str_replace(' ', '', $roles); if (strpos($roles, '_') !== FALSE) $roles = str_replace('_', '', $roles); } $html = '<div class="__wps__wrapper">'; if (!is_user_logged_in() && get_option(WPS_OPTIONS_PREFIX.'dir_hide_public') ) { echo __wps__show_login_link(__("You need to be <a href='%s'>logged in</a> to view the directory.", WPS_TEXT_DOMAIN)); } else { // If 'term' is passed as a parameter, it will influence the results $me = $current_user->ID; $page = 1; // Now check against shortcode parameter (overrides global roles) if ( !isset( $wp_roles ) ) $wp_roles = new WP_Roles(); if ($roles) { $dir_levels = $roles; } else { // Get included global levels $dir_levels = strtolower(get_option(WPS_OPTIONS_PREFIX.'_dir_level')); if (strpos($dir_levels, ' ') !== FALSE) $dir_levels = str_replace(' ', '', $dir_levels); if (strpos($dir_levels, '_') !== FALSE) $dir_levels = str_replace('_', '', $dir_levels); } $html .= '<div id="__wps__directory_roles" style="display:none">'.$dir_levels.'</div>'; // Stores start value for more $start = get_option(WPS_OPTIONS_PREFIX.'_dir_page_length')+1; $html .= '<div id="symposium_directory_start" style="display:none">'.$start.'</div>'; $html .= '<div id="symposium_directory_page_length" style="display:none">'.get_option(WPS_OPTIONS_PREFIX.'_dir_page_length').'</div>'; $term = ""; if (isset($_POST['member'])) { $term .= strtolower($_POST['member']); } if (isset($_GET['term'])) { $term .= strtolower($_GET['term']); } $html .= "<div class='members_row' style='padding:0px'>"; $html .= '<div style="float:right; padding:0px;padding-top:2px;">'; $html .= '<input id="members_go_button" type="submit" class="__wps__button" value="'.__("Search", WPS_TEXT_DOMAIN).'" />'; if (is_user_logged_in()) { $html .= '<div style="clear:both;"><input type="checkbox" id="symposium_member_friends" /> '.__('Only friends', WPS_TEXT_DOMAIN).'</div>'; } $html .= '</div>'; $html .= '<input type="text" id="symposium_member" autocomplete="off" name="symposium_member" class="members_search_box" value="'.$term.'" />'; if (!get_option(WPS_OPTIONS_PREFIX.'_wps_lite') && function_exists('__wps__profile_plus')) { $html .= '<div style="clear:both">'; $html .= '<a href="javascript:void(0);" id="symposium_show_advanced" /> '.__('Advanced search', WPS_TEXT_DOMAIN).'</a>'; $html .= '</div>'; } $html .= "</div>"; if (!get_option(WPS_OPTIONS_PREFIX.'_wps_lite') && function_exists('__wps__profile_plus')) { // Loop through extended fields and offer as a search options (if there are any) $extensions = $wpdb->get_results("SELECT * FROM ".$wpdb->base_prefix."symposium_extended WHERE search = 'on' ORDER BY extended_order, extended_name"); if ($extensions) { $html .= "<div id='symposium_advanced_search' style='width:90%;padding:0px;display:none;'>"; $html .= "<table style='border:0'>"; foreach ($extensions as $extension) { $html .= '<tr>'; if ($extension->extended_type == 'Checkbox') { $html .= '<td id="__wps__ext_label_'.$extension->eid.'" style="border:0">'; $html .= stripslashes($extension->extended_name); $html .= '</td><td id="__wps__ext_value_'.$extension->eid.'" style="border:0">'; $html .= '<input rel="checkbox" id="'.$extension->eid.'" class="symposium_extended_search" type="checkbox" name="extended_value[]" />'; $html .= '</td>'; } if ($extension->extended_type == 'List') { $html .= '<td id="__wps__ext_label_'.$extension->eid.'" style="border:0">'; $html .= stripslashes($extension->extended_name).':'; $html .= '</td><td id="__wps__ext_value_'.$extension->eid.'" style="border:0">'; $html .= '<select rel="list" id="'.$extension->eid.'" class="symposium_extended_search" name="extended_value[]">'; $items = explode(',', $extension->extended_default); $html .= '<option value="'.__('Any', WPS_TEXT_DOMAIN).'">'.__('Any', WPS_TEXT_DOMAIN).'</option>'; foreach ($items as $item) { $html .= '<option value="'.$item.'">'.$item.'</option>'; } $html .= '</select>'; $html .= '</td>'; } $html .= '</tr>'; } $html .= "</table>"; $html .= "</div>"; } } // Sort by option $order = get_option(WPS_OPTIONS_PREFIX.'_dir_atoz_order'); if ($order == 'surname') { $orderby = 'surname'; } if ($order == 'display_name') { $orderby = 'u.display_name'; } if ($order == 'distance') { $orderby = 'distance, u.display_name'; } if ($order == 'last_activity') { $orderby = 'cast(m4.meta_value as datetime) DESC'; } $html .= '<br /><div id="symposium_members_orderby_div">'; $html .= __('Sort by:', WPS_TEXT_DOMAIN).' '; $html .= '<select id="symposium_members_orderby">'; $html .= '<option value="last_activity"'; if ($order == 'last_activity') $html .= ' SELECTED'; $html .= '>'.__('Last activity', WPS_TEXT_DOMAIN).'</option>'; $html .= '<option value="display_name"'; if ($order == 'display_name') $html .= ' SELECTED'; $html .= '>'.__('Display name', WPS_TEXT_DOMAIN).'</option>'; $html .= '<option value="surname"'; if ($order == 'surname') $html .= ' SELECTED'; $html .= '>'.__('Surname (if entered in display name)', WPS_TEXT_DOMAIN).'</option>'; if (get_option(WPS_OPTIONS_PREFIX.'_use_distance') && function_exists('__wps__profile_plus') && !get_option(WPS_OPTIONS_PREFIX.'_hide_location')) { $html .= '<option value="distance"'; if ($order == 'distance') $html .= ' SELECTED'; $html .= '>'.__('Distance', WPS_TEXT_DOMAIN).'</option>'; } $html .= '</select>'; $html .= '</div>'; // A to Z $html .= '<div id="symposium_members_atoz">'; for ($i = 65; $i <= 90; $i++) { if (chr($i) != strtoupper($term)) { // Get directory URL worked out $member_url = __wps__get_url('members'); $q = __wps__string_query($member_url); $html .= '<a href="'.$member_url.$q.'term='.chr($i).'">'.chr($i).'</a> '; } else { $html .= '<strong>'.chr($i).'</strong> '; } } $html .= '</div>'; $html .= '<div id="__wps__members">'; $search_limit = 1000; $sql_ext = strlen($term) != 1 ? "OR (lower(u.display_name) LIKE '% %".$term."%')" : ""; $lat = __wps__get_meta($current_user->ID, 'plus_lat'); if (get_option(WPS_OPTIONS_PREFIX.'_use_distance') && $lat != 0 && is_user_logged_in() && function_exists('__wps__profile_plus')) { $long = __wps__get_meta($current_user->ID, 'plus_long'); $measure = ($value = get_option(WPS_OPTIONS_PREFIX."_plus_lat_long")) ? $value : ''; $show_alt = ($value = get_option(WPS_OPTIONS_PREFIX."_plus_show_alt")) ? $value : ''; $sql = "SELECT u.ID as uid, u.display_name, cast(m4.meta_value as datetime) as last_activity, CASE WHEN u.display_name LIKE '% %' THEN right(u.display_name, length(u.display_name)-locate(' ', u.display_name)) ELSE u.display_name END AS surname, CASE m7.meta_value WHEN '0' THEN 99999 ELSE FLOOR(((ACOS(SIN(".$lat." * PI() / 180) * SIN(m7.meta_value * PI() / 180) + COS(".$lat." * PI() / 180) * COS(m7.meta_value * PI() / 180) * COS((".$long." - m8.meta_value) * PI() / 180)) * 180 / PI()) * 60 * 1.1515)) END AS distance FROM ".$wpdb->base_prefix."users u LEFT JOIN ".$wpdb->base_prefix."usermeta m4 ON m4.user_id = u.ID LEFT JOIN ".$wpdb->base_prefix."usermeta m7 ON m7.user_id = u.ID LEFT JOIN ".$wpdb->base_prefix."usermeta m8 ON m8.user_id = u.ID WHERE m4.meta_key = 'symposium_last_activity' AND m7.meta_key = 'symposium_plus_lat' AND m8.meta_key = 'symposium_plus_long' AND (u.display_name IS NOT NULL) AND ( (lower(u.display_name) LIKE '".$term."%') ".$sql_ext." ) ORDER BY ".$orderby." LIMIT 0,".$search_limit; $members = $wpdb->get_results($sql); } else { $members = $wpdb->get_results(" SELECT u.ID as uid, u.display_name, cast(m4.meta_value as datetime) as last_activity, 99999 as distance, CASE WHEN u.display_name LIKE '% %' THEN right(u.display_name, length(u.display_name)-locate(' ', u.display_name)) ELSE u.display_name END AS surname FROM ".$wpdb->base_prefix."users u LEFT JOIN ".$wpdb->base_prefix."usermeta m4 ON u.ID = m4.user_id WHERE m4.meta_key = 'symposium_last_activity' AND (u.display_name IS NOT NULL) AND ( (lower(u.display_name) LIKE '".$term."%') ".$sql_ext." ) ORDER BY ".$orderby." LIMIT 0,".$search_limit); } if (WPS_DEBUG) { $html .= $wpdb->last_query; $html .= '<p>Returned '.count($members).' records.</p>'; } else { $html .= '<div style="display:none">'.$wpdb->last_query.'</div>'; } if ($members) { if (WPS_DEBUG) $html .= '<p>Processing $members.</p>'; $inactive = get_option(WPS_OPTIONS_PREFIX.'_online'); $offline = get_option(WPS_OPTIONS_PREFIX.'_offline'); $profile = __wps__get_url('profile'); $mailpage = __wps__get_url('mail'); $q = __wps__string_query($mailpage); $count = 0; $user_info = get_user_by('login', 'nobody'); $nobody_id = $user_info ? $user_info->ID : 0; foreach ($members as $member) { if (WPS_DEBUG) $html .= 'Member: '.$member->display_name.'<br />'; $user_info = get_userdata($member->uid); // Check to see if this member is in the included list of roles if (WPS_DEBUG) $html .= 'Checking capabilities... '; $user = get_userdata( $member->uid ); $capabilities = $user->{$wpdb->base_prefix.'capabilities'}; $include = false; if ($capabilities) { foreach ( $capabilities as $role => $name ) { if ($role) { if (WPS_DEBUG) $html .= $role.'<br />'; $role = strtolower($role); $role = str_replace(' ', '', $role); $role = str_replace('_', '', $role); if (WPS_DEBUG) $html .= 'Checking role '.$role.' against '.$dir_levels.'<br />'; if (strpos($dir_levels, $role) !== FALSE) $include = true; } else { if (WPS_DEBUG) $html .= 'no role<br />'; } } } else { if (WPS_DEBUG) $html .= 'no capabilities.<br />'; // No capabilities, so let's assume they should be included $include = true; } if ($include && ($member->uid != $nobody_id)) { if (WPS_DEBUG) $html .= 'Include!<br />'; $city = __wps__get_meta($member->uid, 'extended_city'); $country = __wps__get_meta($member->uid, 'extended_country'); $share = __wps__get_meta($member->uid, 'share'); $wall_share = __wps__get_meta($member->uid, 'wall_share'); $count++; if ($count > get_option(WPS_OPTIONS_PREFIX.'_dir_page_length')) break; $time_now = time(); $last_active_minutes = strtotime($member->last_activity); $last_active_minutes = floor(($time_now-$last_active_minutes)/60); $html .= "<div class='members_row"; $is_friend = __wps__friend_of($member->uid, $current_user->ID); if ($is_friend || $member->uid == $me) { $html .= " row_odd corners"; } else { $html .= " row corners"; } $html .= "'>"; $html .= "<div class='members_info'>"; $html .= "<div class='members_avatar'>"; $html .= get_avatar($member->uid, 64); $html .= "</div>"; $html .= "<div style='padding-left: 75px;'>"; if ( ($member->uid == $me) || (is_user_logged_in() && strtolower($share) == 'everyone') || (strtolower($share) == 'public') || (strtolower($share) == 'friends only' && $is_friend) ) { $html .= "<div class='members_location'>"; if ($city != '') { $html .= $city; } if ($country != '') { if ($city != '') { $html .= ', '.$country; } else { $html .= $country; } } $html .= "</div>"; } if (function_exists('__wps__mail') && !get_option(WPS_OPTIONS_PREFIX.'_wps_lite')) { // Show Send Mail button if (get_option(WPS_OPTIONS_PREFIX.'_show_dir_buttons') && $member->uid != $current_user->ID) { if ($is_friend) { // A friend $html .= "<div class='mail_icon' style='display:none;float:right; margin-right:5px;'>"; $html .= '<img style="cursor:pointer" src="'.get_option(WPS_OPTIONS_PREFIX.'_images').'/orange-tick.gif" onclick="document.location = \''.$mailpage.$q.'view=compose&to='.$member->uid.'\';">'; $html .= "</div>"; } } } $html .= __wps__profile_link($member->uid); if (!get_option(WPS_OPTIONS_PREFIX.'_wps_lite')) { $html .= ', '; } else { $html .= '<br />'; } $html .= __('last active', WPS_TEXT_DOMAIN).' '.__wps__time_ago($member->last_activity).". "; if ($last_active_minutes >= $offline) { //$html .= '<img src="'.get_option(WPS_OPTIONS_PREFIX.'_images').'/loggedout.gif">'; } else { if ($last_active_minutes >= $inactive) { $html .= '<img src="'.get_option(WPS_OPTIONS_PREFIX.'_images').'/inactive.gif">'; } else { $html .= '<img src="'.get_option(WPS_OPTIONS_PREFIX.'_images').'/online.gif">'; } } // Distance if (function_exists('__wps__profile_plus') && is_user_logged_in() && $member->distance < 99999 && $member->uid != $current_user->ID) { // if privacy settings permit if ( (strtolower($share) == 'everyone') || (strtolower($share) == 'public') || (strtolower($share) == 'friends only' && __wps__friend_of($member->uid, $current_user->ID)) ) { if ($measure != 'on') { $distance = intval(($member->distance/5)*8); $miles = __('km', WPS_TEXT_DOMAIN); } else { $distance = $member->distance; $miles = __('miles', WPS_TEXT_DOMAIN); } $html .= '<br />'.__('Distance', WPS_TEXT_DOMAIN).': '.$distance.' '.$miles; if ($show_alt == 'on') { if ($measure != 'on') { $html .= ' ('.intval(($distance/8)*5).' '.__('miles', WPS_TEXT_DOMAIN).')'; } else { $html .= ' ('.intval(($distance/5)*8).' '.__('km', WPS_TEXT_DOMAIN).')'; } } } } if (!get_option(WPS_OPTIONS_PREFIX.'_wps_lite')) { // Show label if entered if ($label = __wps__get_meta($member->uid, 'profile_label')) $html .= '<div class="__wps__members_info_label">'.$label.'</div>'; // if privacy settings permit if ( (strtolower($wall_share) == 'everyone') || (strtolower($wall_share) == 'public') || (strtolower($wall_share) == 'friends only' && __wps__friend_of($member->uid, $current_user->ID)) ) { // Show comment $sql = "SELECT cid, comment, type FROM ".$wpdb->base_prefix."symposium_comments WHERE author_uid = %d AND comment_parent = 0 AND type = 'post' ORDER BY cid DESC LIMIT 0,1"; $comment = $wpdb->get_row($wpdb->prepare($sql, $member->uid)); if ($comment) { $html .= '<div style="max-height:250px">'.__wps__buffer(__wps__make_url(stripslashes($comment->comment))).'</div>'; } // Show latest non-status activity if applicable if (function_exists('__wps__forum')) { $sql = "SELECT cid, comment FROM ".$wpdb->base_prefix."symposium_comments WHERE author_uid = %d AND comment_parent = 0 AND type = 'forum' ORDER BY cid DESC LIMIT 0,1"; $forum = $wpdb->get_row($wpdb->prepare($sql, $member->uid)); if ($forum && (!$comment || $forum->cid != $comment->cid)) { $html .= '<div>'.__wps__buffer(__wps__make_url(stripslashes($forum->comment))).'</div>'; } } } } // Show add as a friend if (is_user_logged_in() && get_option(WPS_OPTIONS_PREFIX.'_show_dir_buttons') && $member->uid != $current_user->ID) { if (__wps__pending_friendship($member->uid)) { // Pending $html .= sprintf(__('%s request sent.', WPS_TEXT_DOMAIN), get_option(WPS_OPTIONS_PREFIX.'_alt_friend')); } else { if (!$is_friend) { // Not a friend $html .= '<div id="addasfriend_done1_'.$member->uid.'">'; $html .= '<input class="add_as_friend_message addfriend_text" title="'.$member->uid.'" id="addtext_'.$member->uid.'" type="text" onclick="this.value=\'\'" value="'.sprintf(__('Add as a %s...', WPS_TEXT_DOMAIN), get_option(WPS_OPTIONS_PREFIX.'_alt_friend')).'">'; $html .= '<input type="submit" title="'.$member->uid.'" class="addasfriend __wps__button" value="'.__('Add', WPS_TEXT_DOMAIN).'" /> '; $html .= '</div>'; $html .= '<div id="addasfriend_done2_'.$member->uid.'" class="hidden">'.sprintf(__('%s Request Sent', WPS_TEXT_DOMAIN), get_option(WPS_OPTIONS_PREFIX.'_alt_friend')).'</div>'; } } } // Filter for individual member reults $html = apply_filters ( '__wps__directory_member_filter', $html, $member->uid); $html .= "</div>"; $html .= "</div>"; // members_info $html .= "</div>"; // members_row } // if ($include) } // foreach ($members as $member) $html .= "<div id='showmore_directory_div' style='text-align:center; width:100%'><a href='javascript:void(0)' id='showmore_directory'>".__("more...", WPS_TEXT_DOMAIN)."</a></div>"; } else { $html .= '<br />'.__('No members found', WPS_TEXT_DOMAIN)."...."; } // if ($members) } $html .= '</div>'; // __wps__members $html .= '</div>'; // __wps__wrapper // Filter for header $html = apply_filters ( 'symposium_member_header_filter', $html ); // Send HTML return $html; }
function __wps__profile_header($uid1, $uid2, $url, $display_name) { global $wpdb, $current_user; $plugin = WPS_PLUGIN_URL; $template = get_option(WPS_OPTIONS_PREFIX.'_template_profile_header'); $html = str_replace("[]", "", stripslashes($template)); $privacy = __wps__get_meta($uid1, 'share'); $html = str_replace("[display_name]", $display_name, $html); // Extended fields if (strpos($html, '[ext_') !== FALSE) { // Prepare array for use $sql = "SELECT * FROM ".$wpdb->base_prefix."symposium_extended"; $extensions = $wpdb->get_results($sql); $ext_rows = array(); if ($extensions) { foreach ($extensions as $extension) { $value = __wps__get_meta($uid1, 'extended_'.$extension->extended_slug); if ($extension->extended_type == 'Checkbox' || $value) { array_push ($ext_rows, array ( 'slug'=>$extension->extended_slug, 'name'=>$extension->extended_name, 'value'=>$value, 'type'=>$extension->extended_type, 'order'=>$extension->extended_order ) ); } } } $c = 0; while ($c < 100 && strpos($html, '[ext_') !== FALSE) { $ext = ''; $c++; $s1 = strpos($html, '[ext_'); $s2 = strpos($html, ']', $s1+1); $start = substr($html, 0, $s1); $code = substr($html, $s1+5, $s2-$s1-5); $end = substr($html, $s2+1, strlen($html)-$s1); if ( ($uid1 == $uid2) || (is_user_logged_in() && strtolower($privacy) == 'everyone') || (strtolower($privacy) == 'public') || (strtolower($privacy) == 'friends only' && __wps__friend_of($uid1, $current_user->ID)) ) { if ($ext_rows) { $ext_rows = __wps__sub_val_sort($ext_rows,'order'); foreach ($ext_rows as $row) { if (strtolower($row['slug']) == strtolower($code)) { if ($row['type'] == 'Checkbox' && !$row['value'] && get_option(WPS_OPTIONS_PREFIX.'_profile_show_unchecked') != 'on') { // Don't show if unchecked and chosen not to show (in Profile config) } else { if ($row['type'] == 'Text' && $row['value']) { $ext .= '<div class="__wps__profile_page_header_ext_label">'.stripslashes($row['name']).'</div>'; $ext .= '<div class="__wps__profile_page_header_ext_value">'.stripslashes(__wps__make_url($row['value'])).'</div>'; } if ($row['type'] == 'Textarea' && $row['value']) { $ext .= '<div class="__wps__profile_page_header_ext_label">'.stripslashes($row['name']).'</div>'; $ext .= '<div class="__wps__profile_page_header_ext_value">'.str_replace(chr(10),'<br />',stripslashes(__wps__make_url($row['value']))).'</div>'; } if ($row['type'] == 'List' && $row['value']) { $ext .= '<div class="__wps__profile_page_header_ext_label">'.stripslashes($row['name']).'</div>'; $ext .= '<div class="__wps__profile_page_header_ext_value">'.str_replace(chr(10),'<br />',stripslashes(__wps__make_url($row['value']))).'</div>'; } if ($row['type'] == 'Checkbox') { if (get_option(WPS_OPTIONS_PREFIX.'_profile_show_unchecked') == 'on' || $row['value']) { $ext .= '<div class="__wps__profile_page_header_ext_label">'.stripslashes($row['name'])." "; if ($row['value']) { $ext .= "<img src='".get_option(WPS_OPTIONS_PREFIX.'_images')."/tick.png' />"; } else { $ext .= "<img src='".get_option(WPS_OPTIONS_PREFIX.'_images')."/cross.png' />"; } $ext .= '</div>'; } } } } } } if ($c == 1) { $html = $start.'<div id="__wps__profile_page_header_ext_fields">'.$ext; } else { $html = $start.$ext; } if (strpos($end, '[ext_') === FALSE) $html .= '</div>'; $html .= $end; } else { $html = $start.$end; } } } // Profile label if ($label = __wps__get_meta($uid1, 'profile_label')) { $html = str_replace("[profile_label]", $label, $html); } else { $html = str_replace("<div id='profile_label'>[profile_label]</div>", '', $html); } // Follow/Unfollow if (function_exists('__wps__profile_plus') && is_user_logged_in() && $uid1 != $uid2) { if (__wps__is_following($uid2, $uid1)) { $html = str_replace("[follow]", '<input type="submit" ref="unfollow" value="'.__('Unfollow', WPS_TEXT_DOMAIN).'" class="__wps__button follow-button">', $html); } else { $html = str_replace("[follow]", '<input type="submit" ref="follow" value="'.__('Follow', WPS_TEXT_DOMAIN).'" class="__wps__button follow-button">', $html); } } else { $html = str_replace("[follow]", '', $html); } // Poke if (get_option(WPS_OPTIONS_PREFIX.'_use_poke') == 'on' && is_user_logged_in() && $uid1 != $uid2) { $html = str_replace("[poke]", '<input type="submit" value="'.get_option(WPS_OPTIONS_PREFIX.'_poke_label').'" class="__wps__button poke-button">', $html); } else { $html = str_replace("[poke]", '', $html); } $location = ""; $born = ""; if ( ($uid1 == $uid2) || (is_user_logged_in() && strtolower($privacy) == 'everyone') || (strtolower($privacy) == 'public') || (strtolower($privacy) == 'friends only' && __wps__friend_of($uid1, $current_user->ID)) ) { $city = __wps__get_meta($uid1, 'extended_city'); $country = __wps__get_meta($uid1, 'extended_country'); if ($city != '') { $location .= $city; } if ($city != '' && $country != '') { $location .= ", "; } if ($country != '') { $location .= $country; } $day = (int)__wps__get_meta($uid1, 'dob_day'); $month = __wps__get_meta($uid1, 'dob_month'); $year = (int)__wps__get_meta($uid1, 'dob_year'); if ($year > 0 || $month > 0 || $day > 0) { $monthname = __wps__get_monthname($month); if ($day == 0) $day = ''; if ($year == 0) $year = ''; $born = get_option(WPS_OPTIONS_PREFIX.'_show_dob_format'); $born = ( $born != '') ? $born : __('Born', WPS_TEXT_DOMAIN).' %monthname %day%th, %year'; $day0 = str_pad($day, 2, '0', STR_PAD_LEFT); $month = ($month > 0) ? str_pad($month, 2, '0', STR_PAD_LEFT) : ''; $month0 = ($month > 0) ? str_pad($month, 2, '0', STR_PAD_LEFT) : ''; $year = ($year > 0) ? $year : ''; $born = str_replace('%0day', $day0, $born); $born = str_replace('%day', $day, $born); $born = str_replace('%monthname', $monthname, $born); $born = str_replace('%0month', $month0, $born); $born = str_replace('%month', $month, $born); $born = str_replace('%year', $year, $born); $th = 'th'; if ($day == 1 || $day == 21 || $day == 31) $th = 'st'; if ($day == 2 || $day == 22) $th = 'nd'; if ($day == 3 || $day == 23) $th = 'rd'; if (strpos($born, '%th')) { if ($day) { $born = str_replace('%th', $th, $born); } else { $born = str_replace('%th', '', $born); } } $born = str_replace(' ,', ',', $born); if ($year == '') $born = str_replace(', ', '', $born); $born = apply_filters ( '__wps__profile_born', $born, $day, $month, $year ); } } else { if (strtolower($privacy) == 'friends only') { $html = str_replace("[born]", sprintf(__("Personal information only for %s.", WPS_TEXT_DOMAIN), get_option(WPS_OPTIONS_PREFIX.'_alt_friends')), $html); } if (strtolower($privacy) == 'nobody') { $html = str_replace("[born]", __("Personal information is private.", WPS_TEXT_DOMAIN), $html); } } $html = str_replace("[location]", $location, $html); if (get_option(WPS_OPTIONS_PREFIX.'_show_dob') == 'on') { $html = str_replace("[born]", $born, $html); } else { $html = str_replace("[born]", "", $html); } if ( is_user_logged_in() ) { $actions = ''; if ($uid1 == $uid2) { // Facebook Connect if (function_exists('__wps__facebook')) $actions .= __wps__get_facebook(); } else { // Buttons if (__wps__friend_of($uid1, $current_user->ID)) { // A friend // Send mail if (function_exists('__wps__mail')) $actions .= '<input type="submit" class="__wps__button" id="profile_send_mail_button" value="'.__('Send a Mail...', WPS_TEXT_DOMAIN).'" />'; } else { if (__wps__pending_friendship($uid1)) { // Pending $actions .= '<input type="submit" title="'.$uid1.'" id="cancelfriendrequest" class="__wps__button" value="'.sprintf(__('Cancel %s Request', WPS_TEXT_DOMAIN), get_option(WPS_OPTIONS_PREFIX.'_alt_friend')).'" /> '; $actions .= '<div id="cancelfriendrequest_done" class="hidden addasfriend_input">'.sprintf(__('%s Request Cancelled', WPS_TEXT_DOMAIN), get_option(WPS_OPTIONS_PREFIX.'_alt_friend')).'</div>'; } else { // Not a friend $actions .= '<div id="addasfriend_done1_'.$uid1.'" class="addasfriend_input" >'; $actions .= '<div id="add_as_friend_message">'; $actions .= '<input type="text" title="'.$uid1.'"id="addfriend" class="input-field" onclick="this.value=\'\'" value="'.sprintf(__('Add as a %s', WPS_TEXT_DOMAIN), get_option(WPS_OPTIONS_PREFIX.'_alt_friend')).'...."'; if (!get_option(WPS_OPTIONS_PREFIX.'_show_buttons')) { $actions .= ' style="width:210px"'; } $actions .= '>'; if (get_option(WPS_OPTIONS_PREFIX.'_show_buttons')) { $actions .= '<input type="submit" title="'.$uid1.'" id="addasfriend" class="__wps__button" value="'.__('Add', WPS_TEXT_DOMAIN).'" /> '; } $actions .= '</div></div>'; $actions .= '<div id="addasfriend_done2_'.$uid1.'" class="hidden addasfriend_input">'.sprintf(__('%s Request Sent', WPS_TEXT_DOMAIN), get_option(WPS_OPTIONS_PREFIX.'_alt_friend')).'</div>'; } } } $html = str_replace("[actions]", $actions, $html); } else { $html = str_replace("[actions]", "", $html); } // Photo if (strpos($html, '[avatar') !== FALSE) { if (strpos($html, '[avatar]')) { $html = str_replace("[avatar]", get_avatar($uid1, 200), $html); } else { $x = strpos($html, '[avatar'); $y = strpos($html, ']', $x); $diff = $y-$x-8; $avatar = substr($html, 0, $x); $avatar2 = substr($html, $x+8, $diff); $avatar3 = substr($html, $x+$diff+9, strlen($html)-$x-($diff+9)); $html = $avatar . get_avatar($uid1, $avatar2) . $avatar3; } } // Filter for profile header $html = apply_filters ( '__wps__profile_header_filter', $html, $uid1 ); return $html; }