/**
 * Update the revision log of the reply
 *
 * @since bbPress (r2782)
 *
 * @param mixed $args Supports these args:
 *  - reply_id: reply id
 *  - author_id: Author id
 *  - reason: Reason for editing
 *  - revision_id: Revision id
 * @uses bbp_get_reply_id() To get the reply id
 * @uses bbp_format_revision_reason() To format the reason
 * @uses bbp_get_reply_raw_revision_log() To get the raw reply revision log
 * @uses update_post_meta() To update the reply revision log meta
 * @return mixed False on failure, true on success
 */
function bbp_update_reply_revision_log($args = '')
{
    // Parse arguments against default values
    $r = bbp_parse_args($args, array('reason' => '', 'reply_id' => 0, 'author_id' => 0, 'revision_id' => 0), 'update_reply_revision_log');
    // Populate the variables
    $r['reason'] = bbp_format_revision_reason($r['reason']);
    $r['reply_id'] = bbp_get_reply_id($r['reply_id']);
    $r['author_id'] = bbp_get_user_id($r['author_id'], false, true);
    $r['revision_id'] = (int) $r['revision_id'];
    // Get the logs and append the new one to those
    $revision_log = bbp_get_reply_raw_revision_log($r['reply_id']);
    $revision_log[$r['revision_id']] = array('author' => $r['author_id'], 'reason' => $r['reason']);
    // Finally, update
    update_post_meta($r['reply_id'], '_bbp_revision_log', $revision_log);
    return apply_filters('bbp_update_reply_revision_log', $revision_log, $r['reply_id']);
}
Exemplo n.º 2
0
/**
 * Return the formatted revision log of the reply
 *
 * @since bbPress (r2782)
 *
 * @param int $reply_id Optional. Reply id
 * @uses bbp_get_reply_id() To get the reply id
 * @uses bbp_get_reply_revisions() To get the reply revisions
 * @uses bbp_get_reply_raw_revision_log() To get the raw revision log
 * @uses bbp_get_reply_author_display_name() To get the reply author
 * @uses bbp_get_reply_author_link() To get the reply author link
 * @uses bbp_convert_date() To convert the date
 * @uses bbp_get_time_since() To get the time in since format
 * @uses apply_filters() Calls 'bbp_get_reply_revision_log' with the
 *                        log and reply id
 * @return string Revision log of the reply
 */
function bbp_get_reply_revision_log($reply_id = 0)
{
    // Create necessary variables
    $reply_id = bbp_get_reply_id($reply_id);
    // Show the topic reply log if this is a topic in a reply loop
    if (bbp_is_topic($reply_id)) {
        return bbp_get_topic_revision_log($reply_id);
    }
    // Get the reply revision log (out of post meta
    $revision_log = bbp_get_reply_raw_revision_log($reply_id);
    // Check reply and revision log exist
    if (empty($reply_id) || empty($revision_log) || !is_array($revision_log)) {
        return false;
    }
    // Get the actual revisions
    $revisions = bbp_get_reply_revisions($reply_id);
    if (empty($revisions)) {
        return false;
    }
    $r = "\n\n" . '<ul id="bbp-reply-revision-log-' . esc_attr($reply_id) . '" class="bbp-reply-revision-log">' . "\n\n";
    // Loop through revisions
    foreach ((array) $revisions as $revision) {
        if (empty($revision_log[$revision->ID])) {
            $author_id = $revision->post_author;
            $reason = '';
        } else {
            $author_id = $revision_log[$revision->ID]['author'];
            $reason = $revision_log[$revision->ID]['reason'];
        }
        $author = bbp_get_author_link(array('size' => 14, 'link_text' => bbp_get_reply_author_display_name($revision->ID), 'post_id' => $revision->ID));
        $since = bbp_get_time_since(bbp_convert_date($revision->post_modified));
        $r .= "\t" . '<li id="bbp-reply-revision-log-' . esc_attr($reply_id) . '-item-' . esc_attr($revision->ID) . '" class="bbp-reply-revision-log-item">' . "\n";
        if (!empty($reason)) {
            $r .= "\t\t" . sprintf(esc_html__('This reply was modified %1$s by %2$s. Reason: %3$s', 'bbpress'), esc_html($since), $author, esc_html($reason)) . "\n";
        } else {
            $r .= "\t\t" . sprintf(esc_html__('This reply was modified %1$s by %2$s.', 'bbpress'), esc_html($since), $author) . "\n";
        }
        $r .= "\t" . '</li>' . "\n";
    }
    $r .= "\n" . '</ul>' . "\n\n";
    return apply_filters('bbp_get_reply_revision_log', $r, $reply_id);
}
Exemplo n.º 3
0
/**
 * Update the revision log of the reply
 *
 * @since bbPress (r2782)
 *
 * @param mixed $args Supports these args:
 *  - reply_id: reply id
 *  - author_id: Author id
 *  - reason: Reason for editing
 *  - revision_id: Revision id
 * @uses bbp_get_reply_id() To get the reply id
 * @uses bbp_get_user_id() To get the user id
 * @uses bbp_format_revision_reason() To format the reason
 * @uses bbp_get_reply_raw_revision_log() To get the raw reply revision log
 * @uses update_post_meta() To update the reply revision log meta
 * @return mixed False on failure, true on success
 */
function bbp_update_reply_revision_log($args = '')
{
    $defaults = array('reason' => '', 'reply_id' => 0, 'author_id' => 0, 'revision_id' => 0);
    $r = bbp_parse_args($args, $defaults, 'update_reply_revision_log');
    extract($r);
    // Populate the variables
    $reason = bbp_format_revision_reason($reason);
    $reply_id = bbp_get_reply_id($reply_id);
    $author_id = bbp_get_user_id($author_id, false, true);
    $revision_id = (int) $revision_id;
    // Get the logs and append the new one to those
    $revision_log = bbp_get_reply_raw_revision_log($reply_id);
    $revision_log[$revision_id] = array('author' => $author_id, 'reason' => $reason);
    // Finally, update
    update_post_meta($reply_id, '_bbp_revision_log', $revision_log);
    return apply_filters('bbp_update_reply_revision_log', $revision_log, $reply_id);
}