コード例 #1
0
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 = '&nbsp;');
    $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;
    }
}
コード例 #2
0
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;
    }
}
コード例 #3
0
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;
    }
}
コード例 #5
0
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;
    }
}
コード例 #6
0
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 = '&nbsp;';
    $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;
    }
}
コード例 #8
0
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;
    }
}