mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-08-12 12:50:28 +00:00
Code is Poetry.
WordPress' code just... wasn't. This is now dealt with. Props jrf, pento, netweb, GaryJ, jdgrimes, westonruter, Greg Sherwood from PHPCS, and everyone who's ever contributed to WPCS and PHPCS. Fixes #41057. git-svn-id: https://develop.svn.wordpress.org/trunk@42343 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
+74
-57
@@ -25,67 +25,81 @@ wp_reset_vars( array( 'revision', 'action', 'from', 'to' ) );
|
||||
$revision_id = absint( $revision );
|
||||
|
||||
$from = is_numeric( $from ) ? absint( $from ) : null;
|
||||
if ( ! $revision_id )
|
||||
if ( ! $revision_id ) {
|
||||
$revision_id = absint( $to );
|
||||
}
|
||||
$redirect = 'edit.php';
|
||||
|
||||
switch ( $action ) {
|
||||
case 'restore' :
|
||||
if ( ! $revision = wp_get_post_revision( $revision_id ) )
|
||||
case 'restore':
|
||||
if ( ! $revision = wp_get_post_revision( $revision_id ) ) {
|
||||
break;
|
||||
}
|
||||
|
||||
if ( ! current_user_can( 'edit_post', $revision->post_parent ) ) {
|
||||
break;
|
||||
}
|
||||
|
||||
if ( ! $post = get_post( $revision->post_parent ) ) {
|
||||
break;
|
||||
}
|
||||
|
||||
// Restore if revisions are enabled or this is an autosave.
|
||||
if ( ! wp_revisions_enabled( $post ) && ! wp_is_post_autosave( $revision ) ) {
|
||||
$redirect = 'edit.php?post_type=' . $post->post_type;
|
||||
break;
|
||||
}
|
||||
|
||||
// Don't allow revision restore when post is locked
|
||||
if ( wp_check_post_lock( $post->ID ) ) {
|
||||
break;
|
||||
}
|
||||
|
||||
check_admin_referer( "restore-post_{$revision->ID}" );
|
||||
|
||||
wp_restore_post_revision( $revision->ID );
|
||||
$redirect = add_query_arg(
|
||||
array(
|
||||
'message' => 5,
|
||||
'revision' => $revision->ID,
|
||||
), get_edit_post_link( $post->ID, 'url' )
|
||||
);
|
||||
break;
|
||||
case 'view':
|
||||
case 'edit':
|
||||
default:
|
||||
if ( ! $revision = wp_get_post_revision( $revision_id ) ) {
|
||||
break;
|
||||
}
|
||||
if ( ! $post = get_post( $revision->post_parent ) ) {
|
||||
break;
|
||||
}
|
||||
|
||||
if ( ! current_user_can( 'edit_post', $revision->post_parent ) )
|
||||
if ( ! current_user_can( 'read_post', $revision->ID ) || ! current_user_can( 'edit_post', $revision->post_parent ) ) {
|
||||
break;
|
||||
}
|
||||
|
||||
// Revisions disabled and we're not looking at an autosave
|
||||
if ( ! wp_revisions_enabled( $post ) && ! wp_is_post_autosave( $revision ) ) {
|
||||
$redirect = 'edit.php?post_type=' . $post->post_type;
|
||||
break;
|
||||
}
|
||||
|
||||
$post_edit_link = get_edit_post_link();
|
||||
$post_title = '<a href="' . $post_edit_link . '">' . _draft_or_post_title() . '</a>';
|
||||
/* translators: 1: Post title */
|
||||
$h1 = sprintf( __( 'Compare Revisions of “%1$s”' ), $post_title );
|
||||
$return_to_post = '<a href="' . $post_edit_link . '">' . __( '← Return to editor' ) . '</a>';
|
||||
$title = __( 'Revisions' );
|
||||
|
||||
$redirect = false;
|
||||
break;
|
||||
|
||||
if ( ! $post = get_post( $revision->post_parent ) )
|
||||
break;
|
||||
|
||||
// Restore if revisions are enabled or this is an autosave.
|
||||
if ( ! wp_revisions_enabled( $post ) && ! wp_is_post_autosave( $revision ) ) {
|
||||
$redirect = 'edit.php?post_type=' . $post->post_type;
|
||||
break;
|
||||
}
|
||||
|
||||
// Don't allow revision restore when post is locked
|
||||
if ( wp_check_post_lock( $post->ID ) )
|
||||
break;
|
||||
|
||||
check_admin_referer( "restore-post_{$revision->ID}" );
|
||||
|
||||
wp_restore_post_revision( $revision->ID );
|
||||
$redirect = add_query_arg( array( 'message' => 5, 'revision' => $revision->ID ), get_edit_post_link( $post->ID, 'url' ) );
|
||||
break;
|
||||
case 'view' :
|
||||
case 'edit' :
|
||||
default :
|
||||
if ( ! $revision = wp_get_post_revision( $revision_id ) )
|
||||
break;
|
||||
if ( ! $post = get_post( $revision->post_parent ) )
|
||||
break;
|
||||
|
||||
if ( ! current_user_can( 'read_post', $revision->ID ) || ! current_user_can( 'edit_post', $revision->post_parent ) )
|
||||
break;
|
||||
|
||||
// Revisions disabled and we're not looking at an autosave
|
||||
if ( ! wp_revisions_enabled( $post ) && ! wp_is_post_autosave( $revision ) ) {
|
||||
$redirect = 'edit.php?post_type=' . $post->post_type;
|
||||
break;
|
||||
}
|
||||
|
||||
$post_edit_link = get_edit_post_link();
|
||||
$post_title = '<a href="' . $post_edit_link . '">' . _draft_or_post_title() . '</a>';
|
||||
/* translators: 1: Post title */
|
||||
$h1 = sprintf( __( 'Compare Revisions of “%1$s”' ), $post_title );
|
||||
$return_to_post = '<a href="' . $post_edit_link . '">' . __( '← Return to editor' ) . '</a>';
|
||||
$title = __( 'Revisions' );
|
||||
|
||||
$redirect = false;
|
||||
break;
|
||||
}
|
||||
|
||||
// Empty post_type means either malformed object found, or no valid parent was found.
|
||||
if ( ! $redirect && empty( $post->post_type ) )
|
||||
if ( ! $redirect && empty( $post->post_type ) ) {
|
||||
$redirect = 'edit.php';
|
||||
}
|
||||
|
||||
if ( ! empty( $redirect ) ) {
|
||||
wp_redirect( $redirect );
|
||||
@@ -93,10 +107,11 @@ if ( ! empty( $redirect ) ) {
|
||||
}
|
||||
|
||||
// This is so that the correct "Edit" menu item is selected.
|
||||
if ( ! empty( $post->post_type ) && 'post' != $post->post_type )
|
||||
if ( ! empty( $post->post_type ) && 'post' != $post->post_type ) {
|
||||
$parent_file = $submenu_file = 'edit.php?post_type=' . $post->post_type;
|
||||
else
|
||||
} else {
|
||||
$parent_file = $submenu_file = 'edit.php';
|
||||
}
|
||||
|
||||
wp_enqueue_script( 'revisions' );
|
||||
wp_localize_script( 'revisions', '_wpRevisionsSettings', wp_prepare_revisions_for_js( $post, $revision_id, $from ) );
|
||||
@@ -110,11 +125,13 @@ $revisions_overview .= '<ul><li>' . __( 'To navigate between revisions, <strong>
|
||||
$revisions_overview .= '<li>' . __( 'Compare two different revisions by <strong>selecting the “Compare any two revisions” box</strong> to the side.' ) . '</li>';
|
||||
$revisions_overview .= '<li>' . __( 'To restore a revision, <strong>click Restore This Revision</strong>.' ) . '</li></ul>';
|
||||
|
||||
get_current_screen()->add_help_tab( array(
|
||||
'id' => 'revisions-overview',
|
||||
'title' => __( 'Overview' ),
|
||||
'content' => $revisions_overview
|
||||
) );
|
||||
get_current_screen()->add_help_tab(
|
||||
array(
|
||||
'id' => 'revisions-overview',
|
||||
'title' => __( 'Overview' ),
|
||||
'content' => $revisions_overview,
|
||||
)
|
||||
);
|
||||
|
||||
$revisions_sidebar = '<p><strong>' . __( 'For more information:' ) . '</strong></p>';
|
||||
$revisions_sidebar .= '<p>' . __( '<a href="https://codex.wordpress.org/Revision_Management">Revisions Management</a>' ) . '</p>';
|
||||
|
||||
Reference in New Issue
Block a user