function sp_PostIndexUserStatus($args = '', $onlineLabel = '', $offlineLabel = '') { global $spThisPost, $spThisPostUser, $spThisUser; if ($spThisPostUser->guest) { return; } $defs = array('tagId' => 'spPostIndexUserStatus%ID%', 'tagClass' => 'spPostUserStatus', 'iconClass' => 'spIcon', 'onlineLabelClass' => 'spPostUserStatusOnline', 'offlineLabelClass' => 'spPostUserStatusOffline', 'onlineIcon' => 'sp_UserOnlineSmall.png', 'offlineIcon' => 'sp_UserOfflineSmall.png', 'echo' => 1, 'get' => 0); $a = wp_parse_args($args, $defs); $a = apply_filters('sph_PostIndexUserStatus_args', $a); extract($a, EXTR_SKIP); # sanitize before use $tagId = esc_attr($tagId); $tagClass = esc_attr($tagClass); $iconClass = esc_attr($iconClass); $onlineLabelClass = esc_attr($onlineLabelClass); $offlineLabelClass = esc_attr($offlineLabelClass); $onlineIcon = sanitize_file_name($onlineIcon); $offlineIcon = sanitize_file_name($offlineIcon); $onlineLabel = sp_filter_title_display($onlineLabel); $offlineLabel = sp_filter_title_display($offlineLabel); $echo = (int) $echo; $get = (int) $get; $tagId = str_ireplace('%ID%', $spThisPost->post_id, $tagId); $spMemberOpts = sp_get_option('sfmemberopts'); $icon = ''; if (($spThisUser->admin || (!$spMemberOpts['sfhidestatus'] || (!isset($spThisPostUser->hidestatus) || !$spThisPostUser->hidestatus))) && sp_is_online($spThisPostUser->ID)) { if (!empty($onlineIcon)) { $icon = sp_paint_icon($iconClass, SPTHEMEICONSURL, sanitize_file_name($onlineIcon)); } $label = $onlineLabel; $labelClass = $onlineLabelClass; $status = true; } else { if (!empty($offlineIcon)) { $icon = sp_paint_icon($iconClass, SPTHEMEICONSURL, sanitize_file_name($offlineIcon)); } $label = $offlineLabel; $labelClass = $offlineLabelClass; $status = false; } if ($get) { return $status; } $out = "<div id='{$tagId}' class='{$tagClass}'><span class='{$labelClass}'>\n"; if (!empty($icon)) { $out .= $icon; } $out .= $label; $out .= "</span></div>\n"; $out = apply_filters('sph_PostIndexUserStatus', $out, $a); if ($echo) { echo $out; } else { return $out; } }
function sp_OnlineStatus($args = '', $user, $userProfile = '') { global $spThisUser; $defs = array('tagClass' => 'spOnlineStatus', 'onlineIcon' => 'sp_UserOnline.png', 'offlineIcon' => 'sp_UserOffline.png', 'echo' => 1, 'get' => 0); $a = wp_parse_args($args, $defs); $a = apply_filters('sph_OnlineStatus_args', $a); extract($a, EXTR_SKIP); # sanitize before use $tagClass = esc_attr($tagClass); $onlineIcon = sanitize_file_name($onlineIcon); $offlineIcon = sanitize_file_name($offlineIcon); $user = (int) $user; $echo = (int) $echo; $get = (int) $get; # output display name $out = ''; if (empty($userProfile)) { $userProfile = sp_get_user($user); } $spMemberOpts = sp_get_option('sfmemberopts'); if (($spThisUser->admin || (!$spMemberOpts['sfhidestatus'] || !$userProfile->hidestatus)) && sp_is_online($user)) { $icon = sp_find_icon(SPTHEMEICONSURL, sanitize_file_name($onlineIcon)); if ($get) { return true; } } else { $icon = sp_find_icon(SPTHEMEICONSURL, sanitize_file_name($offlineIcon)); if ($get) { return false; } } $out .= "<img class='{$tagClass}' src='{$icon}' />"; $out = apply_filters('sph_OnlineStatus', $out, $user, $a); if ($echo) { echo $out; } else { return $out; } }