/** * 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']); }
/** * 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); }
/** * 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); }