コード例 #1
0
function sp_ForumIndexSubForums($args = '', $label = '', $toolTip = '')
{
    global $spThisForum, $spThisForumSubs;
    if (empty($spThisForumSubs)) {
        return;
    }
    $defs = array('tagId' => 'spForumIndexSubForums%ID%', 'tagClass' => 'spInRowSubForums', 'labelClass' => 'spInRowLabel', 'linkClass' => 'spInRowSubForumlink', 'icon' => 'sp_SubForumIcon.png', 'unreadIcon' => 'sp_SubForumIcon.png', 'iconClass' => 'spIconSmall', 'iconWidth' => 20, 'topicCount' => 1, 'allNested' => 1, 'stack' => 0, 'truncate' => 0, 'echo' => 1, 'get' => 0);
    $a = wp_parse_args($args, $defs);
    $a = apply_filters('sph_ForumIndexSubForums_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);
    $icon = sanitize_file_name($icon);
    $unreadIcon = sanitize_file_name($unreadIcon);
    $iconClass = esc_attr($iconClass);
    $iconWidth = (int) $iconWidth;
    $topicCount = (int) $topicCount;
    $allNested = (int) $allNested;
    $stack = (int) $stack;
    $truncate = (int) $truncate;
    $echo = (int) $echo;
    $get = (int) $get;
    $toolTip = esc_attr($toolTip);
    $thisTagId = str_ireplace('%ID%', $spThisForum->forum_id, $tagId);
    if ($get) {
        return $spThisForumSubs;
    }
    $out = "<div id='{$thisTagId}' class='{$tagClass}'>\n";
    if ($stack) {
        $out .= "<ul class='{$labelClass}'><li>" . sp_filter_title_display($label) . "<ul>";
    } else {
        $out .= "<span class='{$labelClass}'>" . sp_filter_title_display($label) . "</span>\n";
    }
    foreach ($spThisForumSubs as $sub) {
        # Check if a custom icon
        $path = SPTHEMEICONSDIR;
        $url = SPTHEMEICONSURL;
        if ($sub->unread) {
            $fIcon = sanitize_file_name($unreadIcon);
            if (!empty($sub->forum_icon_new)) {
                $fIcon = sanitize_file_name($sub->forum_icon_new);
                $path = SFCUSTOMDIR;
                $url = SFCUSTOMURL;
            }
        } else {
            $fIcon = sanitize_file_name($icon);
            if (!empty($sub->forum_icon)) {
                $fIcon = sanitize_file_name($sub->forum_icon);
                $path = SFCUSTOMDIR;
                $url = SFCUSTOMURL;
            }
        }
        if (!file_exists($path . $fIcon)) {
            $fIcon = sp_find_icon(SPTHEMEICONSURL, sanitize_file_name($icon));
        } else {
            $fIcon = sp_find_icon($url, $fIcon);
        }
        if ($sub->parent == $spThisForum->forum_id || $allNested == true) {
            $thisToolTip = str_ireplace('%NAME%', htmlspecialchars($sub->forum_name, ENT_QUOTES, SFCHARSET), $toolTip);
            if ($stack) {
                $out .= "<li>";
            }
            $out .= "<img src='" . $fIcon . "' class='{$iconClass}' width='" . $iconWidth . "' alt=''/>\n";
            $thisTagId = str_ireplace('%ID%', $sub->forum_id, $tagId);
            $out .= "<a href='{$sub->forum_permalink}' id='{$thisTagId}' class='{$linkClass} vtip' title='{$thisToolTip}'>" . sp_truncate($sub->forum_name, $truncate) . "</a>\n";
            if ($topicCount) {
                $out .= " ({$sub->topic_count})\n";
            }
            if ($stack) {
                $out .= "</li>";
            }
        }
    }
    if ($stack) {
        $out .= "</ul></li></ul>";
    }
    $out .= "</div>\n";
    $out = apply_filters('sph_ForumIndexSubForums', $out, $a);
    if ($echo) {
        echo $out;
    } else {
        return $out;
    }
}
コード例 #2
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;
    }
}
コード例 #3
0
function sp_do_sp_UnansweredPostsTag($args = '')
{
    #check if forum displayed
    if (sp_abort_display_forum()) {
        return;
    }
    $defs = array('tagId' => 'spUnansweredPostsTag', 'tagClass' => 'spListTag', 'listId' => 'spListItemTag%ID%', 'listClass' => 'spListItemTag', 'linkClass' => 'spLinkTag', 'textClass' => 'spTextTag', 'avatarClass' => 'spAvatarTag', 'listTags' => 1, 'forumIds' => '', 'limit' => 5, 'itemOrder' => 'FTUD', 'linkScope' => 'forum', 'beforeForum' => __('Forum: ', 'sp-ttags'), 'afterForum' => '<br />', 'beforeTopic' => __('Topic: ', 'sp-ttags'), 'afterTopic' => '<br />', 'beforeUser' => __('By: ', 'sp-ttags'), 'afterUser' => '', 'beforeDate' => '&nbsp;-', 'afterDate' => '', 'avatarSize' => 25, 'niceDate' => 1, 'postTip' => 1, 'truncate' => 0, 'echo' => 1);
    $a = wp_parse_args($args, $defs);
    $a = apply_filters('sph_UnansweredPostsTag_args', $a);
    extract($a, EXTR_SKIP);
    # sanitize before use
    $tagId = esc_attr($tagId);
    $tagClass = esc_attr($tagClass);
    $listClass = esc_attr($listClass);
    $listId = esc_attr($listId);
    $linkClass = esc_attr($linkClass);
    $textClass = esc_attr($textClass);
    $avatarClass = esc_attr($avatarClass);
    $listTags = (int) $listTags;
    $forumIds = esc_attr($forumIds);
    $limit = (int) $limit;
    $itemOrder = esc_attr($itemOrder);
    $linkScope = esc_attr($linkScope);
    $beforeForum = sp_filter_title_display($beforeForum);
    $afterForum = sp_filter_title_display($afterForum);
    $beforeTopic = sp_filter_title_display($beforeTopic);
    $afterTopic = sp_filter_title_display($afterTopic);
    $beforeUser = sp_filter_title_display($beforeUser);
    $afterUser = sp_filter_title_display($afterUser);
    $beforeDate = sp_filter_title_display($beforeDate);
    $afterDate = sp_filter_title_display($afterDate);
    $avatarSize = (int) $avatarSize;
    $niceDate = (int) $niceDate;
    $postTip = (int) $postTip;
    $truncate = (int) $truncate;
    $echo = (int) $echo;
    sp_forum_api_support();
    global $spPostList, $spThisPostList;
    $where = SFTOPICS . '.post_count=1';
    # do we have forum ids specified?
    $where .= !empty($forumIds) ? ' AND ' . SFPOSTS . '.forum_id IN (' . $forumIds . ')' : '';
    $spPostList = new spPostList($where, SFPOSTS . '.post_id DESC', $limit);
    if (empty($spPostList)) {
        return;
    }
    if (!empty($beforeForum)) {
        $beforeForum = trim($beforeForum) . ' ';
    }
    if (!empty($beforeTopic)) {
        $beforeTopic = trim($beforeTopic) . ' ';
    }
    if (!empty($beforeUser)) {
        $beforeUser = trim($beforeUser) . ' ';
    }
    if (!empty($beforeDate)) {
        $beforeDate = trim($beforeDate) . ' ';
    }
    if (!empty($afterForum)) {
        $afterForum = ' ' . trim($afterForum);
    }
    if (!empty($afterTopic)) {
        $afterTopic = ' ' . trim($afterTopic);
    }
    if (!empty($afterUser)) {
        $afterUser = '******' . trim($afterUser);
    }
    if (!empty($afterDate)) {
        $afterDate = ' ' . trim($afterDate);
    }
    $fLink = $tLink = $aLink = false;
    if ($linkScope == 'forum') {
        $fLink = $tLink = true;
    }
    if ($linkScope == 'all') {
        $aLink = true;
    }
    # Start building dislay
    $out = $listTags ? "<ul id='{$tagId}' class='{$tagClass}'>" : "<div id='{$tagId}' class='{$tagClass}'>";
    # start the loop
    if (sp_has_postlist()) {
        while (sp_loop_postlist()) {
            sp_the_postlist();
            $thisId = str_ireplace('%ID%', $spThisPostList->topic_id, $listId);
            $out .= $listTags ? "<li id='{$thisId}' class='{$listClass}'>" : "<div id='{$thisId}' class='{$listClass}'>";
            $title = $postTip ? "title='{$spThisPostList->post_tip}'" : '';
            if ($aLink) {
                $out .= "<a class='{$linkClass}' {$title} href='{$spThisPostList->post_permalink}'>";
            }
            for ($x = 0; $x < strlen($itemOrder); $x++) {
                switch (substr($itemOrder, $x, 1)) {
                    case 'F':
                        # Forum
                        $out .= $beforeForum;
                        if ($fLink) {
                            $out .= "<a class='{$linkClass}' href='{$spThisPostList->forum_permalink}'>";
                        }
                        $out .= sp_truncate($spThisPostList->forum_name, $truncate);
                        if ($fLink) {
                            $out .= '</a>';
                        }
                        $out .= $afterForum;
                        break;
                    case 'T':
                        # Topic
                        $out .= $beforeTopic;
                        if ($tLink) {
                            $out .= "<a class='{$linkClass}' {$title} href='{$spThisPostList->post_permalink}'>";
                        }
                        $out .= sp_truncate($spThisPostList->topic_name, $truncate);
                        if ($tLink) {
                            $out .= '</a>';
                        }
                        $out .= $afterTopic;
                        break;
                    case 'A':
                        # Avatar
                        $spx = $avatarSize + 10 . 'px';
                        $out .= sp_UserAvatar("tagClass={$avatarClass}&size={$avatarSize}&link=none&context=user&echo=0", $spThisPostList);
                        break;
                    case 'U':
                        # user
                        $out .= "<span class='{$textClass}'>{$spThisPostList->display_name}{$afterUser}</span>";
                        break;
                    case 'D':
                        # date
                        if ($niceDate) {
                            $out .= "<span class='{$textClass}'>" . $beforeDate . sp_nicedate($spThisPostList->post_date) . "{$afterDate}</span>\n";
                        } else {
                            $out .= "<span class='{$textClass}'>" . $beforeDate . sp_date('d', $spThisPostList->post_date) . "{$afterDate}</span>\n";
                        }
                        break;
                    default:
                        # Invalid code
                        $out .= '<br />' . __('Invalid Tag Code Found', 'sp-ttags') . '<br />';
                        break;
                }
            }
            if ($aLink) {
                $out .= '</a>';
            }
            $out .= $listTags ? '</li>' : '</div>';
        }
    }
    $out .= $listTags ? '</ul>' : '</div>';
    $out = apply_filters('sph_UnansweredPostsTag', $out);
    if ($echo) {
        echo $out;
    } else {
        return $out;
    }
}
function sp_PostIndexUserName($args = '')
{
    global $spThisPost, $spThisPostUser;
    $defs = array('tagId' => 'spPostIndexUserName%ID%', 'tagClass' => 'spPostUserName', 'truncateUser' => 0, 'echo' => 1, 'get' => 0);
    $a = wp_parse_args($args, $defs);
    $a = apply_filters('sph_PostIndexUserName_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%', $spThisPost->post_id, $tagId);
    $out = "<div id='{$tagId}' class='{$tagClass}'>";
    if ($spThisPostUser->member) {
        $name = sp_build_name_display($spThisPostUser->ID, sp_truncate($spThisPostUser->display_name, $truncateUser));
    } else {
        $name = sp_truncate($spThisPost->guest_name, $truncateUser);
    }
    $out .= $name;
    if ($get) {
        return $name;
    }
    $out .= "</div>\n";
    $out = apply_filters('sph_PostIndexUserName', $out, $a);
    if ($echo) {
        echo $out;
    } else {
        return $out;
    }
}
コード例 #5
0
function sp_BreadCrumbsMobile($args = '', $forumLabel = '')
{
    $defs = array('tagId' => 'spBreadCrumbsMobile', 'tagClass' => 'spButton', 'curClass' => 'spCurrentBreadcrumb', 'truncate' => 0, 'echo' => 1);
    $a = wp_parse_args($args, $defs);
    $a = apply_filters('sph_BreadCrumbsMobile_args', $a);
    extract($a, EXTR_SKIP);
    global $spVars, $post;
    # sanitize before use
    $tagId = esc_attr($tagId);
    $tagClass = esc_attr($tagClass);
    $curClass = esc_attr($curClass);
    $truncate = (int) $truncate;
    $echo = (int) $echo;
    # init some vars
    $breadCrumbs = '';
    if (!empty($forumLabel)) {
        $forumLabel = sp_filter_title_display($forumLabel);
    }
    # main container for breadcrumbs
    $breadCrumbs .= "<div id='{$tagId}'>";
    # wp page link for forum
    $breadCrumbs .= "<a class='{$tagClass}' href='" . sp_url() . "'>{$forumLabel}</a>\n";
    # parent forum links if current forum is a sub-forum
    if (isset($spVars['parentforumid'])) {
        $forumNames = array_reverse($spVars['parentforumname']);
        $forumSlugs = array_reverse($spVars['parentforumslug']);
        for ($x = 0; $x < count($forumNames); $x++) {
            $breadCrumbs .= "<a class='{$tagClass}' href='" . sp_build_url($forumSlugs[$x], '', 0, 0) . "'>" . sp_truncate(sp_filter_title_display($forumNames[$x]), $truncate) . "</a>\n";
        }
    }
    # forum link (parent or child forum)
    if (!empty($spVars['forumslug']) && $spVars['forumslug'] != 'all' && !empty($spVars['forumname'])) {
        # if showing a topic then check the return page of forum in transient store
        $returnPage = empty($spVars['topicslug']) ? 1 : sp_pop_topic_page($spVars['forumid']);
        $breadCrumbs .= "<a class='{$tagClass}' href='" . sp_build_url($spVars['forumslug'], '', $returnPage, 0) . "'>" . sp_truncate(sp_filter_title_display($spVars['forumname']), $truncate) . "</a>\n";
    }
    # profile link
    if (!empty($spVars['profile'])) {
        $breadCrumbs .= "<a class='{$tagClass}' href='" . sp_url('profile') . "'>" . sp_text('Profile') . "</a>\n";
    }
    # allow plugins/themes to filter the breadcrumbs
    $breadCrumbs = apply_filters('sph_BreadCrumbsMobile', $breadCrumbs, $a);
    # close the breadcrumb container
    $breadCrumbs .= '</div>';
    $breadCrumbs .= '
    	<script type="text/javascript">
    	jQuery(document).ready(function() {
            jQuery("#' . $tagId . ' a:last-child").addClass("' . $curClass . '");
    	})
    	</script>
    ';
    if ($echo) {
        echo $breadCrumbs;
    } else {
        return $breadCrumbs;
    }
}
コード例 #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_ListSearchTopicName($args = '', $label = '')
{
    global $spThisPostList;
    $defs = array('tagId' => 'spListPostTopicName%ID%', 'tagClass' => 'spListPostTopicRowName', 'linkClass' => 'spLink', 'truncate' => 0, 'echo' => 1, 'get' => 0);
    $a = wp_parse_args($args, $defs);
    $a = apply_filters('sph_ListSearchTopicName_args', $a);
    extract($a, EXTR_SKIP);
    # sanitize before use
    $tagId = esc_attr($tagId);
    $tagClass = esc_attr($tagClass);
    $linkClass = esc_attr($linkClass);
    $truncate = (int) $truncate;
    $echo = (int) $echo;
    $get = (int) $get;
    $label = sp_filter_title_display($label);
    $tagId = str_ireplace('%ID%', $spThisPostList->post_id, $tagId);
    if ($get) {
        return sp_truncate($spThisListTopic->topic_name, $truncate);
    }
    $out = "<div id='{$tagId}' class='{$tagClass}'>{$label}\n";
    $out .= "<a href='{$spThisPostList->topic_permalink}' class='{$linkClass}'>" . sp_truncate($spThisPostList->topic_name, $truncate) . "</a>\n";
    $out .= "</div>\n";
    $out = apply_filters('sph_ListSearchTopicName', $out, $a);
    if ($echo) {
        echo $out;
    } else {
        return $out;
    }
}