" . __( "View people's profiles when you mouse over their Gravatars", 'jetpack' ) . ""; ?> element of the avatar. * @param mixed $author User ID, email address, user login, comment object, user object, post object * * @return The element of the avatar. */ function grofiles_get_avatar( $avatar, $author ) { if ( is_numeric( $author ) ) { grofiles_gravatars_to_append( $author ); } else if ( is_string( $author ) ) { if ( false !== strpos( $author, '@' ) ) { grofiles_gravatars_to_append( $author ); } else { if ( $user = get_user_by( 'slug', $author ) ) grofiles_gravatars_to_append( $user->ID ); } } else if ( isset( $author->comment_type ) ) { if ( '' != $author->comment_type && 'comment' != $author->comment_type ) return $avatar; if ( $author->user_id ) grofiles_gravatars_to_append( $author->user_id ); else grofiles_gravatars_to_append( $author->comment_author_email ); } else if ( isset( $author->user_login ) ) { grofiles_gravatars_to_append( $author->ID ); } else if ( isset( $author->post_author ) ) { grofiles_gravatars_to_append( $author->post_author ); } return $avatar; } /** * Loads Gravatar Hovercard script. * * @todo is_singular() only? */ function grofiles_attach_cards() { global $blog_id; // Is the display of Avatars disabled? if ( ! get_option( 'show_avatars' ) ) { return; } // Is the display of Gravatar Hovercards disabled? if ( 'disabled' == Jetpack_Options::get_option_and_ensure_autoload( 'gravatar_disable_hovercards', '0' ) ) { return; } wp_enqueue_script( 'grofiles-cards', 'https://secure.gravatar.com/js/gprofiles.js', array( 'jquery' ), GROFILES__CACHE_BUSTER, true ); wp_enqueue_script( 'wpgroho', plugins_url( 'wpgroho.js', __FILE__ ), array( 'grofiles-cards' ), false, true ); if ( is_user_logged_in() ) { $cu = wp_get_current_user(); $my_hash = md5( $cu->user_email ); } else if ( !empty( $_COOKIE['comment_author_email_' . COOKIEHASH] ) ) { $my_hash = md5( $_COOKIE['comment_author_email_' . COOKIEHASH] ); } else { $my_hash = ''; } wp_localize_script( 'wpgroho', 'WPGroHo', compact( 'my_hash' ) ); } function grofiles_attach_cards_forced() { add_filter( 'pre_option_gravatar_disable_hovercards', 'grofiles_force_gravatar_enable_hovercards' ); grofiles_attach_cards(); } function grofiles_force_gravatar_enable_hovercards() { return 'enabled'; } function grofiles_admin_cards_forced() { add_action( 'admin_footer', 'grofiles_attach_cards_forced' ); } function grofiles_admin_cards() { add_action( 'admin_footer', 'grofiles_attach_cards' ); } function grofiles_extra_data() { ?>
user_email ); } } elseif ( is_email( $author ) ) { $hash = md5( $author ); } elseif ( is_a( $author, 'WP_User' ) ) { $hash = md5( $author->user_email ); } if ( ! $hash ) { return; } ?>
$value ) : ?>
data_callback, ... ) */ function grofiles_hovercards_data_callbacks() { /** * Filter the Gravatar Hovercard PHP callbacks. * * @module gravatar-hovercards * * @since 1.1.0 * * @param array $args Array of data callbacks. */ return apply_filters( 'grofiles_hovercards_data_callbacks', array() ); } /** * Keyed JSON object containing all profile data provided by registered callbacks * * @param int|strung $author User ID or email address * * @return array( data_key => data, ... ) */ function grofiles_hovercards_data( $author ) { $r = array(); foreach ( grofiles_hovercards_data_callbacks() as $key => $callback ) { if ( !is_callable( $callback ) ) continue; $data = call_user_func( $callback, $author, $key ); if ( !is_null( $data ) ) $r[$key] = $data; } return $r; }