wp/wp-admin/includes/revision.php
changeset 7 cf61fcea0001
parent 5 5e2f62d02dcd
child 9 177826044cd9
--- a/wp/wp-admin/includes/revision.php	Tue Jun 09 11:14:17 2015 +0000
+++ b/wp/wp-admin/includes/revision.php	Mon Oct 14 17:39:30 2019 +0200
@@ -4,6 +4,7 @@
  *
  * @package WordPress
  * @subpackage Administration
+ * @since 3.6.0
  */
 
 /**
@@ -54,7 +55,7 @@
 
 	$return = array();
 
-	foreach ( _wp_post_revision_fields() as $field => $name ) {
+	foreach ( _wp_post_revision_fields( $post ) as $field => $name ) {
 		/**
 		 * Contextually filter a post revision field.
 		 *
@@ -69,24 +70,24 @@
 		 * @param string  null                  The context of whether the current revision is the old
 		 *                                      or the new one. Values are 'to' or 'from'.
 		 */
-		$content_from = $compare_from ? apply_filters( "_wp_post_revision_field_$field", $compare_from->$field, $field, $compare_from, 'from' ) : '';
+		$content_from = $compare_from ? apply_filters( "_wp_post_revision_field_{$field}", $compare_from->$field, $field, $compare_from, 'from' ) : '';
 
 		/** This filter is documented in wp-admin/includes/revision.php */
-		$content_to = apply_filters( "_wp_post_revision_field_$field", $compare_to->$field, $field, $compare_to, 'to' );
+		$content_to = apply_filters( "_wp_post_revision_field_{$field}", $compare_to->$field, $field, $compare_to, 'to' );
 
 		$args = array(
 			'show_split_view' => true
 		);
 
 		/**
-		 * Filter revisions text diff options.
+		 * Filters revisions text diff options.
 		 *
-		 * Filter the options passed to {@see wp_text_diff()} when viewing a post revision.
+		 * Filters the options passed to wp_text_diff() when viewing a post revision.
 		 *
 		 * @since 4.1.0
 		 *
 		 * @param array   $args {
-		 *     Associative array of options to pass to {@see wp_text_diff()}.
+		 *     Associative array of options to pass to wp_text_diff().
 		 *
 		 *     @type bool $show_split_view True for split view (two columns), false for
 		 *                                 un-split view (single column). Default true.
@@ -118,7 +119,7 @@
 	}
 
 	/**
-	 * Filter the fields displayed in the post revision diff UI.
+	 * Filters the fields displayed in the post revision diff UI.
 	 *
 	 * @since 4.1.0
 	 *
@@ -165,7 +166,7 @@
 
 	foreach ( $revisions as $revision ) {
 		$modified = strtotime( $revision->post_modified );
-		$modified_gmt = strtotime( $revision->post_modified_gmt );
+		$modified_gmt = strtotime( $revision->post_modified_gmt . ' +0000' );
 		if ( $can_restore ) {
 			$restore_link = str_replace( '&', '&', wp_nonce_url(
 				add_query_arg(
@@ -199,7 +200,7 @@
 			$current_id = $revision->ID;
 		}
 
-		$revisions[ $revision->ID ] = array(
+		$revisions_data = array(
 			'id'         => $revision->ID,
 			'title'      => get_the_title( $post->ID ),
 			'author'     => $authors[ $revision->post_author ],
@@ -210,6 +211,30 @@
 			'current'    => $current,
 			'restoreUrl' => $can_restore ? $restore_link : false,
 		);
+
+		/**
+		 * Filters the array of revisions used on the revisions screen.
+		 *
+		 * @since 4.4.0
+		 *
+		 * @param array   $revisions_data {
+		 *     The bootstrapped data for the revisions screen.
+		 *
+		 *     @type int        $id         Revision ID.
+		 *     @type string     $title      Title for the revision's parent WP_Post object.
+		 *     @type int        $author     Revision post author ID.
+		 *     @type string     $date       Date the revision was modified.
+		 *     @type string     $dateShort  Short-form version of the date the revision was modified.
+		 *     @type string     $timeAgo    GMT-aware amount of time ago the revision was modified.
+		 *     @type bool       $autosave   Whether the revision is an autosave.
+		 *     @type bool       $current    Whether the revision is both not an autosave and the post
+		 *                                  modified date matches the revision modified date (GMT-aware).
+		 *     @type bool|false $restoreUrl URL if the revision can be restored, false otherwise.
+		 * }
+		 * @param WP_Post $revision       The revision's WP_Post object.
+		 * @param WP_Post $post           The revision's parent WP_Post object.
+		 */
+		$revisions[ $revision->ID ] = apply_filters( 'wp_prepare_revision_for_js', $revisions_data, $revision, $post );
 	}
 
 	/**
@@ -315,7 +340,7 @@
 				}
 				#>
 				/>
-				<?php esc_attr_e( 'Compare any two revisions' ); ?>
+				<?php esc_html_e( 'Compare any two revisions' ); ?>
 			</label>
 		</div>
 	</script>
@@ -375,4 +400,4 @@
 		<# }); #>
 		</div>
 	</script><?php
-}
\ No newline at end of file
+}