X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/022dfbbbe3215917d84708eb09acca93b21ae9e0..4f4e083f6f77639c41e2b1ddb200de8e34301cee:/wp-admin/edit-form-advanced.php diff --git a/wp-admin/edit-form-advanced.php b/wp-admin/edit-form-advanced.php index e7490fe2..a246ea54 100644 --- a/wp-admin/edit-form-advanced.php +++ b/wp-admin/edit-form-advanced.php @@ -1,298 +1,665 @@ View post'), get_permalink($post_ID)); +$messages[2] = __('Custom field updated.'); $messages[3] = __('Custom field deleted.'); -?> - -

- +$messages[4] = __('Post updated.'); +$messages[6] = sprintf(__('Post published. View post'), get_permalink($post_ID)); +$messages[7] = __('Post saved.'); +$messages[8] = sprintf(__('Post submitted. Preview post'), add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ); -
- - - +if ( isset($_GET['revision']) ) + $messages[5] = sprintf( __('Post restored to revision from %s'), wp_post_revision_title( (int) $_GET['revision'], false ) ); -
-

-

-View the autosave.' ); -if (0 == $post_ID) { +if ( 0 == $post_ID ) { $form_action = 'post'; - $temp_ID = -1 * time(); - $form_extra = ""; - wp_nonce_field('add-post'); + $temp_ID = -1 * time(); // don't change this formula without looking at wp_write_post() + $form_extra = ""; + $autosave = false; } else { - $post_ID = (int) $post_ID; $form_action = 'editpost'; - $form_extra = ""; - wp_nonce_field('update-post_' . $post_ID); + $form_extra = ""; + $autosave = wp_get_post_autosave( $post_ID ); + + // Detect if there exists an autosave newer than the post and if that autosave is different than the post + if ( $autosave && mysql2date( 'U', $autosave->post_modified_gmt, false ) > mysql2date( 'U', $post->post_modified_gmt, false ) ) { + foreach ( _wp_post_revision_fields() as $autosave_field => $_autosave_field ) { + if ( normalize_whitespace( $autosave->$autosave_field ) != normalize_whitespace( $post->$autosave_field ) ) { + $notice = sprintf( $notices[1], get_edit_post_link( $autosave->ID ) ); + break; + } + } + unset($autosave_field, $_autosave_field); + } } -$form_pingback = ''; +// All meta boxes should be defined and added before the first do_meta_boxes() call (or potentially during the do_meta_boxes action). -$form_prevstatus = ''; +/** + * Display post submit form fields. + * + * @since 2.7.0 + * + * @param object $post + */ +function post_submit_meta_box($post) { + global $action; -$form_trackback = 'to_ping) ) .'" />'; + $can_publish = current_user_can('publish_posts'); +?> +
-if ('' != $post->pinged) { - $pings = '

'. __('Already pinged:') . '

    '; - $already_pinged = explode("\n", trim($post->pinged)); - foreach ($already_pinged as $pinged_url) { - $pings .= "\n\t
  • " . wp_specialchars($pinged_url) . "
  • "; - } - $pings .= '
'; -} +
-$saveasdraft = ''; + +
+ +
-if (empty($post->post_status)) $post->post_status = 'draft'; +
+
+post_status && 'future' != $post->post_status && 'pending' != $post->post_status ) { ?> +post_status ) { ?>style="display:none" type="submit" name="save" id="save-post" value="" tabindex="4" class="button button-highlighted" /> +post_status && $can_publish ) { ?> + + +
+
+post_status ) { + $preview_link = esc_url(get_permalink($post->ID)); + $preview_button = __('Preview Changes'); +} else { + $preview_link = esc_url(apply_filters('preview_post_link', add_query_arg('preview', 'true', get_permalink($post->ID)))); + $preview_button = __('Preview'); +} ?> + + +
- - - +
+
- - $_GET['message']) : ?> - +?> + +post_status || 'private' == $post->post_status || $can_publish ) { ?> +post_status ) { ?>style="display:none;" class="edit-post-status hide-if-no-js" tabindex='4'> + +
+ + + + +
-
-
+ +
+ +
+ post_status ) { + $post->post_password = ''; + $visibility = 'private'; + $visibility_trans = __('Private'); +} elseif ( !empty( $post->post_password ) ) { + $visibility = 'password'; + $visibility_trans = __('Password protected'); +} elseif ( is_sticky( $post->ID ) ) { + $visibility = 'public'; + $visibility_trans = __('Public, Sticky'); +} else { + $visibility = 'public'; + $visibility_trans = __('Public'); +} -
-

-
- - - -
-
- -
-

-
-
- -
-

-
-
- -
-

-
-

-
-
- -
-

-
- - - -
-
- - -
-

:

-
-
- +?>
-id ) ) : // TODO: ROLE SYSTEM ?> -
-

:

-
- -
-
- +
+ +ID)); ?> /> + - + />
+ID)); ?> tabindex="4" />
+ />
+
+ />
+ +

+ + +

-
+ -
- -
-
+
-
- 100)) { - $rows = 12; - } -?> - - -
-
+// translators: Publish box date formt, see http://php.net/date +$datef = __( 'M j, Y @ G:i' ); +if ( 0 != $post->ID ) { + if ( 'future' == $post->post_status ) { // scheduled for publishing at a future date + $stamp = __('Scheduled for: %1$s'); + } else if ( 'publish' == $post->post_status || 'private' == $post->post_status ) { // already published + $stamp = __('Published on: %1$s'); + } else if ( '0000-00-00 00:00:00' == $post->post_date_gmt ) { // draft, 1 or more saves, no date specified + $stamp = __('Publish immediately'); + } else if ( time() < strtotime( $post->post_date_gmt . ' +0000' ) ) { // draft, 1 or more saves, future date specified + $stamp = __('Schedule for: %1$s'); + } else { // draft, 1 or more saves, date specified + $stamp = __('Publish on: %1$s'); + } + $date = date_i18n( $datef, strtotime( $post->post_date ) ); +} else { // draft (no saves, and thus no date specified) + $stamp = __('Publish immediately'); + $date = date_i18n( $datef, strtotime( current_time('mysql') ) ); +} - - - - +
+
+
-

-post_status || 0 == $post_ID) { -?> - - - +

+ + - +
+post_status, array('publish', 'future', 'private') ) || 0 == $post->ID ) { + if ( current_user_can('publish_posts') ) : + if ( !empty($post->post_date_gmt) && time() < strtotime( $post->post_date_gmt . ' +0000' ) ) : ?> + + + + + + + + + + + + +
+
+
+
' . __('This feature requires iframe support.') . ''; } +add_meta_box('submitdiv', __('Publish'), 'post_submit_meta_box', 'post', 'side', 'core'); + +/** + * Display post tags form fields. + * + * @since 2.6.0 + * + * @param object $post + */ +function post_tags_meta_box($post, $box) { + $tax_name = esc_attr(substr($box['id'], 8)); + $taxonomy = get_taxonomy($tax_name); + $helps = isset($taxonomy->helps) ? esc_attr($taxonomy->helps) : __('Separate tags with commas.'); ?> +
+
+
+

+
+ + + + + +
+

+
+
+ + +// all tag-style post taxonomies +foreach ( get_object_taxonomies('post') as $tax_name ) { + if ( !is_taxonomy_hierarchical($tax_name) ) { + $taxonomy = get_taxonomy($tax_name); + $label = isset($taxonomy->label) ? esc_attr($taxonomy->label) : $tax_name; -
-
-
-

-
-
-
+ add_meta_box('tagsdiv-' . $tax_name, $label, 'post_tags_meta_box', 'post', 'side', 'core'); + } +} + +/** + * Display post categories form fields. + * + * @since 2.6.0 + * + * @param object $post + */ +function post_categories_meta_box($post) { +?> +
    +
  • +
  • +
+ + -
+ +
+
    +ID, false, false, $popular_ids) ?> +
-
-
-
-

+ +
+

+

+ + 0, 'name' => 'newcat_parent', 'orderby' => 'name', 'hierarchical' => 1, 'show_option_none' => __('Parent category'), 'tab_index' => 3 ) ); ?> + + +

-
-
: () - +

+

+

+

+ + +

Learn more about manual excerpts.'); ?>

+to_ping) ) .'" />'; + if ('' != $post->pinged) { + $pings = '

'. __('Already pinged:') . '

    '; + $already_pinged = explode("\n", trim($post->pinged)); + foreach ($already_pinged as $pinged_url) { + $pings .= "\n\t
  • " . esc_html($pinged_url) . "
  • "; + } + $pings .= '
'; + } + +?> +


()

+

pingbacks, no other action necessary.'); ?>

+ +
+
+ID); +list_meta($metadata); +meta_form(); ?>
-
-
-
+

use in your theme.'); ?>

+ + +

+
+

+get_var($wpdb->prepare("SELECT count(1) FROM $wpdb->comments WHERE comment_post_ID = '%d' AND ( comment_approved = '0' OR comment_approved = '1')", $post_ID)); + + if ( 1 > $total ) { + echo '

' . __('No comments yet.') . '

'; + return; + } -
-
-
-

-
-
-
- + + + + + + + + +

+ + +post_status || 'private' == $post->post_status ) + add_meta_box('commentsdiv', __('Comments'), 'post_comment_meta_box', 'post', 'normal', 'core'); + +/** + * Display post slug form fields. + * + * @since 2.6.0 + * + * @param object $post + */ +function post_slug_meta_box($post) { ?> + post_status && !current_user_can( 'publish_posts' ) ) ) + add_meta_box('slugdiv', __('Post Slug'), 'post_slug_meta_box', 'post', 'normal', 'core'); + +$authors = get_editable_user_ids( $current_user->id ); // TODO: ROLE SYSTEM +if ( $post->post_author && !in_array($post->post_author, $authors) ) + $authors[] = $post->post_author; +if ( $authors && count( $authors ) > 1 ) : +/** + * Display form field with list of authors. + * + * @since 2.6.0 + * + * @param object $post + */ +function post_author_meta_box($post) { + global $current_user, $user_ID; + $authors = get_editable_user_ids( $current_user->id ); // TODO: ROLE SYSTEM + if ( $post->post_author && !in_array($post->post_author, $authors) ) + $authors[] = $post->post_author; ?> + $authors, 'name' => 'post_author_override', 'selected' => empty($post->ID) ? $user_ID : $post->post_author) ); ?> + + + + + +
+ +

+ +

+ + +

+ + + + + + + + + + + +post_status ) + wp_original_referer_field(true, 'previous'); + +echo $form_extra ?> + +
+
+ + + +
+ +
+
+
+
+ + +
+
+ID); +if ( !( 'pending' == $post->post_status && !current_user_can( 'publish_posts' ) ) ) { ?> +
+ID) && ! empty($sample_permalink_html) ) : + echo $sample_permalink_html; +endif; ?> +
+
-
- +
-
+post_content); ?> - -post_title) ) . "') ) { document.forms.post._wpnonce.value = '$delete_nonce'; return true;}return false;\""; ?> /> - + + + +
+   +'; + if ( $last_id = get_post_meta($post_ID, '_edit_last', true) ) { + $last_user = get_userdata($last_id); + printf(__('Last edited by %1$s on %2$s at %3$s'), esc_html( $last_user->display_name ), mysql2date(get_option('date_format'), $post->post_modified), mysql2date(get_option('time_format'), $post->post_modified)); + } else { + printf(__('Last edited on %1$s at %2$s'), mysql2date(get_option('date_format'), $post->post_modified), mysql2date(get_option('time_format'), $post->post_modified)); + } + echo ''; + } ?> +
+
- + + + + +
+
+ + + + +post_title) && '' == $post->post_title) || (isset($_GET['message']) && 2 > $_GET['message'])) : ?> + +