function sp_TopicIndexLastPost($args = '', $label = '') { global $spThisTopic; $defs = array('tagId' => 'spTopicIndexLastPost%ID%', 'tagClass' => 'spInRowPostLink', 'labelClass' => 'spInRowLabel', 'infoClass' => 'spInRowInfo', 'linkClass' => 'spInRowLastPostLink', 'iconClass' => 'spIcon', 'icon' => 'sp_ArrowRight.png', 'tip' => 1, 'nicedate' => 1, 'date' => 0, 'time' => 0, 'user' => 1, 'stackuser' => 1, 'stackdate' => 0, 'truncateUser' => 0, 'itemBreak' => '<br />', 'echo' => 1, 'get' => 0); $a = wp_parse_args($args, $defs); $a = apply_filters('sph_TopicIndexLastPost_args', $a); extract($a, EXTR_SKIP); # sanitize before use $tagId = esc_attr($tagId); $tagClass = esc_attr($tagClass); $labelClass = esc_attr($labelClass); $infoClass = esc_attr($infoClass); $linkClass = esc_attr($linkClass); $iconClass = esc_attr($iconClass); $icon = sanitize_file_name($icon); $tip = (int) $tip; $nicedate = (int) $nicedate; $date = (int) $date; $time = (int) $time; $user = (int) $user; $stackuser = (int) $stackuser; $stackdate = (int) $stackdate; $truncateUser = (int) $truncateUser; $icon = $icon; $echo = (int) $echo; $get = (int) $get; $tagId = str_ireplace('%ID%', $spThisTopic->topic_id, $tagId); if ($tip && !empty($spThisTopic->last_post_tip)) { $title = "title='{$spThisTopic->last_post_tip}'"; $linkClass .= ' vtip'; } else { $title = ''; } $stackuser ? $ulb = '<br />' : ($ulb = ' '); $stackdate ? $dlb = '<br />' : ($dlb = ' - '); $out = "<div id='{$tagId}' class='{$tagClass}'>\n"; $out .= "<span class='{$labelClass}'>" . sp_filter_title_display($label) . "\n"; # Link to post $out .= "<a class='{$linkClass}' {$title} href='{$spThisTopic->last_post_permalink}'>\n"; if (!empty($icon)) { $out .= "<img src='" . sp_find_icon(SPTHEMEICONSURL, $icon) . "' class='{$iconClass}' alt=''/>\n"; } $out .= "</a></span>\n"; # user $poster = sp_build_name_display($spThisTopic->last_user_id, sp_truncate($spThisTopic->last_display_name, $truncateUser)); if (empty($poster)) { $poster = sp_truncate($spThisTopic->last_guest_name, $truncateUser); } if ($user) { $out .= "<span class='{$labelClass}'>{$ulb}{$poster}</span>"; } $out .= $itemBreak; if ($get) { $getData = new stdClass(); $getData->permalink = $spThisTopic->first_post_permalink; $getData->topic_name = $spThisTopic->topic_name; $getData->post_date = $spThisTopic->last_post_date; $getData->tooltip = $spThisTopic->last_post_tip; $getData->user = $poster; return $getData; } # date/time if ($nicedate && isset($spThisTopic->last_post_date)) { $out .= "<span class='{$labelClass}'>" . sp_nicedate($spThisTopic->last_post_date) . "</span>\n"; } else { if ($date && isset($spThisTopic->last_post_date)) { $out .= "<span class='{$labelClass}'>" . sp_date('d', $spThisTopic->last_post_date); if ($time) { $out .= $dlb . sp_date('t', $spThisTopic->last_post_date); } $out .= "</span>\n"; } } $out .= "</div>\n"; $out = apply_filters('sph_TopicIndexLastPost', $out, $a); if ($echo) { echo $out; } else { return $out; } }
function sp_MembersListName($args = '') { global $spThisMember; if (!sp_get_auth('view_members_list')) { return; } $defs = array('tagId' => 'spMembersListName%ID%', 'tagClass' => 'spRowName', 'echo' => 1, 'get' => 0); $a = wp_parse_args($args, $defs); $a = apply_filters('sph_MembersListName_args', $a); extract($a, EXTR_SKIP); # sanitize before use $tagId = esc_attr($tagId); $tagClass = esc_attr($tagClass); $echo = (int) $echo; $get = (int) $get; $tagId = str_ireplace('%ID%', $spThisMember->user_id, $tagId); if ($get) { return $spThisMember->display_name; } $out = "<span id='{$tagId}' class='{$tagClass}'>" . sp_build_name_display($spThisMember->user_id, $spThisMember->display_name) . "</span>\n"; $out = apply_filters('sph_MembersListName', $out, $a); if ($echo) { echo $out; } else { return $out; } }
function sp_ForumIndexModerators($args = '', $label = '') { global $spGlobals, $spThisForum; $defs = array('tagId' => 'spForumModerators%ID%', 'tagClass' => 'spForumModeratorList', 'listClass' => 'spInRowLabel', 'labelClass' => 'spRowDescription', 'showEmpty' => 0, 'echo' => 1, 'get' => 0); $a = wp_parse_args($args, $defs); $a = apply_filters('sph_ForumIndexModerators_args', $a); extract($a, EXTR_SKIP); # sanitize before use $tagId = esc_attr($tagId); $tagClass = esc_attr($tagClass); $listClass = esc_attr($listClass); $labelClass = esc_attr($labelClass); $showEmpty = (int) $showEmpty; $echo = (int) $echo; $get = (int) $get; $tagId = str_ireplace('%ID%', $spThisForum->forum_id, $tagId); $mods = $spGlobals['forum_moderators']['users'][$spThisForum->forum_id]; if ($get) { return $mods; } # build mods list with name display if (!empty($mods)) { $modList = ''; $first = true; foreach ($mods as $mod) { if (!$first) { $modList .= ', '; } $first = false; $modList .= sp_build_name_display($mod['user_id'], $mod['display_name']); } } else { if ($showEmpty) { $modList = 'none'; } else { return ''; } } $out = "<div id='{$tagId}' class='{$tagClass}'>\n"; $out .= "<span class='{$labelClass}'>" . sp_filter_title_display($label) . "</span>\n"; $out .= "<span class='{$listClass}'>{$modList}</span>\n"; $out .= "</div>\n"; $out = apply_filters('sph_ForumIndexModerators', $out, $a); if ($echo) { echo $out; } else { return $out; } }
function sp_UsersAlsoViewing($args = '', $messageLabel = '') { global $spThisUser, $spVars; $defs = array('tagClass' => 'spAlsoViewingContainer', 'userHolder' => 'spBrowsingUserHolder', 'browsingClass' => 'spBrowsingTopic', 'messageClass' => 'spBrowsingMessage', 'avatarClass' => 'spAvatar', 'avatarSize' => 30, 'includeAdmins' => 1, 'includeMods' => 1, 'includeMembers' => 0, 'displayToAll' => 0, 'echo' => 1, 'get' => 0); $a = wp_parse_args($args, $defs); $a = apply_filters('sph_UsersAlsoViewing_args', $a); extract($a, EXTR_SKIP); # sanitize before use $tagClass = esc_attr($tagClass); $browsingClass = esc_attr($browsingClass); $messageClass = esc_attr($messageClass); $avatarClass = esc_attr($avatarClass); $avatarSize = (int) $avatarSize; $includeAdmins = (int) $includeAdmins; $includeMods = (int) $includeMods; $includeMembers = (int) $includeMembers; $displayToAll = (int) $displayToAll; $echo = (int) $echo; $get = (int) $get; # get online user data $members = sp_get_members_online(); if ($get) { return $members; } $out = ''; $tout = ''; # get member info to check against members browsing topic if ($members) { foreach ($members as $user) { if ($spThisUser->ID != $user->trackuserid) { if (!empty($spVars['pageview'])) { if ($spVars['pageview'] == 'topic' && $user->topic_id == $spVars['topicid']) { # check to see if admin, mod, or user if ($displayToAll || $spThisUser->admin && $includeAdmins && sp_is_forum_admin($user->trackuserid) || $displayToAll || $spThisUser->admin && $includeMods && sp_is_forum_mod($user->trackuserid) || $displayToAll || $spThisUser->admin && $includeMembers && !sp_is_forum_mod($user->trackuserid != 0)) { $tout .= "<div class='{$userHolder}'>"; $tout .= sp_UserAvatar("tagClass={$avatarClass}&size={$avatarSize}&link=none&context=user&echo=0", $user->trackuserid); $tout .= "<span class='{$browsingClass}'>"; $tout .= sp_build_name_display($user->trackuserid, $user->display_name); $tout .= "</span>"; $tout .= "<br><span> {$messageLabel}</span>"; $tout .= "</div>"; } } } } } } if (!empty($tout)) { $out = "<div class='{$tagClass}'>"; $out .= $tout; $out .= "</div>"; } # finish it up if ($echo) { echo $out; } else { return $out; } }
function sp_UserGroupList($args = '', $titleLabel = '', $userGroup = 0) { if (!$userGroup) { return; } $defs = array('tagClass' => 'spUserGroupList', 'pTitleClass' => 'spUserGroupListTitle', 'spanClass' => 'spUserGroupListList', 'link_names' => 1, 'postCount' => 1, 'echo' => 1, 'get' => 0); $a = wp_parse_args($args, $defs); $a = apply_filters('sph_UserGroupList_args', $a); extract($a, EXTR_SKIP); # sanitize before use $tagClass = esc_attr($tagClass); $pTitleClass = esc_attr($pTitleClass); $spanClass = esc_attr($spanClass); $link_names = (int) $link_names; $postCount = (int) $postCount; $echo = (int) $echo; $userGroup = (int) $userGroup; $get = (int) $get; if (!empty($titleLabel)) { $titleLabel = sp_filter_title_display($titleLabel); } # get user group member list $sql = "SELECT " . SFMEMBERSHIPS . ".user_id, display_name, posts\n\t\t\tFROM " . SFMEMBERSHIPS . "\n\t\t\tJOIN " . SFMEMBERS . " ON " . SFMEMBERS . ".user_id = " . SFMEMBERSHIPS . ".user_id\n\t\t\tWHERE " . SFMEMBERSHIPS . ".usergroup_id=" . $userGroup . "\n\t\t\tORDER BY display_name"; $members = spdb_select('set', $sql); if ($get) { return $members; } # render the members list $out = "<div class='{$tagClass}'>"; $out .= "<p class='{$pTitleClass}'><span class='{$pTitleClass}'>{$titleLabel}</span>"; if ($members) { $first = true; $out .= "<span class='{$spanClass}'>"; foreach ($members as $member) { $comma = !$first ? ', ' : ''; if ($member->posts < 0) { $member->posts = 0; } $userPosts = $postCount ? ': ' . $member->posts : ''; $out .= sp_build_name_display($member->user_id, $comma . sp_filter_name_display($member->display_name) . $userPosts); $first = false; } $out .= '</span>'; } $out .= '</p>'; # finish it up $out .= "</div>\n"; $out = apply_filters('sph_UserGroupList', $out, $a); if ($echo) { echo $out; } else { return $out; } }
function sp_ListFirstPost($args = '', $label = '') { global $spThisListTopic; $defs = array('tagId' => 'spListFirstPost%ID%', 'tagClass' => 'spListPostLink', 'labelClass' => 'spListLabel', 'linkClass' => 'spLink', 'iconClass' => 'spIcon', 'icon' => 'sp_ArrowRight.png', 'labelLink' => 0, 'tip' => 1, 'niceDate' => 1, 'date' => 0, 'time' => 0, 'user' => 1, 'truncateUser' => 0, 'break' => 0, 'echo' => 1, 'get' => 0); $a = wp_parse_args($args, $defs); $a = apply_filters('sph_ListFirstPost_args', $a); extract($a, EXTR_SKIP); # sanitize before use $tagId = esc_attr($tagId); $tagClass = esc_attr($tagClass); $labelClass = esc_attr($labelClass); $linkClass = esc_attr($linkClass); $iconClass = esc_attr($iconClass); $labelLink = (int) $labelLink; $tip = (int) $tip; $niceDate = (int) $niceDate; $date = (int) $date; $time = (int) $time; $user = (int) $user; $truncateUser = (int) $truncateUser; $break = (int) $break; $icon = sanitize_file_name($icon); $echo = (int) $echo; $get = (int) $get; $tagId = str_ireplace('%ID%', $spThisListTopic->topic_id, $tagId); if ($tip && !empty($spThisListTopic->first_post_tip)) { $title = "title='{$spThisListTopic->first_post_tip}'"; $linkClass .= ''; } else { $title = ''; } $sp = ' '; $out = "<div id='{$tagId}' class='{$tagClass}'>\n"; if ($labelLink) { $out .= "<a class='{$linkClass}' {$title} href='{$spThisListTopic->first_post_permalink}'>\n"; } $out .= "<span class='{$labelClass}'>" . sp_filter_title_display($label) . " \n"; if ($labelLink) { $out .= "</a>\n"; } # Link to post $out .= "<a class='{$linkClass}' {$title} href='{$spThisListTopic->first_post_permalink}'>\n"; $out .= sp_paint_icon($iconClass, SPTHEMEICONSURL, $icon); $out .= "</a></span>\n"; # user $poster = sp_build_name_display($spThisListTopic->first_user_id, sp_truncate($spThisListTopic->first_display_name, $truncateUser)); if (empty($poster)) { $poster = sp_truncate($spThisListTopic->first_guest_name, $truncateUser); } if ($user) { $out .= "<span class='{$labelClass}'>{$poster}</span>\n"; } if ($get) { $getData = new stdClass(); $getData->permalink = $spThisListTopic->first_post_permalink; $getData->topic_name = $spThisListTopic->topic_name; $getData->post_date = $spThisListTopic->first_post_date; $getData->tooltip = $spThisListTopic->first_post_tip; $getData->user = $poster; return $getData; } if ($break) { $sp = "<br />"; } # date/time if ($niceDate) { $out .= "<span class='{$labelClass}'>" . $sp . sp_nicedate($spThisListTopic->first_post_date) . "</span>\n"; } else { if ($date) { $out .= "<span class='{$labelClass}'>" . $sp . sp_date('d', $spThisListTopic->first_post_date); if ($time) { $out .= '-' . sp_date('t', $spThisListTopic->first_post_date); } $out .= "</span>\n"; } } $out .= "</div>\n"; $out = apply_filters('sph_ListFirstPost', $out, $a); if ($echo) { echo $out; } else { return $out; } }
function sp_ListSearchUserName($args = '') { global $spThisPostList; $defs = array('tagId' => 'spListPostUserName%ID%', 'tagClass' => 'spPostUserName', 'truncateUser' => 0, 'echo' => 1, 'get' => 0); $a = wp_parse_args($args, $defs); $a = apply_filters('sph_ListSearchUserName_args', $a); extract($a, EXTR_SKIP); # sanitize before use $tagId = esc_attr($tagId); $tagClass = esc_attr($tagClass); $truncateUser = (int) $truncateUser; $echo = (int) $echo; $get = (int) $get; $tagId = str_ireplace('%ID%', $spThisPostList->post_id, $tagId); $out = "<div id='{$tagId}' class='{$tagClass}'>"; if ($spThisPostList->user_id) { $name = sp_build_name_display($spThisPostList->user_id, sp_truncate($spThisPostList->display_name, $truncateUser)); } else { $name = sp_truncate($spThisPostList->guest_name, $truncateUser); } $out .= $name; if ($get) { return $name; } $out .= "</div>\n"; $out = apply_filters('sph_ListSearchUserName', $out, $a); if ($echo) { echo $out; } else { return $out; } }
function sp_do_sp_AdminModeratorOnlineTag($args = '') { #check if forum displayed if (sp_abort_display_forum()) { return; } $defs = array('tagId' => 'spAdminModeratorOnlineTag', 'tagClass' => 'spListTag', 'moderator' => 1, 'custom' => 1, 'customClass' => 'spAdminMessageTag', 'listTags' => 1, 'listClass' => 'spListItemTag', 'onToolTip' => __('Online', 'sp-ttags'), 'onIcon' => 'sp_UserOnlineSmall.png', 'offIcon' => 'sp_UserOfflineSmall.png', 'offToolTip' => __('Offline', 'sp-ttags'), 'useAvatar' => 0, 'avatarSize' => 25, 'echo' => 1); $a = wp_parse_args($args, $defs); $a = apply_filters('sph_AdminModeratorOnlineTag_args', $a); extract($a, EXTR_SKIP); # sanitize before use $tagId = esc_attr($tagId); $tagClass = esc_attr($tagClass); $moderator = (int) $moderator; $custom = (int) $custom; $customClass = esc_attr($customClass); $listTags = (int) $listTags; $listClass = esc_attr($listClass); $onToolTip = sp_filter_title_display($onToolTip); $offToolTip = sp_filter_title_display($offToolTip); $onIcon = sp_filter_filename_save($onIcon); $offIcon = sp_filter_filename_save($offIcon); $useAvatar = (int) $useAvatar; $avatarSize = (int) $avatarSize; $echo = (int) $echo; sp_forum_api_support(); $where = 'admin=1'; if ($moderator) { $where .= ' OR moderator = 1'; } $spdb = new spdbComplex(); $spdb->table = SFMEMBERS; $spdb->fields = 'user_id AS ID, user_email, ' . SFMEMBERS . '.display_name, admin, user_options, admin_options, ' . SFTRACK . '.id AS online'; $spdb->left_join = array(SFTRACK . ' ON ' . SFMEMBERS . '.user_id = ' . SFTRACK . '.trackuserid', SFUSERS . ' ON ' . SFMEMBERS . '.user_id = ' . SFUSERS . '.ID'); $spdb->where = $where; $spdb->orderby = 'online DESC'; $admins = $spdb->select(); $out = ''; if ($admins) { $out .= $listTags ? "<ul id='{$tagId}' class='{$tagClass}'>" : "<div id='{$tagId}' class='{$tagClass}'>"; foreach ($admins as $admin) { $noAvatar = ''; $msg = ''; $userOpts = unserialize($admin->user_options); if (!$userOpts['hidestatus']) { $userName = sp_build_name_display($admin->ID, sp_filter_name_display($admin->display_name)); $icon = $admin->online ? $onIcon : $offIcon; $tip = $admin->online ? $onToolTip : $offToolTip; if (!$useAvatar) { $noAvatar .= "<img src='" . sp_find_icon(SPTHEMEICONSURL, "{$icon}") . "' alt='' title='{$tip}' />"; } if (!$admin->online && $custom) { $userOpts = unserialize($admin->admin_options); if (isset($userOpts['offline_message'])) { $msg = sp_filter_text_display($userOpts['offline_message']); if ($msg != '') { $msg = "<div class='{$customClass}'>{$msg}</div>"; } } } # begin loop display if ($listTags ? $out .= "<li class='{$listClass}'>" : ($out .= "<div class='{$listClass}'>")) { } # Avatar or Icon if ($useAvatar) { $admin->avatar = ''; $out .= sp_UserAvatar("tagClass=spAvatar&imgClass=spAvatar&size={$avatarSize}&context=user&echo=0", $admin); } else { $out .= $noAvatar; } # User name and current online status $out .= "<span class='spOnlineAdmin'><span class='spOnlineUser'>{$userName}</span> is <span class='admin{$tip}'>{$tip}</span>"; # display offline message is set $out .= $msg; $out .= '</span>'; # end loop display if ($listTags ? $out .= '<div style="clear:both;"></div></li>' : ($out .= '</div><div style="clear:both;"></div>')) { } } } $out .= $listTags ? '</ul>' : '</div>'; } $out = apply_filters('sph_AdminModeratorOnlineTag', $out); if ($echo) { echo $out; } else { return $out; } }