/** * @group canonical * @covers ::bbp_insert_forum */ public function test_bbp_insert_forum() { $f = $this->factory->forum->create(array('post_title' => 'Forum 1', 'post_content' => 'Content of Forum 1')); $now = time(); $post_date = date('Y-m-d H:i:s', $now - 60 * 60 * 100); $t = $this->factory->topic->create(array('post_parent' => $f, 'post_date' => $post_date, 'topic_meta' => array('forum_id' => $f))); $r = $this->factory->reply->create(array('post_parent' => $t, 'post_date' => $post_date, 'reply_meta' => array('forum_id' => $f, 'topic_id' => $t))); // Get the forum. $forum = bbp_get_forum($f); // Forum post. $this->assertSame('Forum 1', bbp_get_forum_title($f)); $this->assertSame('Content of Forum 1', bbp_get_forum_content($f)); $this->assertSame('open', bbp_get_forum_status($f)); $this->assertSame('forum', bbp_get_forum_type($f)); $this->assertTrue(bbp_is_forum_public($f)); $this->assertSame(0, bbp_get_forum_parent_id($f)); $this->assertEquals('http://' . WP_TESTS_DOMAIN . '/?forum=' . $forum->post_name, $forum->guid); // Forum meta. $this->assertSame(0, bbp_get_forum_subforum_count($f, true)); $this->assertSame(1, bbp_get_forum_topic_count($f, false, true)); $this->assertSame(1, bbp_get_forum_topic_count($f, true, true)); $this->assertSame(0, bbp_get_forum_topic_count_hidden($f, true)); $this->assertSame(1, bbp_get_forum_reply_count($f, false, true)); $this->assertSame(1, bbp_get_forum_reply_count($f, true, true)); $this->assertSame(2, bbp_get_forum_post_count($f, false, true)); $this->assertSame(2, bbp_get_forum_post_count($f, true, true)); $this->assertSame($t, bbp_get_forum_last_topic_id($f)); $this->assertSame($r, bbp_get_forum_last_reply_id($f)); $this->assertSame($r, bbp_get_forum_last_active_id($f)); $this->assertSame('4 days, 4 hours ago', bbp_get_forum_last_active_time($f)); }
/** * @covers ::bbp_update_forum_last_active_id */ public function test_bbp_update_forum_last_active_id() { $f1 = $this->factory->forum->create(); $f2 = $this->factory->forum->create(array('post_parent' => $f1)); $t1 = $this->factory->topic->create(array('post_parent' => $f1, 'topic_meta' => array('forum_id' => $f1))); $r1 = $this->factory->reply->create(array('post_parent' => $t1, 'reply_meta' => array('forum_id' => $f1, 'topic_id' => $t1))); $id = bbp_update_forum_last_active_id($f1, $r1); $this->assertSame($r1, $id); $id = bbp_get_forum_last_active_id($f1); $this->assertSame($r1, $id); $t2 = $this->factory->topic->create(array('post_parent' => $f2, 'topic_meta' => array('forum_id' => $f2))); $r2 = $this->factory->reply->create(array('post_parent' => $t2, 'reply_meta' => array('forum_id' => $f2, 'topic_id' => $t2))); bbp_update_forum_last_active_id($f2); $id = bbp_get_forum_last_active_id($f2); $this->assertSame($r2, $id); bbp_update_forum_last_active_id($f1); $id = bbp_get_forum_last_active_id($f1); $this->assertSame($r2, $id); }
/** * Return a fancy description of the current forum, including total * topics, total replies, and last activity. * * @since bbPress (r2860) * * @param mixed $args This function supports these arguments: * - forum_id: Forum id * - before: Before the text * - after: After the text * - size: Size of the avatar * @uses bbp_get_forum_id() To get the forum id * @uses bbp_get_forum_topic_count() To get the forum topic count * @uses bbp_get_forum_reply_count() To get the forum reply count * @uses bbp_get_forum_subforum_count() To get the forum subforum count * @uses bbp_get_forum_freshness_link() To get the forum freshness link * @uses bbp_get_forum_last_active_id() To get the forum last active id * @uses bbp_get_author_link() To get the author link * @uses add_filter() To add the 'view all' filter back * @uses apply_filters() Calls 'bbp_get_single_forum_description' with * the description and args * @return string Filtered forum description */ function bbp_get_single_forum_description($args = '') { // Default arguments $defaults = array('forum_id' => 0, 'before' => '<div class="bbp-template-notice info"><p class="bbp-forum-description">', 'after' => '</p></div>', 'size' => 14, 'feed' => true); $r = bbp_parse_args($args, $defaults, 'get_single_forum_description'); extract($r); // Validate forum_id $forum_id = bbp_get_forum_id($forum_id); // Unhook the 'view all' query var adder remove_filter('bbp_get_forum_permalink', 'bbp_add_view_all'); // Get some forum data $topic_count = bbp_get_forum_topic_count($forum_id); $reply_count = bbp_get_forum_reply_count($forum_id); $last_active = bbp_get_forum_last_active_id($forum_id); // Has replies if (!empty($reply_count)) { $reply_text = sprintf(_n('%s reply', '%s replies', $reply_count, 'bbpress'), $reply_count); } // Forum has active data if (!empty($last_active)) { $topic_text = bbp_get_forum_topics_link($forum_id); $time_since = bbp_get_forum_freshness_link($forum_id); $last_updated_by = bbp_get_author_link(array('post_id' => $last_active, 'size' => $size)); // Forum has no last active data } else { $topic_text = sprintf(_n('%s topic', '%s topics', $topic_count, 'bbpress'), $topic_count); } // Forum has active data if (!empty($last_active)) { if (!empty($reply_count)) { if (bbp_is_forum_category($forum_id)) { $retstr = sprintf(__('This category contains %1$s and %2$s, and was last updated by %3$s %4$s.', 'bbpress'), $topic_text, $reply_text, $last_updated_by, $time_since); } else { $retstr = sprintf(__('This forum contains %1$s and %2$s, and was last updated by %3$s %4$s.', 'bbpress'), $topic_text, $reply_text, $last_updated_by, $time_since); } } else { if (bbp_is_forum_category($forum_id)) { $retstr = sprintf(__('This category contains %1$s, and was last updated by %2$s %3$s.', 'bbpress'), $topic_text, $last_updated_by, $time_since); } else { $retstr = sprintf(__('This forum contains %1$s, and was last updated by %2$s %3$s.', 'bbpress'), $topic_text, $last_updated_by, $time_since); } } // Forum has no last active data } else { if (!empty($reply_count)) { if (bbp_is_forum_category($forum_id)) { $retstr = sprintf(__('This category contains %1$s and %2$s.', 'bbpress'), $topic_text, $reply_text); } else { $retstr = sprintf(__('This forum contains %1$s and %2$s.', 'bbpress'), $topic_text, $reply_text); } } else { if (!empty($topic_count)) { if (bbp_is_forum_category($forum_id)) { $retstr = sprintf(__('This category contains %1$s.', 'bbpress'), $topic_text); } else { $retstr = sprintf(__('This forum contains %1$s.', 'bbpress'), $topic_text); } } else { $retstr = __('This forum is empty.', 'bbpress'); } } } // Add feeds //$feed_links = ( !empty( $feed ) ) ? bbp_get_forum_topics_feed_link ( $forum_id ) . bbp_get_forum_replies_feed_link( $forum_id ) : ''; // Add the 'view all' filter back add_filter('bbp_get_forum_permalink', 'bbp_add_view_all'); // Combine the elements together $retstr = $before . $retstr . $after; // Return filtered result return apply_filters('bbp_get_single_forum_description', $retstr, $args); }
?> </div> <div class="topic-reply-counts">Inlägg: <?php bbp_show_lead_topic() ? bbp_forum_reply_count() : bbp_forum_post_count(); ?> </div> </li> <li class="bbp-forum-freshness col-lg-3"> <div class="last-posted-topic-title"> <a href="<?php echo bbp_get_forum_last_topic_permalink(); ?> "><?php echo bbp_get_topic_last_reply_title(bbp_get_forum_last_active_id()); ?> </a> </div> <div class="last-posted-topic-user">av <span class="bbp-author-avatar"><?php echo get_avatar(bbp_get_forum_last_reply_author_id(), '14'); ?> </span> <?php echo bbp_get_user_profile_link(bbp_get_forum_last_reply_author_id()); ?> </div> <div class="last-posted-topic-time"> <?php echo bbp_get_forum_last_active_time();
function firmasite_social_bbp_get_forum_freshness_link($forum_id = 0) { $forum_id = bbp_get_forum_id($forum_id); $active_id = bbp_get_forum_last_active_id($forum_id); if (empty($active_id)) { $active_id = bbp_get_forum_last_reply_id($forum_id); } if (empty($active_id)) { $active_id = bbp_get_forum_last_topic_id($forum_id); } if (bbp_is_topic($active_id)) { $link_url = bbp_get_forum_last_topic_permalink($forum_id); $title = bbp_get_forum_last_topic_title($forum_id); } elseif (bbp_is_reply($active_id)) { $link_url = bbp_get_forum_last_reply_url($forum_id); $title = bbp_get_forum_last_reply_title($forum_id); } $time_since = bbp_get_forum_last_active_time($forum_id); if (!empty($time_since) && !empty($link_url)) { $anchor = '<a href="' . $link_url . '" data-toggle="popover" data-rel="popover" data-placement="left" data-trigger="hover" data-html="true" data-original-title="' . __('Freshness', 'firmasite') . '" data-content="' . esc_attr($time_since) . '"><i class="icon-time"></i></a> ' . __('Freshness', 'firmasite') . ':'; } else { $anchor = __('No Topics', 'firmasite'); } return apply_filters('bbp_get_forum_freshness_link', $anchor, $forum_id); }
/** * @covers ::bbp_forum_last_active_id * @covers ::bbp_get_forum_last_active_id */ public function test_bbp_get_forum_last_active_id_with_pending_reply() { $u = $this->factory->user->create_many(2); $c = $this->factory->forum->create(array('forum_meta' => array('forum_type' => 'category', 'status' => 'open'))); $f = $this->factory->forum->create(array('post_parent' => $c, 'forum_meta' => array('forum_id' => $c, 'forum_type' => 'forum', 'status' => 'open'))); // Get the forums last active id. $last_id = bbp_get_forum_last_active_id($f); $this->assertSame(0, $last_id); // Get the categories last active id. $last_id = bbp_get_forum_last_active_id($c); $this->assertSame(0, $last_id); bbp_update_forum_last_active_id($f); // Get the forums last active id. $last_id = bbp_get_forum_last_active_id($f); $this->assertSame(0, $last_id); // Get the categories last active id. $last_id = bbp_get_forum_last_active_id($c); $this->assertSame(0, $last_id); $t = $this->factory->topic->create(array('post_parent' => $f, 'topic_meta' => array('forum_id' => $f))); bbp_update_forum_last_active_id($f); // Get the forums last active id. $last_id = bbp_get_forum_last_active_id($f); $this->assertSame($t, $last_id); // Get the categories last active id. $last_id = bbp_get_forum_last_active_id($c); $this->assertSame($t, $last_id); $r1 = $this->factory->reply->create(array('post_parent' => $t, 'reply_meta' => array('forum_id' => $f, 'topic_id' => $t))); bbp_update_forum_last_active_id($f); // Get the forums last active id. $last_id = bbp_get_forum_last_active_id($f); $this->assertSame($r1, $last_id); // Get the categories last active id. $last_id = bbp_get_forum_last_active_id($c); $this->assertSame($r1, $last_id); $r2 = $this->factory->reply->create(array('post_parent' => $t, 'post_author' => $u[1], 'post_status' => bbp_get_pending_status_id(), 'reply_meta' => array('forum_id' => $f, 'topic_id' => $t))); // Get the forums last active id. $last_id = bbp_get_forum_last_active_id($f); $this->assertSame($r1, $last_id); // Get the categories last active id. $last_id = bbp_get_forum_last_active_id($c); $this->assertSame($r1, $last_id); bbp_approve_reply($r2); // Get the forums last active id. $last_id = bbp_get_forum_last_active_id($f); $this->assertSame($r2, $last_id); // Get the categories last active id. $last_id = bbp_get_forum_last_active_id($c); $this->assertSame($r2, $last_id); }
<?php bbp_forum_freshness_link(); ?> <?php do_action('bbp_theme_after_forum_freshness_link'); ?> <p class="bbp-topic-meta"> <?php do_action('bbp_theme_before_topic_author'); ?> <span class="bbp-topic-freshness-author"><?php bbp_author_link(array('post_id' => bbp_get_forum_last_active_id(), 'type' => name)); ?> </span> <?php do_action('bbp_theme_after_topic_author'); ?> </p> </li> </ul><!-- #bbp-forum-<?php bbp_forum_id(); ?> -->
/** * @covers ::bbp_move_topic_handler */ public function test_bbp_move_topic_handler() { $old_current_user = 0; $this->old_current_user = get_current_user_id(); $this->set_current_user($this->factory->user->create(array('role' => 'administrator'))); $this->keymaster_id = get_current_user_id(); bbp_set_user_role($this->keymaster_id, bbp_get_keymaster_role()); $old_forum_id = $this->factory->forum->create(); $topic_id = $this->factory->topic->create(array('post_parent' => $old_forum_id, 'topic_meta' => array('forum_id' => $old_forum_id))); $reply_id = $this->factory->reply->create(array('post_parent' => $topic_id, 'reply_meta' => array('forum_id' => $old_forum_id, 'topic_id' => $topic_id))); // Topic post parent $topic_parent = wp_get_post_parent_id($topic_id); $this->assertSame($old_forum_id, $topic_parent); // Forum meta $this->assertSame(1, bbp_get_forum_topic_count($old_forum_id, true, true)); $this->assertSame(1, bbp_get_forum_reply_count($old_forum_id, true, true)); $this->assertSame($topic_id, bbp_get_forum_last_topic_id($old_forum_id)); $this->assertSame($reply_id, bbp_get_forum_last_reply_id($old_forum_id)); $this->assertSame($reply_id, bbp_get_forum_last_active_id($old_forum_id)); // Topic meta $this->assertSame($old_forum_id, bbp_get_topic_forum_id($topic_id)); $this->assertSame(1, bbp_get_topic_voice_count($topic_id, true)); $this->assertSame(1, bbp_get_topic_reply_count($topic_id, true)); $this->assertSame($reply_id, bbp_get_topic_last_reply_id($topic_id)); $this->assertSame($reply_id, bbp_get_topic_last_active_id($topic_id)); // Reply Meta $this->assertSame($old_forum_id, bbp_get_reply_forum_id($reply_id)); $this->assertSame($topic_id, bbp_get_reply_topic_id($reply_id)); // Create a new forum $new_forum_id = $this->factory->forum->create(); // Move the topic into the new forum bbp_move_topic_handler($topic_id, $old_forum_id, $new_forum_id); // Topic post parent $topic_parent = wp_get_post_parent_id($topic_id); $this->assertSame($new_forum_id, $topic_parent); // Forum meta $this->assertSame(1, bbp_get_forum_topic_count($new_forum_id, true, true)); $this->assertSame(1, bbp_get_forum_reply_count($new_forum_id, true, true)); $this->assertSame($topic_id, bbp_get_forum_last_topic_id($new_forum_id)); $this->assertSame($reply_id, bbp_get_forum_last_reply_id($new_forum_id)); $this->assertSame($reply_id, bbp_get_forum_last_active_id($new_forum_id)); // Topic meta $this->assertSame($new_forum_id, bbp_get_topic_forum_id($topic_id)); $this->assertSame(1, bbp_get_topic_voice_count($topic_id, true)); $this->assertSame(1, bbp_get_topic_reply_count($topic_id, true)); $this->assertSame($reply_id, bbp_get_topic_last_reply_id($topic_id)); $this->assertSame($reply_id, bbp_get_topic_last_active_id($topic_id)); // Reply Meta $this->assertSame($new_forum_id, bbp_get_reply_forum_id($reply_id)); $this->assertSame($topic_id, bbp_get_reply_topic_id($reply_id)); // Retore the user $this->set_current_user($this->old_current_user); }
function td_show_forum($forum_object) { $last_active = bbp_get_forum_last_active_id($forum_object->ID); $time_since = ''; $last_updated_by_avatar = ''; if (!empty($last_active)) { $time_since = bbp_get_forum_freshness_link($forum_object->ID); $last_updated_by_avatar = bbp_get_author_link(array('post_id' => $last_active, 'size' => 40, 'type' => 'avatar')); //echo $time_since; } ?> <div class="clearfix"></div> <ul class="td-forum-list-table td-forum-content"> <li class="td-forum-category-title<?php if (empty($forum_object->post_content)) { echo ' td-forum-title-no-desc'; } ?> "> <div class="td-forum-index-padd"> <a class="bbp-forum-title" href="<?php bbp_forum_permalink($forum_object->ID); ?> "><?php bbp_forum_title($forum_object->ID); ?> </a> <?php if (!empty($forum_object->post_content)) { ?> <div class="td-forum-description"><?php echo $forum_object->post_content; ?> </div> <?php } ?> </li><li class="td-forum-replies"> <div><?php echo bbp_get_forum_topic_count($forum_object->ID); ?> topics</div> <div><?php echo bbp_get_forum_reply_count($forum_object->ID); ?> replies</div> </li><li class="td-forum-last-comment"> <div> <?php echo $last_updated_by_avatar; ?> </div> <div class="td-forum-last-comment-content"> <div class="td-forum-author-name"> by <a class="td-forum-last-author" href="<?php bbp_reply_author_url($last_active); ?> "><?php echo bbp_get_topic_author_display_name($last_active); ?> </a> </div> <div class="td-forum-time-comment"> <?php bbp_forum_freshness_link($forum_object->ID); ?> </div> </div> </li> </ul> <div class="clearfix"></div> <?php }
/** * Walk up the ancestor tree from the current reply, and update all the counts * * @since 2.0.0 bbPress (r2884) * * @param int $reply_id Optional. Reply id * @param string $last_active_time Optional. Last active time * @param int $forum_id Optional. Forum id * @param int $topic_id Optional. Topic id * @param bool $refresh If set to true, unsets all the previous parameters. * Defaults to true * @uses bbp_get_reply_id() To get the reply id * @uses bbp_get_reply_topic_id() To get the reply topic id * @uses bbp_get_reply_forum_id() To get the reply forum id * @uses get_post_ancestors() To get the ancestors of the reply * @uses bbp_is_reply() To check if the ancestor is a reply * @uses bbp_is_topic() To check if the ancestor is a topic * @uses bbp_update_topic_last_reply_id() To update the topic last reply id * @uses bbp_update_topic_last_active_id() To update the topic last active id * @uses bbp_get_topic_last_active_id() To get the topic last active id * @uses get_post_field() To get the post date of the last active id * @uses bbp_update_topic_last_active_time() To update the last active topic meta * @uses bbp_update_topic_voice_count() To update the topic voice count * @uses bbp_update_topic_reply_count() To update the topic reply count * @uses bbp_update_topic_reply_count_hidden() To update the topic hidden reply * count * @uses bbp_is_forum() To check if the ancestor is a forum * @uses bbp_update_forum_last_topic_id() To update the last topic id forum meta * @uses bbp_update_forum_last_reply_id() To update the last reply id forum meta * @uses bbp_update_forum_last_active_id() To update the forum last active id * @uses bbp_get_forum_last_active_id() To get the forum last active id * @uses bbp_update_forum_last_active_time() To update the forum last active time * @uses bbp_update_forum_reply_count() To update the forum reply count */ function bbp_update_reply_walker($reply_id, $last_active_time = '', $forum_id = 0, $topic_id = 0, $refresh = true) { // Verify the reply ID $reply_id = bbp_get_reply_id($reply_id); // Reply was passed if (!empty($reply_id)) { // Get the topic ID if none was passed if (empty($topic_id)) { $topic_id = bbp_get_reply_topic_id($reply_id); // Make every effort to get topic id // https://bbpress.trac.wordpress.org/ticket/2529 if (empty($topic_id) && current_filter() === 'bbp_deleted_reply') { $topic_id = get_post_field('post_parent', $reply_id); } } // Get the forum ID if none was passed if (empty($forum_id)) { $forum_id = bbp_get_reply_forum_id($reply_id); } } // Set the active_id based on topic_id/reply_id $active_id = empty($reply_id) ? $topic_id : $reply_id; // Setup ancestors array to walk up $ancestors = array_values(array_unique(array_merge(array($topic_id, $forum_id), (array) get_post_ancestors($topic_id)))); // If we want a full refresh, unset any of the possibly passed variables if (true === $refresh) { $forum_id = $topic_id = $reply_id = $active_id = $last_active_time = 0; } // Walk up ancestors if (!empty($ancestors)) { foreach ($ancestors as $ancestor) { // Reply meta relating to most recent reply if (bbp_is_reply($ancestor)) { // @todo - hierarchical replies // Topic meta relating to most recent reply } elseif (bbp_is_topic($ancestor)) { // Last reply and active ID's bbp_update_topic_last_reply_id($ancestor, $reply_id); bbp_update_topic_last_active_id($ancestor, $active_id); // Get the last active time if none was passed $topic_last_active_time = $last_active_time; if (empty($last_active_time)) { $topic_last_active_time = get_post_field('post_date', bbp_get_topic_last_active_id($ancestor)); } // Update the topic last active time regardless of reply status. // See https://bbpress.trac.wordpress.org/ticket/2838 bbp_update_topic_last_active_time($ancestor, $topic_last_active_time); // Counts bbp_update_topic_voice_count($ancestor); // Only update reply count if we're deleting a reply, or in the dashboard. if (in_array(current_filter(), array('bbp_deleted_reply', 'save_post'), true)) { bbp_update_topic_reply_count($ancestor); bbp_update_topic_reply_count_hidden($ancestor); } // Forum meta relating to most recent topic } elseif (bbp_is_forum($ancestor)) { // Last topic and reply ID's bbp_update_forum_last_topic_id($ancestor, $topic_id); bbp_update_forum_last_reply_id($ancestor, $reply_id); // Last Active bbp_update_forum_last_active_id($ancestor, $active_id); // Get the last active time if none was passed $forum_last_active_time = $last_active_time; if (empty($last_active_time)) { $forum_last_active_time = get_post_field('post_date', bbp_get_forum_last_active_id($ancestor)); } // Only update if reply is published if (bbp_is_reply_published($reply_id)) { bbp_update_forum_last_active_time($ancestor, $forum_last_active_time); } // Counts // Only update reply count if we're deleting a reply, or in the dashboard. if (in_array(current_filter(), array('bbp_deleted_reply', 'save_post'), true)) { bbp_update_forum_reply_count($ancestor); } } } } }
// Get the author $user_id = bbp_get_reply_author_id( $reply_id ); // Toggle html class?> <tr> <td><a class="bbp-forum-title" href="<?php echo $permalink; ?>"><?php echo $title; ?></a></td> <td><?php echo $topics; ?></td> <td><?php bbp_forum_post_count( $sub_id, true ); ?></td> <td><p class="bbp-topic-meta"> <?php do_action( 'bbp_theme_before_topic_author' ); ?> <a class="freshest-title" href="<?php echo $link; ?>" title="<?php echo $topic_title; ?>"><?php echo $topic_title; ?></a> <span class="bbp-topic-freshness-author">By <?php bbp_author_link( array( 'post_id' => bbp_get_forum_last_active_id(), 'size' => 14 ) ); ?></span> <?php do_action( 'bbp_theme_after_topic_author' ); ?> </p> <?php do_action( 'bbp_theme_before_forum_freshness_link' ); ?> <span class="freshest-time"><?php bbp_topic_last_active_time( $topic_id ); ?></span> <?php do_action( 'bbp_theme_after_forum_freshness_link' ); ?></td> </tr> <?php endforeach; ?>
function custom_freshness_link($forum_id = 0) { global $rpg_settingsf; $forum_id = bbp_get_forum_id($forum_id); $active_id = bbp_get_forum_last_active_id($forum_id); $link_url = $title = ''; $forum_title = bbp_get_forum_title($forum_id); if (empty($active_id)) { $active_id = bbp_get_forum_last_reply_id($forum_id); } if (empty($active_id)) { $active_id = bbp_get_forum_last_topic_id($forum_id); } if (bbp_is_topic($active_id)) { $link_url = bbp_get_forum_last_topic_permalink($forum_id); //$link_id added to get post_id and type to allow for later check $link_id = bbp_get_forum_last_topic_id($forum_id); $check = "topic"; $title = bbp_get_forum_last_topic_title($forum_id); $forum_id_last_active = bbp_get_topic_forum_id($active_id); } elseif (bbp_is_reply($active_id)) { $link_url = bbp_get_forum_last_reply_url($forum_id); //$link-id added to get post-id and type to allow for later check $link_id = bbp_get_forum_last_reply_id($forum_id); $check = "reply"; $title = bbp_get_forum_last_reply_title($forum_id); $forum_id_last_active = bbp_get_reply_forum_id($active_id); } $time_since = bbp_get_forum_last_active_time($forum_id); if (!empty($time_since) && !empty($link_url)) { //ADDITIONAL CODE to original bbp_get_forum_freshness_link function //test if user can see this post, and post link if they can $user_id = wp_get_current_user()->ID; //get the forum id for the post - that's the forum ID against which we check to see if it is in a group - no idea what forum group the stuff above produces, suspect post id of when last changed. $forum_id_check = private_groups_get_forum_id_from_post_id($link_id, $check); //now we can check if the user can view this, and if it's not private if (private_groups_can_user_view_post($user_id, $forum_id_check) && !bbp_is_forum_private($forum_id_last_active)) { $anchor = '<a href="' . esc_url($link_url) . '" title="' . esc_attr($title) . '">' . esc_html($time_since) . '</a>'; } elseif (private_groups_can_user_view_post($user_id, $forum_id_check) && bbp_is_forum_private($forum_id_last_active) && current_user_can('read_private_forums')) { $anchor = '<a href="' . esc_url($link_url) . '" title="' . esc_attr($title) . '">' . esc_html($time_since) . '</a>'; } else { //set up which link to send them to if (!is_user_logged_in()) { if ($rpg_settingsf['redirect_page2']) { $link = $rpg_settingsf['redirect_page2']; } else { $link = "/wp-login"; } } else { if ($rpg_settingsf['redirect_page1']) { $link = $rpg_settingsf['redirect_page1']; } else { $link = '/404'; } } //now see if there is a freshness message if ($rpg_settingsf['set_freshness_message']) { $title = $rpg_settingsf['freshness_message']; //and set up anchor $anchor = '<a href="' . esc_url($link) . '">' . $title . '</a>'; } else { $anchor = '<a href="' . esc_url($link) . '">' . esc_html($time_since) . '</a>'; } } } else { $anchor = esc_html__('No Topics', 'bbpress'); } return $anchor; }
/** * Return a fancy description of the current forum, including total * topics, total replies, and last activity. * * @since Boss 1.0.0 * * @param mixed $args This function supports these arguments: * - forum_id: Forum id * - before: Before the text * - after: After the text * - size: Size of the avatar * @uses bbp_get_forum_id() To get the forum id * @uses bbp_get_forum_topic_count() To get the forum topic count * @uses bbp_get_forum_reply_count() To get the forum reply count * @uses bbp_get_forum_freshness_link() To get the forum freshness link * @uses bbp_get_forum_last_active_id() To get the forum last active id * @uses bbp_get_author_link() To get the author link * @uses add_filter() To add the 'view all' filter back * @uses apply_filters() Calls 'bbp_get_single_forum_description' with * the description and args * @return string Filtered forum description */ function buddyboss_bbp_get_single_forum_description($args = '') { // Parse arguments against default values $r = bbp_parse_args($args, array('forum_id' => 0, 'before' => '<div class="bbp-template-notice info"><p class="bbp-forum-description">', 'after' => '</p></div>', 'size' => 14, 'feed' => true), 'get_single_forum_description'); // Validate forum_id $forum_id = bbp_get_forum_id($r['forum_id']); // Unhook the 'view all' query var adder remove_filter('bbp_get_forum_permalink', 'bbp_add_view_all'); // Get some forum data $tc_int = bbp_get_forum_topic_count($forum_id, false); $rc_int = bbp_get_forum_reply_count($forum_id, false); $topic_count = bbp_get_forum_topic_count($forum_id); $reply_count = bbp_get_forum_reply_count($forum_id); $last_active = bbp_get_forum_last_active_id($forum_id); // Has replies if (!empty($reply_count)) { $reply_text = sprintf(_n('%s reply', '%s replies', $rc_int, 'boss'), $reply_count); } // Forum has active data if (!empty($last_active)) { $topic_text = bbp_get_forum_topics_link($forum_id); $time_since = bbp_get_forum_freshness_link($forum_id); $last_updated_by = bbp_get_author_link(array('post_id' => $last_active, 'size' => $r['size'])); // Forum has no last active data } else { $topic_text = sprintf(_n('%s topic', '%s topics', $tc_int, 'boss'), $topic_count); } // Forum has active data if (!empty($last_active)) { if (!empty($reply_count)) { if (bbp_is_forum_category($forum_id)) { $retstr = sprintf(__('<span class="post-num">%1$s and %2$s</span> <span class="last-activity">Last updated by %3$s %4$s</span>', 'boss'), $topic_text, $reply_text, $last_updated_by, $time_since); } else { $retstr = sprintf(__('<span class="post-num">%1$s and %2$s</span> <span class="last-activity">Last updated by %3$s %4$s<span>', 'boss'), $topic_text, $reply_text, $last_updated_by, $time_since); } } else { if (bbp_is_forum_category($forum_id)) { $retstr = sprintf(__('<span class="post-num">%1$s</span> <span class="last-activity">Last updated by %2$s %3$s</span>', 'boss'), $topic_text, $last_updated_by, $time_since); } else { $retstr = sprintf(__('<span class="post-num">%1$s</span> <span class="last-activity">Last updated by %2$s %3$s</span>', 'boss'), $topic_text, $last_updated_by, $time_since); } } // Forum has no last active data } else { if (!empty($reply_count)) { if (bbp_is_forum_category($forum_id)) { $retstr = sprintf(__('<span class="post-num">%1$s and %2$s</span>', 'boss'), $topic_text, $reply_text); } else { $retstr = sprintf(__('<span class="post-num">%1$s and %2$s</span>', 'boss'), $topic_text, $reply_text); } } else { if (!empty($topic_count)) { if (bbp_is_forum_category($forum_id)) { $retstr = sprintf(__('<span class="post-num">%1$s</span>', 'boss'), $topic_text); } else { $retstr = sprintf(__('<span class="post-num">%1$s</span>', 'boss'), $topic_text); } } else { $retstr = __('<span class="post-num">0 topics and 0 posts</span>', 'boss'); } } } // Add feeds //$feed_links = ( !empty( $r['feed'] ) ) ? bbp_get_forum_topics_feed_link ( $forum_id ) . bbp_get_forum_replies_feed_link( $forum_id ) : ''; // Add the 'view all' filter back add_filter('bbp_get_forum_permalink', 'bbp_add_view_all'); // Combine the elements together $retstr = $r['before'] . $retstr . $r['after']; // Return filtered result return apply_filters('bbp_get_single_forum_description', $retstr, $r); }
public function epicwebs_get_last_poster_block($subforum_id = "") { if (!empty($subforum_id)) { // Main forum display with sub forums $output = "<div class='last-posted-topic-title'>"; $output .= "<a href='" . bbp_get_forum_last_topic_permalink($subforum_id) . "'>" . bbp_get_topic_last_reply_title(bbp_get_forum_last_active_id($subforum_id)) . "</a>"; $output .= "</div>"; $output .= "<div class='last-posted-topic-user'>av "; $author_id = bbp_get_forum_last_reply_author_id($subforum_id); $output .= "<span class=\"bbp-author-avatar\">" . get_avatar($author_id, '14') . " </span>"; $output .= bbp_get_user_profile_link($author_id); $output .= "</div>"; $output .= "<div class='last-posted-topic-time'>"; $output .= bbp_get_forum_last_active_time($subforum_id); $output .= "</div>"; } else { // forum category display (no sub forums list) $output = "<div class='last-posted-topic-title'>"; $output .= "<a href='" . bbp_get_forum_last_topic_permalink() . "'>" . bbp_get_topic_last_reply_title(bbp_get_forum_last_active_id()) . "</a>"; $output .= "</div>"; $output .= "<div class='last-posted-topic-user'>av "; $output .= "<span class=\"bbp-author-avatar\">" . get_avatar(bbp_get_forum_last_reply_author_id(), '14') . " </span>"; $output .= bbp_get_user_profile_link(bbp_get_forum_last_reply_author_id()); $output .= "</div>"; $output .= "<div class='last-posted-topic-time'>"; $output .= bbp_get_forum_last_active_time(); $output .= "</div>"; } return $output; }
?> "> <div class="bb-forum-meta clearfix"> <span class="bbp-forum-topic-count"><?php bbp_forum_topic_count(); ?> <span class="topic-count">topics</span></span> <span class="bbp-forum-reply-count"><?php bbp_show_lead_topic() ? bbp_forum_reply_count() : bbp_forum_post_count(); ?> <span class="reply-count"> replies</span></span> <?php if (bbp_get_forum_last_active_id() > 0) { ?> <span class="bbp-forum-freshness"> <?php do_action('bbp_theme_before_forum_freshness_link'); ?> <?php bbp_forum_freshness_link(); ?> <?php do_action('bbp_theme_after_forum_freshness_link'); ?> </span> <?php } ?>
<?php bbp_forum_freshness_link(); ?> <?php do_action('bbp_theme_after_forum_freshness_link'); ?> <p class="bbp-topic-meta"> <?php do_action('bbp_theme_before_topic_author'); ?> <span class="bbp-topic-freshness-author"><?php bbp_author_link(array('post_id' => bbp_get_forum_last_active_id(), 'type' => 'name', 'size' => 14)); ?> </span> <?php do_action('bbp_theme_after_topic_author'); ?> </p> </li> </ul><!-- #bbp-forum-<?php bbp_forum_id(); ?> -->
function ipt_kb_bbp_forum_freshness_in_list($forum_id = 0) { $author_link = bbp_get_author_link(array('post_id' => bbp_get_forum_last_active_id($forum_id), 'type' => 'name')); $freshness = bbp_get_author_link(array('post_id' => bbp_get_forum_last_active_id($forum_id), 'size' => 32, 'type' => 'avatar')); if (!empty($freshness)) { ?> <span class="pull-left thumbnail"> <?php echo $freshness; ?> </span> <?php } do_action('bbp_theme_before_forum_freshness_link'); ?> <ul class="list-unstyled ipt_kb_forum_freshness_meta"> <li class="bbp-topic-freshness-link"><?php bbp_forum_freshness_link($forum_id); ?> </li> <li class="bbp-topic-freshness-author"> <?php do_action('bbp_theme_before_topic_author'); ?> <?php if (!empty($author_link)) { printf(__('by %s', 'ipt_kb'), $author_link); } ?> <?php do_action('bbp_theme_after_topic_author'); ?> </li> </ul> <?php do_action('bbp_theme_after_forum_freshness_link'); ?> <?php }
/** * @group canonical * @covers ::bbp_create_initial_content */ public function test_bbp_create_initial_content() { $category_id = $this->factory->forum->create(array('forum_meta' => array('_bbp_forum_type' => 'category', '_bbp_status' => 'open'))); bbp_create_initial_content(array('forum_parent' => $category_id)); $forum_id = bbp_forum_query_subforum_ids($category_id); $forum_id = (int) $forum_id[0]; $topic_id = bbp_get_forum_last_topic_id($forum_id); $reply_id = bbp_get_forum_last_reply_id($forum_id); // Forum post $this->assertSame('General', bbp_get_forum_title($forum_id)); $this->assertSame('General chit-chat', bbp_get_forum_content($forum_id)); $this->assertSame('open', bbp_get_forum_status($forum_id)); $this->assertTrue(bbp_is_forum_public($forum_id)); $this->assertSame($category_id, bbp_get_forum_parent_id($forum_id)); // Topic post $this->assertSame($forum_id, bbp_get_topic_forum_id($topic_id)); $this->assertSame('Hello World!', bbp_get_topic_title($topic_id)); remove_all_filters('bbp_get_topic_content'); $topic_content = "I am the first topic in your new forums."; $this->assertSame($topic_content, bbp_get_topic_content($topic_id)); $this->assertSame('publish', bbp_get_topic_status($topic_id)); $this->assertTrue(bbp_is_topic_published($topic_id)); // Reply post $this->assertSame($forum_id, bbp_get_reply_forum_id($reply_id)); $this->assertSame('Reply To: Hello World!', bbp_get_reply_title($reply_id)); $this->assertSame($reply_id, bbp_get_reply_title_fallback($reply_id)); remove_all_filters('bbp_get_reply_content'); $reply_content = "Oh, and this is what a reply looks like."; $this->assertSame($reply_content, bbp_get_reply_content($reply_id)); $this->assertSame('publish', bbp_get_reply_status($reply_id)); $this->assertTrue(bbp_is_reply_published($reply_id)); // Category meta $this->assertSame(1, bbp_get_forum_subforum_count($category_id, true)); $this->assertSame(0, bbp_get_forum_topic_count($category_id, false, true)); $this->assertSame(0, bbp_get_forum_topic_count_hidden($category_id, true)); $this->assertSame(0, bbp_get_forum_reply_count($category_id, false, true)); $this->assertSame(1, bbp_get_forum_topic_count($category_id, true, true)); $this->assertSame(1, bbp_get_forum_reply_count($category_id, true, true)); $this->assertSame(0, bbp_get_forum_post_count($category_id, false, true)); $this->assertSame(2, bbp_get_forum_post_count($category_id, true, true)); $this->assertSame($topic_id, bbp_get_forum_last_topic_id($category_id)); $this->assertSame('Hello World!', bbp_get_forum_last_topic_title($category_id)); $this->assertSame($reply_id, bbp_get_forum_last_reply_id($category_id)); $this->assertSame('Reply To: Hello World!', bbp_get_forum_last_reply_title($category_id)); $this->assertSame($reply_id, bbp_get_forum_last_active_id($category_id)); $this->assertSame('1 day, 16 hours ago', bbp_get_forum_last_active_time($category_id)); // Forum meta $this->assertSame(0, bbp_get_forum_subforum_count($forum_id, true)); $this->assertSame(1, bbp_get_forum_topic_count($forum_id, false, true)); $this->assertSame(0, bbp_get_forum_topic_count_hidden($forum_id, true)); $this->assertSame(1, bbp_get_forum_reply_count($forum_id, false, true)); $this->assertSame(1, bbp_get_forum_topic_count($forum_id, true, true)); $this->assertSame(1, bbp_get_forum_reply_count($forum_id, true, true)); $this->assertSame(2, bbp_get_forum_post_count($forum_id, false, true)); $this->assertSame(2, bbp_get_forum_post_count($forum_id, true, true)); $this->assertSame($topic_id, bbp_get_forum_last_topic_id($forum_id)); $this->assertSame('Hello World!', bbp_get_forum_last_topic_title($forum_id)); $this->assertSame($reply_id, bbp_get_forum_last_reply_id($forum_id)); $this->assertSame('Reply To: Hello World!', bbp_get_forum_last_reply_title($forum_id)); $this->assertSame($reply_id, bbp_get_forum_last_active_id($forum_id)); $this->assertSame('1 day, 16 hours ago', bbp_get_forum_last_active_time($forum_id)); // Topic meta $this->assertSame('127.0.0.1', bbp_current_author_ip($topic_id)); $this->assertSame($forum_id, bbp_get_topic_forum_id($topic_id)); $this->assertSame(1, bbp_get_topic_voice_count($topic_id, true)); $this->assertSame(1, bbp_get_topic_reply_count($topic_id, true)); $this->assertSame(0, bbp_get_topic_reply_count_hidden($topic_id, true)); $this->assertSame($reply_id, bbp_get_topic_last_reply_id($topic_id)); $this->assertSame($reply_id, bbp_get_topic_last_active_id($topic_id)); $this->assertSame('1 day, 16 hours ago', bbp_get_topic_last_active_time($topic_id)); // Reply Meta $this->assertSame('127.0.0.1', bbp_current_author_ip($reply_id)); $this->assertSame($forum_id, bbp_get_reply_forum_id($reply_id)); $this->assertSame($topic_id, bbp_get_reply_topic_id($reply_id)); }
/** * Walk up the ancestor tree from the current reply, and update all the counts * * @since bbPress (r2884) * * @param int $reply_id Optional. Reply id * @param string $last_active_time Optional. Last active time * @param int $forum_id Optional. Forum id * @param int $topic_id Optional. Topic id * @param bool $refresh If set to true, unsets all the previous parameters. * Defaults to true * @uses bbp_get_reply_id() To get the reply id * @uses bbp_get_reply_topic_id() To get the reply topic id * @uses bbp_get_reply_forum_id() To get the reply forum id * @uses get_post_ancestors() To get the ancestors of the reply * @uses bbp_is_reply() To check if the ancestor is a reply * @uses bbp_is_topic() To check if the ancestor is a topic * @uses bbp_update_topic_last_reply_id() To update the topic last reply id * @uses bbp_update_topic_last_active_id() To update the topic last active id * @uses bbp_get_topic_last_active_id() To get the topic last active id * @uses get_post_field() To get the post date of the last active id * @uses bbp_update_topic_last_active_time() To update the last active topic meta * @uses bbp_update_topic_voice_count() To update the topic voice count * @uses bbp_update_topic_reply_count() To update the topic reply count * @uses bbp_update_topic_reply_count_hidden() To update the topic hidden reply * count * @uses bbp_is_forum() To check if the ancestor is a forum * @uses bbp_update_forum_last_topic_id() To update the last topic id forum meta * @uses bbp_update_forum_last_reply_id() To update the last reply id forum meta * @uses bbp_update_forum_last_active_id() To update the forum last active id * @uses bbp_get_forum_last_active_id() To get the forum last active id * @uses bbp_update_forum_last_active_time() To update the forum last active time * @uses bbp_update_forum_reply_count() To update the forum reply count */ function bbp_update_reply_walker($reply_id, $last_active_time = '', $forum_id = 0, $topic_id = 0, $refresh = true) { // Verify the reply ID $reply_id = bbp_get_reply_id($reply_id); // Reply was passed if (!empty($reply_id)) { // Get the topic ID if none was passed if (empty($topic_id)) { $topic_id = bbp_get_reply_topic_id($reply_id); } // Get the forum ID if none was passed if (empty($forum_id)) { $forum_id = bbp_get_reply_forum_id($reply_id); } } // Set the active_id based on topic_id/reply_id $active_id = empty($reply_id) ? $topic_id : $reply_id; // Setup ancestors array to walk up $ancestors = array_values(array_unique(array_merge(array($topic_id, $forum_id), (array) get_post_ancestors($topic_id)))); // If we want a full refresh, unset any of the possibly passed variables if (true === $refresh) { $forum_id = $topic_id = $reply_id = $active_id = $last_active_time = 0; } // Walk up ancestors if (!empty($ancestors)) { foreach ($ancestors as $ancestor) { // Reply meta relating to most recent reply if (bbp_is_reply($ancestor)) { // @todo - hierarchical replies // Topic meta relating to most recent reply } elseif (bbp_is_topic($ancestor)) { // Last reply and active ID's bbp_update_topic_last_reply_id($ancestor, $reply_id); bbp_update_topic_last_active_id($ancestor, $active_id); // Get the last active time if none was passed $topic_last_active_time = $last_active_time; if (empty($last_active_time)) { $topic_last_active_time = get_post_field('post_date', bbp_get_topic_last_active_id($ancestor)); } // Only update if reply is published if (bbp_is_reply_published($reply_id)) { bbp_update_topic_last_active_time($ancestor, $topic_last_active_time); } // Counts bbp_update_topic_voice_count($ancestor); bbp_update_topic_reply_count($ancestor); bbp_update_topic_reply_count_hidden($ancestor); // Forum meta relating to most recent topic } elseif (bbp_is_forum($ancestor)) { // Last topic and reply ID's bbp_update_forum_last_topic_id($ancestor, $topic_id); bbp_update_forum_last_reply_id($ancestor, $reply_id); // Last Active bbp_update_forum_last_active_id($ancestor, $active_id); // Get the last active time if none was passed $forum_last_active_time = $last_active_time; if (empty($last_active_time)) { $forum_last_active_time = get_post_field('post_date', bbp_get_forum_last_active_id($ancestor)); } // Only update if reply is published if (bbp_is_reply_published($reply_id)) { bbp_update_forum_last_active_time($ancestor, $forum_last_active_time); } // Counts bbp_update_forum_reply_count($ancestor); } } } }
/** * @covers ::bbp_unspam_topic_replies */ public function test_bbp_unspam_topic_replies() { $f = $this->factory->forum->create(); $now = time(); $post_date_topic = date('Y-m-d H:i:s', $now - 60 * 60 * 100); $post_date_reply = date('Y-m-d H:i:s', $now - 60 * 60 * 80); $topic_time = '4 days, 4 hours ago'; $reply_time = '3 days, 8 hours ago'; $t = $this->factory->topic->create(array('post_parent' => $f, 'post_date' => $post_date_topic, 'topic_meta' => array('forum_id' => $f))); $r = $this->factory->reply->create_many(2, array('post_parent' => $t, 'post_date' => $post_date_reply, 'reply_meta' => array('forum_id' => $f, 'topic_id' => $t))); bbp_spam_topic_replies($t); bbp_unspam_topic_replies($t); $this->assertEquals('', get_post_meta($t, '_bbp_pre_spammed_replies', true)); $this->assertEquals(array(), get_post_meta($t, '_bbp_pre_spammed_replies', false)); foreach ($r as $reply) { $reply_status = get_post_status($reply); $this->assertSame(bbp_get_public_status_id(), $reply_status); $this->assertEquals('', get_post_meta($reply, '_wp_trash_meta_status', true)); $this->assertEquals(array(), get_post_meta($reply, '_wp_trash_meta_status', false)); } $count = bbp_get_forum_reply_count($f, false, true); $this->assertSame(2, $count); $last_reply_id = bbp_get_forum_last_reply_id($f); $this->assertSame($r[1], $last_reply_id); $last_active_id = bbp_get_forum_last_active_id($f); $this->assertSame($r[1], $last_active_id); $last_active_time = bbp_get_forum_last_active_time($f); $this->assertSame($reply_time, $last_active_time); $count = bbp_get_topic_reply_count($t, true, true); $this->assertSame(2, $count); $count = bbp_get_topic_reply_count_hidden($t, true, true); $this->assertSame(0, $count); $last_reply_id = bbp_get_topic_last_reply_id($t); $this->assertSame($r[1], $last_reply_id); $last_active_id = bbp_get_topic_last_active_id($t); $this->assertSame($r[1], $last_active_id); $last_active_time = bbp_get_topic_last_active_time($t); $this->assertSame($reply_time, $last_active_time); }
/** * Update the forums last active date/time (aka freshness) * * @since bbPress (r2680) * * @param int $forum_id Optional. Topic id * @param string $new_time Optional. New time in mysql format * @uses bbp_get_forum_id() To get the forum id * @uses bbp_get_forum_last_active_id() To get the forum's last post id * @uses get_post_field() To get the post date of the forum's last post * @uses update_post_meta() To update the forum last active time * @uses apply_filters() Calls 'bbp_update_forum_last_active' with the new time * and forum id * @return bool True on success, false on failure */ function bbp_update_forum_last_active_time($forum_id = 0, $new_time = '') { $forum_id = bbp_get_forum_id($forum_id); // Check time and use current if empty if (empty($new_time)) { $new_time = get_post_field('post_date', bbp_get_forum_last_active_id($forum_id)); } // Update only if there is a time if (!empty($new_time)) { update_post_meta($forum_id, '_bbp_last_active_time', $new_time); } return (int) apply_filters('bbp_update_forum_last_active', $new_time, $forum_id); }
function st_get_last_poster_block($subforum_id = "") { if (!empty($subforum_id)) { // Main forum display with sub forums $st_forum_topic_count_two = bbp_get_forum_topic_count($subforum_id); if ($st_forum_topic_count_two == 0) { $output = "<div class='last-posted-topic-title no-topics'>"; $output .= "No Topics"; } else { $output = "<div class='last-posted-topic-title'>"; // Get and crop title lenth if needed $st_topic_last_reply_title = bbp_get_topic_last_reply_title(bbp_get_forum_last_active_id($subforum_id)); $st_topic_last_reply_title_print = strlen($st_topic_last_reply_title) > 50 ? substr($st_topic_last_reply_title, 0, 53) . '…' : $st_topic_last_reply_title; $output .= "<a href='" . bbp_get_forum_last_topic_permalink($subforum_id) . "'>" . $st_topic_last_reply_title_print . "</a>"; $output .= "</div>"; $output .= "<div class='last-posted-topic-time'>"; $output .= bbp_get_forum_last_active_time($subforum_id); } $output .= "</div>"; } else { // forum category display (no sub forums list) $st_forum_topic_count = bbp_get_forum_topic_count(); if ($st_forum_topic_count == 0) { $output = "<div class='last-posted-topic-title no-topics'>"; $output .= "No Topics"; } else { $output = "<div class='last-posted-topic-title'>"; // Get and crop title lenth if needed $st_topic_last_reply_title = bbp_get_topic_last_reply_title(bbp_get_forum_last_active_id($subforum_id)); $st_topic_last_reply_title_print = strlen($st_topic_last_reply_title) > 50 ? substr($st_topic_last_reply_title, 0, 53) . '…' : $st_topic_last_reply_title; $output .= "<a href='" . bbp_get_forum_last_topic_permalink() . "'>" . $st_topic_last_reply_title_print . "</a>"; $output .= "</div>"; $output .= "<div class='last-posted-topic-time'>"; $output .= bbp_get_forum_last_active_time(); } $output .= "</div>"; } return $output; }
<?php bbp_forum_freshness_link(); ?> <?php do_action('bbp_theme_after_forum_freshness_link'); ?> <p class="bbp-topic-meta"> <?php do_action('bbp_theme_before_topic_author'); ?> <span class="bbp-topic-freshness-author"><?php bbp_author_link(array('post_id' => bbp_get_forum_last_active_id())); ?> </span> <?php do_action('bbp_theme_after_topic_author'); ?> </p> </li> </ul><!-- #bbp-forum-<?php bbp_forum_id(); ?> -->
_e('Posts', 'framework'); ?> </div> </li> <li class="bbp-forum-freshness"> <p class="bbp-topic-meta"> <?php if (class_exists('userpro_api')) { /* Integrating UserPro */ global $userpro; $link = preg_replace("/(?<=href=(\"|'))[^\"']+(?=(\"|'))/", $userpro->permalink(bbp_get_topic_author_id(bbp_get_forum_last_active_id())), bbp_get_author_link(array('post_id' => bbp_get_forum_last_active_id(), 'size' => 47))); } else { $link = bbp_get_author_link(array('post_id' => bbp_get_forum_last_active_id(), 'size' => 47)); } ?> <span class="bbp-topic-freshness-author"><?php echo $link; ?> </span> <?php do_action('bbp_theme_after_topic_author'); ?> </p> <?php do_action('bbp_theme_before_forum_freshness_link');