SHOW:
|
|
- or go back to the newest paste.
1 | public function custom_bbp_list_forums( $args = '' ) { | |
2 | ||
3 | // Define used variables | |
4 | $output = $sub_forums = $topic_count = $reply_count = $counts = ''; | |
5 | $i = 0; | |
6 | $count = array(); | |
7 | ||
8 | // Defaults and arguments | |
9 | $defaults = array ( | |
10 | 'before' => '<ul class="bbp-forums-list">', | |
11 | 'after' => '</ul>', | |
12 | 'link_before' => '<li class="bbp-forum">', | |
13 | 'link_after' => '</li>', | |
14 | 'count_before' => ' (', | |
15 | 'count_after' => ')', | |
16 | 'count_sep' => ', ', | |
17 | 'separator' => ', ', | |
18 | 'forum_id' => '', | |
19 | 'show_topic_count' => true, | |
20 | 'show_reply_count' => true, | |
21 | 'show_freshness_link' => true, | |
22 | ); | |
23 | $r = bbp_parse_args( $args, $defaults, 'list_forums' ); | |
24 | extract( $r, EXTR_SKIP ); | |
25 | ||
26 | // Bail if there are no subforums | |
27 | if ( !bbp_get_forum_subforum_count( $forum_id ) ) | |
28 | return; | |
29 | ||
30 | // Loop through forums and create a list | |
31 | $sub_forums = bbp_forum_get_subforums( $forum_id ); | |
32 | if ( !empty( $sub_forums ) ) { | |
33 | ||
34 | // Total count (for separator) | |
35 | $total_subs = count( $sub_forums ); | |
36 | foreach ( $sub_forums as $sub_forum ) { | |
37 | $i++; // Separator count | |
38 | ||
39 | // Get forum details | |
40 | $count = array(); | |
41 | $show_sep = $total_subs > $i ? $separator : ''; | |
42 | $permalink = bbp_get_forum_permalink( $sub_forum->ID ); | |
43 | $title = bbp_get_forum_title( $sub_forum->ID ); | |
44 | ||
45 | // Show topic count | |
46 | if ( !empty( $show_topic_count ) && !bbp_is_forum_category( $sub_forum->ID ) ) { | |
47 | $count['topic'] = bbp_get_forum_topic_count( $sub_forum->ID ); | |
48 | } | |
49 | ||
50 | // Show reply count | |
51 | if ( !empty( $show_reply_count ) && !bbp_is_forum_category( $sub_forum->ID ) ) { | |
52 | $count['reply'] = bbp_get_forum_reply_count( $sub_forum->ID ); | |
53 | } | |
54 | ||
55 | // Counts to show | |
56 | if ( !empty( $count ) ) { | |
57 | $counts = $count_before . implode( $count_sep, $count ) . $count_after; | |
58 | } | |
59 | ||
60 | if ( !empty( $show_freshness_link ) ) { | |
61 | $freshness_link = "<div class='freshness-forum-link'>" . BBP_Default::custom_get_last_poster_block( $sub_forum->ID ) . "</div>"; | |
62 | } | |
63 | ||
64 | // Build this sub forums link | |
65 | if ($i % 2) { $class = "odd-forum-row"; } else { $class = "even-forum-row"; } | |
66 | $output .= "<li class='{$class}'><ul>" . $link_before . '<a href="' . $permalink . '" class="bbp-forum-link">' . $title . '</a>' . $counts . $freshness_link . $link_after . "</ul></li>"; | |
67 | } | |
68 | ||
69 | // Output the list | |
70 | echo apply_filters( 'bbp_list_forums', $before . $output . $after, $args ); | |
71 | } | |
72 | } | |
73 | ||
74 | // Then I call the function like this | |
75 | - | BBP_Default::teamop_bbp_list_forums( array ( |
75 | + | BBP_Default::custom_bbp_list_forums( array ( |
76 | 'before' => '<ul class="bbp-forums-list">', | |
77 | 'after' => '</ul>', | |
78 | 'link_before' => '<li class="bbp-forum">', | |
79 | 'link_after' => '</li>', | |
80 | 'count_before' => '<div class="topic-reply-counts">Topics: ', | |
81 | 'count_after' => '</div>', | |
82 | 'count_sep' => '<br />Posts: ', | |
83 | 'separator' => '<div style="clear:both;"></div>', | |
84 | 'forum_id' => '', | |
85 | 'show_topic_count' => true, | |
86 | 'show_reply_count' => true, | |
87 | 'show_freshness_link' => true, | |
88 | )); |