Exemplo n.º 1
0
function mb_reset_reply_data($post, $reset_latest = false)
{
    $post = is_object($post) ? $post : get_post($post);
    $topic_id = $post->post_parent;
    $forum_id = mb_get_topic_forum_id($topic_id);
    $topic_last_reply = mb_get_topic_last_reply_id($topic_id);
    $forum_last_reply = mb_get_forum_last_reply_id($forum_id);
    /* Reset topic reply count. */
    mb_reset_topic_reply_count($topic_id);
    /* Reset topic voices. */
    mb_reset_topic_voices($topic_id);
    /* Reset reply positions. */
    mb_reset_reply_positions($topic_id);
    /* Reset forum reply count. */
    mb_reset_forum_reply_count($forum_id);
    /* If this is the last topic reply, reset topic latest data. */
    if ($post->ID === absint($topic_last_reply) || true === $reset_latest) {
        mb_reset_topic_latest($topic_id);
    }
    /* If this is the last reply, reset forum latest data. */
    if ($post->ID === absint($forum_last_reply) || true === $reset_latest) {
        mb_reset_forum_latest($forum_id);
    }
    /* Reset user topic count. */
    mb_set_user_reply_count($post->post_author);
}
Exemplo n.º 2
0
/**
 * Returns an array of user IDs (topic voices).
 *
 * @since  1.0.0
 * @access public
 * @param  int     $topic_id
 * @return array
 */
function mb_get_topic_voices($topic_id = 0)
{
    $topic_id = mb_get_topic_id($topic_id);
    /* @todo - Make this a single call before release. */
    $voices = get_post_meta($topic_id, mb_get_topic_voices_meta_key());
    /* @todo - remove count check and just use explode() before release. */
    if (1 < count($voices)) {
        delete_post_meta($topic_id, '_topic_voices');
        $voices = mb_reset_topic_voices($topic_id);
    } else {
        $voices = explode(',', array_shift($voices));
    }
    $voices = !empty($voices) ? $voices : array(mb_get_topic_author_id($topic_id));
    return apply_filters('mb_get_topic_voices', $voices, $topic_id);
}