Show users with gravatar photo in member directory

This commit is contained in:
champsupertramp
2016-02-24 13:16:44 +08:00
parent 7faf52d18e
commit 65d090a514
2 changed files with 182 additions and 149 deletions
+8
View File
@@ -138,6 +138,11 @@
'key' => 'profile_photo', // from upload form
'value' => '',
'compare' => '!='
),
array(
'key' => 'synced_gravatar_hashed_id', // gravatar
'value' => '',
'compare' => '!='
)
);
@@ -152,6 +157,7 @@
);
}
// show specific usernames
if ( isset( $show_these_users ) && $show_these_users && is_array( $show_these_users ) ) {
foreach( $show_these_users as $username ) {
@@ -176,6 +182,7 @@
if ( isset( $sortby ) ) {
if ( $sortby == 'other' && $sortby_custom ) {
$query_args['meta_key'] = $sortby_custom;
@@ -232,3 +239,4 @@
return $result;
}
+174 -149
View File
@@ -1163,11 +1163,12 @@ function um_fetch_user( $user_id ) {
/***
*** @default avatar
***/
function um_get_default_avatar_uri() {
function um_get_default_avatar_uri( $user_id = '' ) {
$uri = um_get_option('default_avatar');
$uri = $uri['url'];
if ( !$uri )
$uri = um_url . 'assets/img/default_avatar.jpg';
return $uri;
}
@@ -1194,173 +1195,197 @@ function um_fetch_user( $user_id ) {
return '';
}
function um_user( $data, $attrs = null ) {
function um_user( $data, $attrs = null ) {
global $ultimatemember;
global $ultimatemember;
switch($data){
switch($data){
default:
default:
$value = um_profile($data);
$value = um_profile($data);
if ( $ultimatemember->validation->is_serialized( $value ) ) {
$value = unserialize( $value );
}
return $value;
break;
case 'full_name':
if ( um_user('first_name') && um_user('last_name') ) {
$full_name = um_user('first_name') . ' ' . um_user('last_name');
} else {
$full_name = um_user('display_name');
}
$full_name = $ultimatemember->validation->safe_name_in_url( $full_name );
// update full_name changed
if( um_profile( $data ) !== $full_name )
{
update_user_meta( um_user('ID'), 'full_name', $full_name );
}
return $full_name;
break;
case 'display_name':
$op = um_get_option('display_name');
$name = '';
if ( $op == 'default' ) {
$name = um_profile('display_name');
}
if ( $op == 'nickname' ) {
$name = um_profile('nickname');
}
if ( $op == 'full_name' ) {
if ( um_user('first_name') && um_user('last_name') ) {
$name = um_user('first_name') . ' ' . um_user('last_name');
} else {
$name = um_profile( $data );
if ( $ultimatemember->validation->is_serialized( $value ) ) {
$value = unserialize( $value );
}
if ( ! $name ) {
return $value;
break;
case 'full_name':
if ( um_user('first_name') && um_user('last_name') ) {
$full_name = um_user('first_name') . ' ' . um_user('last_name');
} else {
$full_name = um_user('display_name');
}
$full_name = $ultimatemember->validation->safe_name_in_url( $full_name );
// update full_name changed
if( um_profile( $data ) !== $full_name )
{
update_user_meta( um_user('ID'), 'full_name', $full_name );
}
return $full_name;
break;
case 'display_name':
$op = um_get_option('display_name');
$name = '';
if ( $op == 'default' ) {
$name = um_profile('display_name');
}
if ( $op == 'nickname' ) {
$name = um_profile('nickname');
}
if ( $op == 'full_name' ) {
if ( um_user('first_name') && um_user('last_name') ) {
$name = um_user('first_name') . ' ' . um_user('last_name');
} else {
$name = um_profile( $data );
}
if ( ! $name ) {
$name = um_user('user_login');
}
}
if ( $op == 'sur_name' ) {
if ( um_user('first_name') && um_user('last_name') ) {
$name = um_user('last_name') . ' ' . um_user('first_name');
} else {
$name = um_profile( $data );
}
}
if ( $op == 'first_name' ) {
if ( um_user('first_name') ) {
$name = um_user('first_name');
} else {
$name = um_profile( $data );
}
}
if ( $op == 'username' ) {
$name = um_user('user_login');
}
}
if ( $op == 'sur_name' ) {
if ( um_user('first_name') && um_user('last_name') ) {
$name = um_user('last_name') . ' ' . um_user('first_name');
if ( $op == 'initial_name' ) {
if ( um_user('first_name') && um_user('last_name') ) {
$initial = um_user('last_name');
$name = um_user('first_name') . ' ' . $initial[0];
} else {
$name = um_profile( $data );
}
}
if ( $op == 'initial_name_f' ) {
if ( um_user('first_name') && um_user('last_name') ) {
$initial = um_user('first_name');
$name = $initial[0] . ' ' . um_user('last_name');
} else {
$name = um_profile( $data );
}
}
if ( $op == 'field' && um_get_option('display_name_field') != '' ) {
$fields = array_filter(preg_split('/[,\s]+/', um_get_option('display_name_field') ));
$name = '';
foreach( $fields as $field ) {
$name .= um_profile( $field ) . ' ';
}
}
return apply_filters('um_user_display_name_filter', $name, um_user('ID'), ( $attrs == 'html' ) ? 1 : 0 );
break;
case 'role_select':
case 'role_radio':
return $ultimatemember->user->get_role_name( um_user('role') );
break;
case 'submitted':
$array = um_profile($data);
if ( empty( $array ) ) return '';
$array = unserialize( $array );
return $array;
break;
case 'password_reset_link':
return $ultimatemember->password->reset_url();
break;
case 'account_activation_link':
return $ultimatemember->permalinks->activate_url();
break;
case 'profile_photo':
$has_profile_photo = false;
if ( um_profile('profile_photo') ) {
$avatar_uri = um_get_avatar_uri( um_profile('profile_photo'), $attrs );
$has_profile_photo = true;
} else {
$name = um_profile( $data );
$avatar_uri = um_get_default_avatar_uri( um_user('ID') );
}
}
if ( $op == 'first_name' ) {
if ( um_user('first_name') ) {
$name = um_user('first_name');
$avatar_uri = apply_filters('um_user_avatar_url_filter', $avatar_uri, um_user('ID') );
if ( $avatar_uri )
if( um_get_option('use_gravatars') && ! um_user('synced_profile_photo') && ! $has_profile_photo ){
$avatar_uri = um_get_domain_protocol().'gravatar.com/avatar/'.um_user('synced_gravatar_hashed_id');
$avatar_uri = add_query_arg('s',400, $avatar_uri);
}
return '<img src="' . $avatar_uri . '" class="func-um_user gravatar avatar avatar-'.$attrs.' um-avatar" width="'.$attrs.'" height="'.$attrs.'" alt="" />';
if ( !$avatar_uri )
return '';
break;
case 'cover_photo':
if ( um_profile('cover_photo') ) {
$cover_uri = um_get_cover_uri( um_profile('cover_photo'), $attrs );
} else {
$name = um_profile( $data );
$cover_uri = um_get_default_cover_uri();
}
}
if ( $op == 'username' ) {
$name = um_user('user_login');
}
if ( $cover_uri )
return '<img src="'. $cover_uri .'" alt="" />';
if ( $op == 'initial_name' ) {
if ( um_user('first_name') && um_user('last_name') ) {
$initial = um_user('last_name');
$name = um_user('first_name') . ' ' . $initial[0];
} else {
$name = um_profile( $data );
}
}
if ( !$cover_uri )
return '';
if ( $op == 'initial_name_f' ) {
if ( um_user('first_name') && um_user('last_name') ) {
$initial = um_user('first_name');
$name = $initial[0] . ' ' . um_user('last_name');
} else {
$name = um_profile( $data );
}
}
break;
if ( $op == 'field' && um_get_option('display_name_field') != '' ) {
$fields = array_filter(preg_split('/[,\s]+/', um_get_option('display_name_field') ));
$name = '';
foreach( $fields as $field ) {
$name .= um_profile( $field ) . ' ';
}
}
return apply_filters('um_user_display_name_filter', $name, um_user('ID'), ( $attrs == 'html' ) ? 1 : 0 );
break;
case 'role_select':
case 'role_radio':
return $ultimatemember->user->get_role_name( um_user('role') );
break;
case 'submitted':
$array = um_profile($data);
if ( empty( $array ) ) return '';
$array = unserialize( $array );
return $array;
break;
case 'password_reset_link':
return $ultimatemember->password->reset_url();
break;
case 'account_activation_link':
return $ultimatemember->permalinks->activate_url();
break;
case 'profile_photo':
if ( um_profile('profile_photo') ) {
$avatar_uri = um_get_avatar_uri( um_profile('profile_photo'), $attrs );
} else {
$avatar_uri = um_get_default_avatar_uri();
}
$avatar_uri = apply_filters('um_user_avatar_url_filter', $avatar_uri, um_user('ID') );
if ( $avatar_uri )
return '<img src="' . $avatar_uri . '" class="gravatar avatar avatar-'.$attrs.' um-avatar" width="'.$attrs.'" height="'.$attrs.'" alt="" />';
if ( !$avatar_uri )
return '';
break;
case 'cover_photo':
if ( um_profile('cover_photo') ) {
$cover_uri = um_get_cover_uri( um_profile('cover_photo'), $attrs );
} else {
$cover_uri = um_get_default_cover_uri();
}
if ( $cover_uri )
return '<img src="'. $cover_uri .'" alt="" />';
if ( !$cover_uri )
return '';
break;
}
}
}
/**
* Get server protocol
* @return string
*/
function um_get_domain_protocol(){
if ( is_ssl() ) {
$protocol = 'https://';
} else {
$protocol = 'http://';
}
return $protocol;
}