2008-05-08 19:25:07 +02:00
< ? php
2008-08-16 09:27:34 +02:00
/**
* Post advanced form for inclusion in the administration panels .
*
* @ package WordPress
* @ subpackage Administration
*/
2008-05-08 19:25:07 +02:00
2008-08-16 09:27:34 +02:00
/**
* Post ID global
* @ name $post_ID
* @ var int
*/
2009-02-02 04:41:19 +01:00
$post_ID = isset ( $post_ID ) ? ( int ) $post_ID : 0 ;
2008-08-08 19:05:10 +02:00
2008-05-08 19:25:07 +02:00
$action = isset ( $action ) ? $action : '' ;
2007-05-25 11:41:04 +02:00
if ( isset ( $_GET [ 'message' ]) )
2008-03-21 04:31:12 +01:00
$_GET [ 'message' ] = absint ( $_GET [ 'message' ] );
2008-08-08 19:05:10 +02:00
$messages [ 1 ] = sprintf ( __ ( 'Post updated. Continue editing below or <a href="%s">go back</a>.' ), attribute_escape ( stripslashes ( ( isset ( $_GET [ '_wp_original_http_referer' ] ) ? $_GET [ '_wp_original_http_referer' ] : '' ) ) ) );
2008-03-21 04:31:12 +01:00
$messages [ 2 ] = __ ( 'Custom field updated.' );
2004-04-28 06:49:16 +02:00
$messages [ 3 ] = __ ( 'Custom field deleted.' );
2008-03-26 19:55:24 +01:00
$messages [ 4 ] = __ ( 'Post updated.' );
2008-11-06 22:26:11 +01:00
$messages [ 6 ] = sprintf ( __ ( 'Post published. <a href="%s">View post</a>' ), get_permalink ( $post_ID ));
2008-08-20 23:42:31 +02:00
$messages [ 7 ] = __ ( 'Post saved.' );
2008-12-07 04:39:00 +01:00
$messages [ 8 ] = sprintf ( __ ( 'Post submitted. <a href="%s">Preview post</a>' ), add_query_arg ( 'preview' , 'true' , get_permalink ( $post_ID ) ) );
2008-07-30 14:32:04 +02:00
if ( isset ( $_GET [ 'revision' ]) )
$messages [ 5 ] = sprintf ( __ ( 'Post restored to revision from %s' ), wp_post_revision_title ( ( int ) $_GET [ 'revision' ], false ) );
2008-05-08 19:25:07 +02:00
$notice = false ;
$notices [ 1 ] = __ ( 'There is an autosave of this post that is more recent than the version below. <a href="%s">View the autosave</a>.' );
2008-08-08 19:05:10 +02:00
if ( 0 == $post_ID ) {
2008-05-08 19:25:07 +02:00
$form_action = 'post' ;
$temp_ID = - 1 * time (); // don't change this formula without looking at wp_write_post()
$form_extra = " <input type='hidden' id='post_ID' name='temp_ID' value=' $temp_ID ' /> " ;
$autosave = false ;
} else {
$form_action = 'editpost' ;
$form_extra = " <input type='hidden' id='post_ID' name='post_ID' value=' $post_ID ' /> " ;
2008-08-25 23:50:11 +02:00
$autosave = wp_get_post_autosave ( $post_ID );
2008-06-24 00:25:27 +02:00
// 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 ) > mysql2date ( 'U' , $post -> post_modified_gmt ) ) {
foreach ( _wp_post_revision_fields () as $autosave_field => $_autosave_field ) {
2008-10-23 22:03:16 +02:00
if ( normalize_whitespace ( $autosave -> $autosave_field ) != normalize_whitespace ( $post -> $autosave_field ) ) {
2008-06-24 00:25:27 +02:00
$notice = sprintf ( $notices [ 1 ], get_edit_post_link ( $autosave -> ID ) );
break ;
}
}
unset ( $autosave_field , $_autosave_field );
}
2008-05-08 19:25:07 +02:00
}
2008-08-20 23:42:31 +02:00
// All meta boxes should be defined and added before the first do_meta_boxes() call (or potentially during the do_meta_boxes action).
2008-10-10 20:21:16 +02:00
/**
* Display post submit form fields .
*
* @ since 2.7 . 0
*
* @ param object $post
*/
2008-08-20 23:42:31 +02:00
function post_submit_meta_box ( $post ) {
global $action ;
2008-09-14 14:58:00 +02:00
$can_publish = current_user_can ( 'publish_posts' );
2003-12-28 12:44:05 +01:00
?>
2008-02-18 20:38:01 +01:00
< div class = " submitbox " id = " submitpost " >
2008-01-14 02:14:57 +01:00
2008-10-21 06:36:35 +02:00
< div id = " minor-publishing " >
2008-10-29 07:00:22 +01:00
< ? php // Hidden submit button early on so that the browser chooses the right button when form is submitted with Return key ?>
< div style = " display:none; " >
< input type = " submit " name = " save " value = " <?php echo attribute_escape( __('Save') ); ?> " />
</ div >
2008-11-03 08:06:36 +01:00
< div id = " minor-publishing-actions " >
< div id = " save-action " >
2008-11-12 19:36:48 +01:00
< ? php if ( 'publish' != $post -> post_status && 'future' != $post -> post_status && 'pending' != $post -> post_status ) { ?>
< input < ? php if ( 'private' == $post -> post_status ) { ?> style="display:none"<?php } ?> type="submit" name="save" id="save-post" value="<?php echo attribute_escape( __('Save Draft') ); ?>" tabindex="4" class="button button-highlighted" />
2008-11-03 08:06:36 +01:00
< ? php } elseif ( 'pending' == $post -> post_status && $can_publish ) { ?>
< input type = " submit " name = " save " id = " save-post " value = " <?php echo attribute_escape( __('Save as Pending') ); ?> " tabindex = " 4 " class = " button button-highlighted " />
< ? php } ?>
2008-10-30 04:50:23 +01:00
</ div >
2008-11-15 20:33:20 +01:00
< div id = " preview-action " >
2009-01-29 13:11:52 +01:00
< ? php
if ( 'publish' == $post -> post_status ) {
$preview_link = clean_url ( get_permalink ( $post -> ID ));
$preview_button = __ ( 'Preview Changes' );
} else {
$preview_link = clean_url ( apply_filters ( 'preview_post_link' , add_query_arg ( 'preview' , 'true' , get_permalink ( $post -> ID ))));
$preview_button = __ ( 'Preview' );
}
?>
< a class = " preview button " href = " <?php echo $preview_link ; ?> " target = " wp-preview " id = " post-preview " tabindex = " 4 " >< ? php echo $preview_button ; ?> </a>
2008-11-15 20:33:20 +01:00
< input type = " hidden " name = " wp-preview " id = " wp-preview " value = " " />
</ div >
2008-11-03 08:06:36 +01:00
< div class = " clear " ></ div >
</ div >< ? php // /minor-publishing-actions ?>
< div id = " misc-publishing-actions " >
< div class = " misc-pub-section<?php if ( ! $can_publish ) { echo ' misc-pub-section-last'; } ?> " >< label for = " post_status " >< ? php _e ( 'Status:' ) ?> </label>
2008-10-29 07:00:22 +01:00
< b >< span id = " post-status-display " >
2008-09-12 15:12:28 +02:00
< ? php
switch ( $post -> post_status ) {
case 'private' :
2008-11-12 19:36:48 +01:00
_e ( 'Privately Published' );
break ;
case 'publish' :
2008-09-12 15:12:28 +02:00
_e ( 'Published' );
break ;
case 'future' :
_e ( 'Scheduled' );
break ;
case 'pending' :
_e ( 'Pending Review' );
break ;
case 'draft' :
2008-10-21 06:36:35 +02:00
_e ( 'Draft' );
2008-09-12 15:12:28 +02:00
break ;
}
?>
2008-10-29 07:00:22 +01:00
</ span ></ b >
2008-10-29 20:22:56 +01:00
< ? php if ( 'publish' == $post -> post_status || 'private' == $post -> post_status || $can_publish ) { ?>
2008-11-12 19:36:48 +01:00
< a href = " #post_status " < ? php if ( 'private' == $post -> post_status ) { ?> style="display:none;" <?php } ?>class="edit-post-status hide-if-no-js" tabindex='4'><?php _e('Edit') ?></a>
2008-09-12 15:12:28 +02:00
2008-09-14 14:58:00 +02:00
< div id = " post-status-select " class = " hide-if-js " >
< input type = " hidden " name = " hidden_post_status " id = " hidden_post_status " value = " <?php echo $post->post_status ; ?> " />
2008-05-04 12:37:06 +02:00
< select name = 'post_status' id = 'post_status' tabindex = '4' >
2008-11-12 19:36:48 +01:00
< ? php if ( 'publish' == $post -> post_status ) : ?>
< option < ? php selected ( $post -> post_status , 'publish' ); ?> value='publish'><?php _e('Published') ?></option>
< ? php elseif ( 'private' == $post -> post_status ) : ?>
< option < ? php selected ( $post -> post_status , 'private' ); ?> value='publish'><?php _e('Privately Published') ?></option>
2008-10-31 06:38:31 +01:00
< ? php elseif ( 'future' == $post -> post_status ) : ?>
2008-03-20 05:19:58 +01:00
< option < ? php selected ( $post -> post_status , 'future' ); ?> value='future'><?php _e('Scheduled') ?></option>
< ? php endif ; ?>
2008-01-16 06:52:38 +01:00
< option < ? php selected ( $post -> post_status , 'pending' ); ?> value='pending'><?php _e('Pending Review') ?></option>
2008-10-21 06:36:35 +02:00
< option < ? php selected ( $post -> post_status , 'draft' ); ?> value='draft'><?php _e('Draft') ?></option>
2008-01-16 06:52:38 +01:00
</ select >
2008-11-03 08:06:36 +01:00
< a href = " #post_status " class = " save-post-status hide-if-no-js button " >< ? php _e ( 'OK' ); ?> </a>
< a href = " #post_status " class = " cancel-post-status hide-if-no-js " >< ? php _e ( 'Cancel' ); ?> </a>
2008-09-14 14:58:00 +02:00
</ div >
< ? php } ?>
2008-11-03 08:06:36 +01:00
</ div >< ? php // /misc-pub-section ?>
2008-01-14 02:14:57 +01:00
2008-11-12 19:36:48 +01:00
< div class = " misc-pub-section " id = " visibility " >
< ? php _e ( 'Visibility:' ); ?> <b><span id="post-visibility-display"><?php
2008-12-06 12:10:24 +01:00
if ( 'private' == $post -> post_status ) {
$post -> post_password = '' ;
2008-11-12 19:36:48 +01:00
$visibility = 'private' ;
$visibility_trans = __ ( 'Private' );
2008-12-06 12:10:24 +01:00
} elseif ( ! empty ( $post -> post_password ) ) {
$visibility = 'password' ;
$visibility_trans = __ ( 'Password protected' );
2008-11-12 19:36:48 +01:00
} elseif ( is_sticky ( $post -> ID ) ) {
$visibility = 'public' ;
2008-11-12 20:31:39 +01:00
$visibility_trans = __ ( 'Public, Sticky' );
2008-11-12 19:36:48 +01:00
} else {
$visibility = 'public' ;
$visibility_trans = __ ( 'Public' );
}
?> <?php echo wp_specialchars( $visibility_trans ); ?></span></b> <?php if ( $can_publish ) { ?> <a href="#visibility" class="edit-visibility hide-if-no-js"><?php _e('Edit'); ?></a>
2008-10-29 07:00:22 +01:00
2008-11-12 19:36:48 +01:00
< div id = " post-visibility-select " class = " hide-if-js " >
< input type = " hidden " name = " hidden_post_password " id = " hidden-post-password " value = " <?php echo attribute_escape( $post->post_password ); ?> " />
2009-02-27 23:15:14 +01:00
< input type = " checkbox " style = " display:none " name = " hidden_post_sticky " id = " hidden-post-sticky " value = " sticky " < ? php checked ( is_sticky ( $post -> ID )); ?> />
2008-11-12 19:36:48 +01:00
< input type = " hidden " name = " hidden_post_visibility " id = " hidden-post-visibility " value = " <?php echo attribute_escape( $visibility ); ?> " />
< input type = " radio " name = " visibility " id = " visibility-radio-public " value = " public " < ? php checked ( $visibility , 'public' ); ?> /> <label for="visibility-radio-public" class="selectit"><?php _e('Public'); ?></label><br />
2009-02-27 23:15:14 +01:00
< span id = " sticky-span " >< input id = " sticky " name = " sticky " type = " checkbox " value = " sticky " < ? php checked ( is_sticky ( $post -> ID )); ?> tabindex="4" /> <label for="sticky" class="selectit"><?php _e('Stick this post to the front page') ?></label><br /></span>
2008-11-12 19:36:48 +01:00
< input type = " radio " name = " visibility " id = " visibility-radio-password " value = " password " < ? php checked ( $visibility , 'password' ); ?> /> <label for="visibility-radio-password" class="selectit"><?php _e('Password protected'); ?></label><br />
< span id = " password-span " >< label for = " post_password " >< ? php _e ( 'Password:' ); ?> </label> <input type="text" name="post_password" id="post_password" value="<?php echo attribute_escape($post->post_password); ?>" /><br /></span>
< input type = " radio " name = " visibility " id = " visibility-radio-private " value = " private " < ? php checked ( $visibility , 'private' ); ?> /> <label for="visibility-radio-private" class="selectit"><?php _e('Private'); ?></label><br />
< p >
< a href = " #visibility " class = " save-post-visibility hide-if-no-js button " >< ? php _e ( 'OK' ); ?> </a>
< a href = " #visibility " class = " cancel-post-visibility hide-if-no-js " >< ? php _e ( 'Cancel' ); ?> </a>
</ p >
</ div >
2008-10-29 07:00:22 +01:00
< ? php } ?>
2008-09-12 15:12:28 +02:00
2008-11-12 19:36:48 +01:00
</ div >< ? php // /misc-pub-section ?>
2008-10-31 23:47:07 +01:00
2008-11-03 08:06:36 +01:00
< ? php
2009-03-02 20:20:19 +01:00
// translators: Publish box date formt, see http://php.net/date
$datef = __ ( 'M j, Y @ G:i' );
2008-11-03 08:06:36 +01:00
if ( 0 != $post -> ID ) {
if ( 'future' == $post -> post_status ) { // scheduled for publishing at a future date
$stamp = __ ( 'Scheduled for: <b>%1$s</b>' );
2008-11-12 19:36:48 +01:00
} else if ( 'publish' == $post -> post_status || 'private' == $post -> post_status ) { // already published
2008-11-03 08:06:36 +01:00
$stamp = __ ( 'Published on: <b>%1$s</b>' );
} else if ( '0000-00-00 00:00:00' == $post -> post_date_gmt ) { // draft, 1 or more saves, no date specified
$stamp = __ ( 'Publish <b>immediately</b>' );
} else if ( time () < strtotime ( $post -> post_date_gmt . ' +0000' ) ) { // draft, 1 or more saves, future date specified
$stamp = __ ( 'Schedule for: <b>%1$s</b>' );
} else { // draft, 1 or more saves, date specified
$stamp = __ ( 'Publish on: <b>%1$s</b>' );
}
$date = date_i18n ( $datef , strtotime ( $post -> post_date ) );
} else { // draft (no saves, and thus no date specified)
$stamp = __ ( 'Publish <b>immediately</b>' );
$date = date_i18n ( $datef , strtotime ( current_time ( 'mysql' ) ) );
}
?>
< ? php if ( $can_publish ) : // Contributors don't get to choose the date of publish ?>
< div class = " misc-pub-section curtime misc-pub-section-last " >
< span id = " timestamp " >
< ? php printf ( $stamp , $date ); ?> </span>
2008-11-20 04:29:44 +01:00
< a href = " #edit_timestamp " class = " edit-timestamp hide-if-no-js " tabindex = '4' >< ? php _e ( 'Edit' ) ?> </a>
2008-11-03 08:06:36 +01:00
< div id = " timestampdiv " class = " hide-if-js " >< ? php touch_time (( $action == 'edit' ), 1 , 4 ); ?> </div>
</ div >< ? php // /misc-pub-section ?>
< ? php endif ; ?>
2008-10-31 23:47:07 +01:00
2008-10-21 06:36:35 +02:00
</ div >
< div class = " clear " ></ div >
</ div >
< div id = " major-publishing-actions " >
< ? php do_action ( 'post_submitbox_start' ); ?>
< div id = " delete-action " >
< ? php
if ( ( 'edit' == $action ) && current_user_can ( 'delete_post' , $post -> ID ) ) { ?>
< a class = " submitdelete deletion " href = " <?php echo wp_nonce_url( " post . php ? action = delete & amp ; post = $post -> ID " , 'delete-post_' . $post->ID ); ?> " onclick = " if ( confirm('<?php echo js_escape(sprintf( ('draft' == $post->post_status ) ? __( " You are about to delete this draft '%s' \n 'Cancel' to stop , 'OK' to delete . " ) : __( " You are about to delete this post '%s' \n 'Cancel' to stop , 'OK' to delete . " ), $post->post_title )); ?>') ) { return true;}return false; " >< ? php _e ( 'Delete' ); ?> </a>
< ? php } ?>
</ div >
2008-09-12 15:12:28 +02:00
2008-10-21 06:36:35 +02:00
< div id = " publishing-action " >
2008-09-12 15:12:28 +02:00
< ? php
2008-11-12 19:36:48 +01:00
if ( ! in_array ( $post -> post_status , array ( 'publish' , 'future' , 'private' ) ) || 0 == $post -> ID ) { ?>
2005-07-14 00:26:26 +02:00
< ? php if ( current_user_can ( 'publish_posts' ) ) : ?>
2008-11-04 04:22:24 +01:00
< ? php if ( ! empty ( $post -> post_date_gmt ) && time () < strtotime ( $post -> post_date_gmt . ' +0000' ) ) : ?>
2008-11-12 19:36:48 +01:00
< input name = " original_publish " type = " hidden " id = " original_publish " value = " <?php _e('Schedule') ?> " />
2008-10-29 20:22:56 +01:00
< input name = " publish " type = " submit " class = " button-primary " id = " publish " tabindex = " 5 " accesskey = " p " value = " <?php _e('Schedule') ?> " />
< ? php else : ?>
2008-11-12 19:36:48 +01:00
< input name = " original_publish " type = " hidden " id = " original_publish " value = " <?php _e('Publish') ?> " />
2008-10-29 20:22:56 +01:00
< input name = " publish " type = " submit " class = " button-primary " id = " publish " tabindex = " 5 " accesskey = " p " value = " <?php _e('Publish') ?> " />
< ? php endif ; ?>
2007-06-14 18:24:28 +02:00
< ? php else : ?>
2008-11-12 19:36:48 +01:00
< input name = " original_publish " type = " hidden " id = " original_publish " value = " <?php _e('Submit for Review') ?> " />
2008-10-27 07:07:59 +01:00
< input name = " publish " type = " submit " class = " button-primary " id = " publish " tabindex = " 5 " accesskey = " p " value = " <?php _e('Submit for Review') ?> " />
2004-09-14 14:41:09 +02:00
< ? php endif ; ?>
2008-10-29 07:00:22 +01:00
< ? php } else { ?>
2008-11-12 19:36:48 +01:00
< input name = " original_publish " type = " hidden " id = " original_publish " value = " <?php _e('Update Post') ?> " />
2008-10-29 07:00:22 +01:00
< input name = " save " type = " submit " class = " button-primary " id = " publish " tabindex = " 5 " accesskey = " p " value = " <?php _e('Update Post') ?> " />
2008-09-12 15:12:28 +02:00
< ? php } ?>
2008-10-21 06:36:35 +02:00
</ div >
2008-09-14 14:58:00 +02:00
< div class = " clear " ></ div >
2008-01-14 02:14:57 +01:00
</ div >
2008-10-29 07:00:22 +01:00
</ div >
2008-09-14 14:58:00 +02:00
2008-08-20 23:42:31 +02:00
< ? php
}
add_meta_box ( 'submitdiv' , __ ( 'Publish' ), 'post_submit_meta_box' , 'post' , 'side' , 'core' );
2008-02-22 04:45:19 +01:00
2008-10-10 20:21:16 +02:00
/**
* Display post tags form fields .
*
* @ since 2.6 . 0
*
* @ param object $post
*/
2008-12-18 20:12:26 +01:00
function post_tags_meta_box ( $post , $box ) {
2009-03-18 03:43:45 +01:00
$tax_name = substr ( $box [ 'id' ], 8 );
2008-12-18 20:12:26 +01:00
$taxonomy = get_taxonomy ( $tax_name );
2009-01-10 16:10:06 +01:00
$helps = isset ( $taxonomy -> helps ) ? attribute_escape ( $taxonomy -> helps ) : __ ( 'Separate tags with commas.' );
2008-08-20 23:42:31 +02:00
?>
2009-03-18 03:43:45 +01:00
< div class = " tagsdiv " id = " <?php echo $tax_name ; ?> " >
2008-12-18 20:12:26 +01:00
< p class = " jaxtag " >
< label class = " hidden " for = " newtag " >< ? php _e ( $box [ 'title' ] ); ?> </label>
2009-03-18 03:43:45 +01:00
< input type = " hidden " name = " <?php echo " tax_input [ $tax_name ] " ; ?> " class = " the-tags " id = " tax-input[<?php echo $tax_name ; ?>] " value = " <?php echo get_terms_to_edit( $post->ID , $tax_name ); ?> " />
2009-01-10 16:10:06 +01:00
< span class = " ajaxtag " >
2008-12-18 20:12:26 +01:00
< input type = " text " name = " newtag[<?php echo $tax_name ; ?>] " class = " newtag form-input-tip " size = " 16 " autocomplete = " off " value = " <?php _e('Add new tag'); ?> " />
< input type = " button " class = " button tagadd " value = " <?php _e('Add'); ?> " tabindex = " 3 " />
2009-01-12 14:43:17 +01:00
</ span ></ p >
2009-01-10 16:10:06 +01:00
< p class = " howto " >< ? php echo $helps ; ?> </p>
2009-03-18 03:43:45 +01:00
< div class = " tagchecklist " ></ div >
</ div >
2008-12-18 20:12:26 +01:00
< p class = " tagcloud-link hide-if-no-js " >< a href = " #titlediv " class = " tagcloud-link " id = " link-<?php echo $tax_name ; ?> " >< ? php printf ( __ ( 'Choose from the most used tags in %s' ), $box [ 'title' ] ); ?> </a></p>
2008-08-20 23:42:31 +02:00
< ? php
}
2008-12-18 20:12:26 +01:00
2009-03-18 03:43:45 +01:00
// all tag-style post taxonomies
foreach ( get_object_taxonomies ( 'post' ) as $tax_name ) {
if ( ! is_taxonomy_hierarchical ( $tax_name ) ) {
2008-12-18 20:12:26 +01:00
$taxonomy = get_taxonomy ( $tax_name );
$label = isset ( $taxonomy -> label ) ? attribute_escape ( $taxonomy -> label ) : $tax_name ;
2009-03-18 03:43:45 +01:00
add_meta_box ( 'tagsdiv-' . $tax_name , $label , 'post_tags_meta_box' , 'post' , 'side' , 'core' );
}
}
2008-01-14 02:14:57 +01:00
2008-10-10 20:21:16 +02:00
/**
* Display post categories form fields .
*
* @ since 2.6 . 0
*
* @ param object $post
*/
2008-05-14 10:22:01 +02:00
function post_categories_meta_box ( $post ) {
?>
2008-01-10 10:39:35 +01:00
< ul id = " category-tabs " >
2008-04-17 21:32:38 +02:00
< li class = " ui-tabs-selected " >< a href = " #categories-all " tabindex = " 3 " >< ? php _e ( 'All Categories' ); ?> </a></li>
2008-08-21 08:42:19 +02:00
< li class = " hide-if-no-js " >< a href = " #categories-pop " tabindex = " 3 " >< ? php _e ( 'Most Used' ); ?> </a></li>
2008-01-10 10:39:35 +01:00
</ ul >
2008-04-14 21:31:20 +02:00
< div id = " categories-pop " class = " ui-tabs-panel " style = " display: none; " >
< ul id = " categorychecklist-pop " class = " categorychecklist form-no-clear " >
2008-04-17 21:32:38 +02:00
< ? php $popular_ids = wp_popular_terms_checklist ( 'category' ); ?>
</ ul >
</ div >
< div id = " categories-all " class = " ui-tabs-panel " >
< ul id = " categorychecklist " class = " list:category categorychecklist form-no-clear " >
2008-05-19 23:35:18 +02:00
< ? php wp_category_checklist ( $post -> ID , false , false , $popular_ids ) ?>
2008-01-10 10:39:35 +01:00
</ ul >
</ div >
2008-01-03 09:03:29 +01:00
2008-11-09 00:10:31 +01:00
< ? php if ( current_user_can ( 'manage_categories' ) ) : ?>
2008-08-20 23:42:31 +02:00
< div id = " category-adder " class = " wp-hidden-children " >
< h4 >< a id = " category-add-toggle " href = " #category-add " class = " hide-if-no-js " tabindex = " 3 " >< ? php _e ( '+ Add New Category' ); ?> </a></h4>
< p id = " category-add " class = " wp-hidden-child " >
< label class = " hidden " for = " newcat " >< ? php _e ( 'Add New Category' ); ?> </label><input type="text" name="newcat" id="newcat" class="form-required form-input-tip" value="<?php _e( 'New category name' ); ?>" tabindex="3" aria-required="true"/>
< label class = " hidden " for = " newcat_parent " >< ? php _e ( 'Parent category' ); ?> :</label><?php wp_dropdown_categories( array( 'hide_empty' => 0, 'name' => 'newcat_parent', 'orderby' => 'name', 'hierarchical' => 1, 'show_option_none' => __('Parent category'), 'tab_index' => 3 ) ); ?>
< input type = " button " id = " category-add-sumbit " class = " add:categorychecklist:category-add button " value = " <?php _e( 'Add' ); ?> " tabindex = " 3 " />
< ? php wp_nonce_field ( 'add-category' , '_ajax_nonce' , false ); ?>
< span id = " category-ajax-response " ></ span >
</ p >
</ div >
2008-05-14 10:22:01 +02:00
< ? php
2008-11-09 00:10:31 +01:00
endif ;
2008-08-20 23:42:31 +02:00
}
add_meta_box ( 'categorydiv' , __ ( 'Categories' ), 'post_categories_meta_box' , 'post' , 'side' , 'core' );
2008-10-31 22:48:00 +01:00
/**
* Display post password form fields .
*
* @ since 2.6 . 0
*
* @ param object $post
*/
function post_password_meta_box ( $post ) {
?>
< p >
< label for = " post_status_private " class = " selectit " >< input id = " post_status_private " name = " post_status " type = " checkbox " value = " private " < ? php checked ( $post -> post_status , 'private' ); ?> tabindex="4" /> <?php _e('Keep this post private') ?></label>
</ p >
< h4 >< ? php _e ( 'Post Password' ); ?> </h4>
< p >< label class = " hidden " for = " post_password " >< ? php _e ( 'Password Protect This Post' ) ?> </label><input name="post_password" type="text" size="25" id="post_password" value="<?php the_post_password(); ?>" /></p>
< p >< ? php _e ( 'Setting a password will require people who visit your blog to enter the above password to view this post and its comments.' ); ?> </p>
< ? php
}
2008-11-12 19:36:48 +01:00
// add_meta_box('passworddiv', __('Privacy Options'), 'post_password_meta_box', 'post', 'side', 'core');
2008-10-31 22:48:00 +01:00
2008-10-10 20:21:16 +02:00
/**
* Display post excerpt form fields .
*
* @ since 2.6 . 0
*
* @ param object $post
*/
2008-05-14 10:22:01 +02:00
function post_excerpt_meta_box ( $post ) {
?>
< label class = " hidden " for = " excerpt " >< ? php _e ( 'Excerpt' ) ?> </label><textarea rows="1" cols="40" name="excerpt" tabindex="6" id="excerpt"><?php echo $post->post_excerpt ?></textarea>
2008-03-11 08:23:07 +01:00
< p >< ? php _e ( 'Excerpts are optional hand-crafted summaries of your content. You can <a href="http://codex.wordpress.org/Template_Tags/the_excerpt" target="_blank">use them in your template</a>' ); ?> </p>
2008-05-14 10:22:01 +02:00
< ? php
}
2008-08-20 23:42:31 +02:00
add_meta_box ( 'postexcerpt' , __ ( 'Excerpt' ), 'post_excerpt_meta_box' , 'post' , 'normal' , 'core' );
2004-11-18 20:40:36 +01:00
2008-10-10 20:21:16 +02:00
/**
* Display trackback links form fields .
*
* @ since 2.6 . 0
*
* @ param object $post
*/
2008-05-14 10:22:01 +02:00
function post_trackback_meta_box ( $post ) {
2008-09-14 14:58:00 +02:00
$form_trackback = '<input type="text" name="trackback_url" id="trackback_url" tabindex="7" value="' . attribute_escape ( str_replace ( " \n " , ' ' , $post -> to_ping ) ) . '" />' ;
2008-05-21 01:46:31 +02:00
if ( '' != $post -> pinged ) {
$pings = '<p>' . __ ( 'Already pinged:' ) . '</p><ul>' ;
$already_pinged = explode ( " \n " , trim ( $post -> pinged ));
foreach ( $already_pinged as $pinged_url ) {
$pings .= " \n \t <li> " . wp_specialchars ( $pinged_url ) . " </li> " ;
}
$pings .= '</ul>' ;
}
2008-05-14 10:22:01 +02:00
?>
2008-09-14 14:58:00 +02:00
< p >< label for = " trackback_url " >< ? php _e ( 'Send trackbacks to:' ); ?> </label> <?php echo $form_trackback; ?><br /> (<?php _e('Separate multiple URLs with spaces'); ?>)</p>
2008-03-11 08:23:07 +01:00
< p >< ? php _e ( 'Trackbacks are a way to notify legacy blog systems that you’ve linked to them. If you link other WordPress blogs they’ll be notified automatically using <a href="http://codex.wordpress.org/Introduction_to_Blogging#Managing_Comments" target="_blank">pingbacks</a>, no other action necessary.' ); ?> </p>
2006-11-19 08:56:05 +01:00
< ? php
2005-12-23 21:43:30 +01:00
if ( ! empty ( $pings ) )
2005-06-14 09:31:36 +02:00
echo $pings ;
2008-05-14 10:22:01 +02:00
}
2008-11-11 20:25:30 +01:00
add_meta_box ( 'trackbacksdiv' , __ ( 'Send Trackbacks' ), 'post_trackback_meta_box' , 'post' , 'normal' , 'core' );
2004-11-18 20:40:36 +01:00
2008-10-10 20:21:16 +02:00
/**
* Display custom fields for the post form fields .
*
* @ since 2.6 . 0
*
* @ param object $post
*/
2008-05-14 10:22:01 +02:00
function post_custom_meta_box ( $post ) {
?>
2008-01-03 09:03:29 +01:00
< div id = " postcustomstuff " >
2008-11-11 13:12:34 +01:00
< div id = " ajax-response " ></ div >
2004-04-28 04:23:46 +02:00
< ? php
2008-05-14 10:22:01 +02:00
$metadata = has_meta ( $post -> ID );
2006-11-19 08:56:05 +01:00
list_meta ( $metadata );
2008-11-08 03:15:53 +01:00
meta_form ();
2004-04-28 04:23:46 +02:00
?>
2003-12-28 12:44:05 +01:00
</ div >
2008-03-11 08:23:07 +01:00
< p >< ? php _e ( 'Custom fields can be used to add extra metadata to a post that you can <a href="http://codex.wordpress.org/Using_Custom_Fields" target="_blank">use in your theme</a>.' ); ?> </p>
2008-05-14 10:22:01 +02:00
< ? php
}
2008-08-20 23:42:31 +02:00
add_meta_box ( 'postcustom' , __ ( 'Custom Fields' ), 'post_custom_meta_box' , 'post' , 'normal' , 'core' );
2005-06-14 09:31:36 +02:00
2008-05-14 10:22:01 +02:00
do_action ( 'dbx_post_advanced' );
2006-01-09 23:44:42 +01:00
2008-10-10 20:21:16 +02:00
/**
* Display comment status for post form fields .
*
* @ since 2.6 . 0
*
* @ param object $post
*/
2008-05-14 10:22:01 +02:00
function post_comment_status_meta_box ( $post ) {
?>
2008-01-03 09:03:29 +01:00
< input name = " advanced_view " type = " hidden " value = " 1 " />
2008-08-20 23:42:31 +02:00
< p class = " meta-options " >
2008-11-11 20:25:30 +01:00
< label for = " comment_status " class = " selectit " > < input name = " comment_status " type = " checkbox " id = " comment_status " value = " open " < ? php checked ( $post -> comment_status , 'open' ); ?> /> <?php _e('Allow comments on this post') ?></label><br />
< label for = " ping_status " class = " selectit " >< input name = " ping_status " type = " checkbox " id = " ping_status " value = " open " < ? php checked ( $post -> ping_status , 'open' ); ?> /> <?php _e('Allow <a href="http://codex.wordpress.org/Introduction_to_Blogging#Managing_Comments" target="_blank">trackbacks and pingbacks</a> on this post') ?></label>
2008-08-20 23:42:31 +02:00
</ p >
2008-05-14 10:22:01 +02:00
< ? php
2009-02-02 04:41:19 +01:00
}
add_meta_box ( 'commentstatusdiv' , __ ( 'Discussion' ), 'post_comment_status_meta_box' , 'post' , 'normal' , 'core' );
/**
* Display comments for post .
*
* @ since 2.8 . 0
*
* @ param object $post
*/
function post_comment_meta_box ( $post ) {
global $wpdb , $post_ID ;
2008-10-18 19:00:20 +02:00
$total = $wpdb -> 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 ));
2008-08-20 23:42:31 +02:00
2009-02-02 04:41:19 +01:00
if ( 1 > $total ) {
echo '<p>' . __ ( 'No comments yet.' ) . '</p>' ;
2008-08-20 23:42:31 +02:00
return ;
2009-02-02 04:41:19 +01:00
}
2008-08-20 23:42:31 +02:00
2009-02-02 04:41:19 +01:00
wp_nonce_field ( 'get-comments' , 'add_comment_nonce' , false );
2008-08-20 23:42:31 +02:00
?>
2008-11-17 19:01:00 +01:00
< table class = " widefat comments-box fixed " cellspacing = " 0 " style = " display:none; " >
2008-10-30 16:50:21 +01:00
< thead >
< tr >
2008-11-17 19:01:00 +01:00
< th scope = " col " class = " column-author " >< ? php _e ( 'Author' ) ?> </th>
2009-03-02 20:20:19 +01:00
< th scope = " col " class = " column-comment " >
< ? php /* translators: field name in comment form */ echo _x ( 'Comment' , 'noun' ); ?>
</ th >
2008-11-17 19:01:00 +01:00
</ tr >
2008-10-30 16:50:21 +01:00
</ thead >
< tbody id = " the-comment-list " class = " list:comment " >
</ tbody >
</ table >
2008-10-18 19:00:20 +02:00
< p class = " hide-if-no-js " >< a href = " #commentstatusdiv " id = " show-comments " onclick = " commentsBox.get(<?php echo $total ; ?>);return false; " >< ? php _e ( 'Show comments' ); ?> </a> <img class="waiting" style="display:none;" src="images/loading.gif" alt="" /></p>
2008-08-20 23:42:31 +02:00
< ? php
2008-11-28 23:35:01 +01:00
$hidden = get_hidden_meta_boxes ( 'post' );
2009-02-02 04:41:19 +01:00
if ( ! in_array ( 'commentsdiv' , $hidden ) ) { ?>
2009-01-10 16:10:06 +01:00
< script type = " text/javascript " > jQuery ( document ) . ready ( function (){ commentsBox . get ( < ? php echo $total ; ?> , 10);});</script>
2008-10-18 19:00:20 +02:00
< ? php
}
2008-05-14 10:22:01 +02:00
}
2009-02-02 04:41:19 +01:00
if ( 'publish' == $post -> post_status || 'private' == $post -> post_status )
add_meta_box ( 'commentsdiv' , __ ( 'Comments' ), 'post_comment_meta_box' , 'post' , 'normal' , 'core' );
2008-01-03 09:03:29 +01:00
2008-10-10 20:21:16 +02:00
/**
* Display post slug form fields .
*
* @ since 2.6 . 0
*
* @ param object $post
*/
2008-05-14 10:22:01 +02:00
function post_slug_meta_box ( $post ) {
?>
2008-05-04 12:37:06 +02:00
< label class = " hidden " for = " post_name " >< ? php _e ( 'Post Slug' ) ?> </label><input name="post_name" type="text" size="13" id="post_name" value="<?php echo attribute_escape( $post->post_name ); ?>" />
2008-01-03 09:03:29 +01:00
< ? php
2008-05-14 10:22:01 +02:00
}
2008-10-02 06:10:54 +02:00
if ( ! ( 'pending' == $post -> post_status && ! current_user_can ( 'publish_posts' ) ) )
add_meta_box ( 'slugdiv' , __ ( 'Post Slug' ), 'post_slug_meta_box' , 'post' , 'normal' , 'core' );
2008-05-14 10:22:01 +02:00
2008-01-03 09:03:29 +01:00
$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 ) :
2008-10-10 20:21:16 +02:00
/**
* Display form field with list of authors .
*
* @ since 2.6 . 0
*
* @ param object $post
*/
2008-05-14 10:22:01 +02:00
function post_author_meta_box ( $post ) {
2008-05-18 22:08:18 +02:00
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 ;
2008-01-03 09:03:29 +01:00
?>
2008-05-18 22:08:18 +02:00
< label class = " hidden " for = " post_author_override " >< ? php _e ( 'Post Author' ); ?> </label><?php wp_dropdown_users( array('include' => $authors, 'name' => 'post_author_override', 'selected' => empty($post->ID) ? $user_ID : $post->post_author) ); ?>
2008-05-14 10:22:01 +02:00
< ? php
}
2008-08-20 23:42:31 +02:00
add_meta_box ( 'authordiv' , __ ( 'Post Author' ), 'post_author_meta_box' , 'post' , 'normal' , 'core' );
2008-05-14 10:22:01 +02:00
endif ;
2008-01-03 09:03:29 +01:00
2008-08-08 19:05:10 +02:00
if ( 0 < $post_ID && wp_get_post_revisions ( $post_ID ) ) :
2008-10-10 20:21:16 +02:00
/**
* Display list of post revisions .
*
* @ since 2.6 . 0
*
* @ param object $post
*/
2008-05-14 10:22:01 +02:00
function post_revisions_meta_box ( $post ) {
wp_list_post_revisions ();
}
2008-08-20 23:42:31 +02:00
add_meta_box ( 'revisionsdiv' , __ ( 'Post Revisions' ), 'post_revisions_meta_box' , 'post' , 'normal' , 'core' );
2008-05-14 10:22:01 +02:00
endif ;
2008-04-19 01:38:21 +02:00
2008-11-11 23:40:16 +01:00
do_action ( 'do_meta_boxes' , 'post' , 'normal' , $post );
do_action ( 'do_meta_boxes' , 'post' , 'advanced' , $post );
do_action ( 'do_meta_boxes' , 'post' , 'side' , $post );
require_once ( 'admin-header.php' );
2008-08-20 23:42:31 +02:00
?>
2008-09-28 06:11:27 +02:00
2008-08-20 23:42:31 +02:00
< ? php if ( ( isset ( $mode ) && 'bookmarklet' == $mode ) || isset ( $_GET [ 'popupurl' ]) ) : ?>
< input type = " hidden " name = " mode " value = " bookmarklet " />
< ? php endif ; ?>
< div class = " wrap " >
2008-11-26 14:51:25 +01:00
< ? php screen_icon (); ?>
2008-10-17 22:06:22 +02:00
< h2 >< ? php echo wp_specialchars ( $title ); ?> </h2>
2008-11-05 20:17:22 +01:00
< ? php if ( $notice ) : ?>
< div id = " notice " class = " error " >< p >< ? php echo $notice ?> </p></div>
< ? php endif ; ?>
< ? php if ( isset ( $_GET [ 'message' ])) : ?>
< div id = " message " class = " updated fade " >< p >< ? php echo $messages [ $_GET [ 'message' ]]; ?> </p></div>
< ? php endif ; ?>
2008-09-28 06:11:27 +02:00
< form name = " post " action = " post.php " method = " post " id = " post " >
2008-08-20 23:42:31 +02:00
< ? php
if ( 0 == $post_ID )
wp_nonce_field ( 'add-post' );
else
wp_nonce_field ( 'update-post_' . $post_ID );
?>
< input type = " hidden " id = " user-id " name = " user_ID " value = " <?php echo (int) $user_ID ?> " />
< input type = " hidden " id = " hiddenaction " name = " action " value = " <?php echo $form_action ?> " />
< input type = " hidden " id = " originalaction " name = " originalaction " value = " <?php echo $form_action ?> " />
< input type = " hidden " id = " post_author " name = " post_author " value = " <?php echo attribute_escape( $post->post_author ); ?> " />
< input type = " hidden " id = " post_type " name = " post_type " value = " <?php echo $post->post_type ?> " />
< input type = " hidden " id = " original_post_status " name = " original_post_status " value = " <?php echo $post->post_status ?> " />
< input name = " referredby " type = " hidden " id = " referredby " value = " <?php echo clean_url(stripslashes(wp_get_referer())); ?> " />
< ? php if ( 'draft' != $post -> post_status ) wp_original_referer_field ( true , 'previous' ); ?>
< ? php echo $form_extra ?>
2009-03-25 15:29:22 +01:00
< div id = " poststuff " class = " metabox-holder<?php echo 2 == $screen_layout_columns ? ' has-right-sidebar' : ''; ?> " >
2008-08-20 23:42:31 +02:00
< div id = " side-info-column " class = " inner-sidebar " >
< ? php do_action ( 'submitpost_box' ); ?>
< ? php $side_meta_boxes = do_meta_boxes ( 'post' , 'side' , $post ); ?>
</ div >
2009-03-25 15:29:22 +01:00
< div id = " post-body " " >
2008-08-20 23:42:31 +02:00
< div id = " titlediv " >
< div id = " titlewrap " >
2009-03-15 08:59:12 +01:00
< input type = " text " name = " post_title " size = " 30 " tabindex = " 1 " value = " <?php echo attribute_escape( htmlspecialchars( $post->post_title ) ); ?> " id = " title " autocomplete = " off " />
2008-08-20 23:42:31 +02:00
</ div >
< div class = " inside " >
< ? php $sample_permalink_html = get_sample_permalink_html ( $post -> ID ); ?>
2008-10-02 06:10:54 +02:00
< ? php if ( ! ( 'pending' == $post -> post_status && ! current_user_can ( 'publish_posts' ) ) ) { ?>
2008-08-20 23:42:31 +02:00
< div id = " edit-slug-box " >
< ? php if ( ! empty ( $post -> ID ) && ! empty ( $sample_permalink_html ) ) :
echo $sample_permalink_html ;
endif ; ?>
</ div >
2008-10-02 06:10:54 +02:00
< ? php } ?>
2008-08-20 23:42:31 +02:00
</ div >
</ div >
< div id = " <?php echo user_can_richedit() ? 'postdivrich' : 'postdiv'; ?> " class = " postarea " >
< ? php the_editor ( $post -> post_content ); ?>
2009-03-25 15:29:22 +01:00
< table id = " post-status-info " >< tbody >< tr >
< td id = " wp-word-count " ></ td >
< td class = " autosave-info " >
2008-08-20 23:42:31 +02:00
< span id = " autosave " >& nbsp ; </ span >
< ? php
if ( $post_ID ) {
echo '<span id="last-edit">' ;
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' ), wp_specialchars ( $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 '</span>' ;
}
?>
2009-03-25 15:29:22 +01:00
</ td >
</ tr ></ tbody ></ table >
2008-08-20 23:42:31 +02:00
< ? php wp_nonce_field ( 'autosave' , 'autosavenonce' , false ); ?>
< ? php wp_nonce_field ( 'closedpostboxes' , 'closedpostboxesnonce' , false ); ?>
< ? php wp_nonce_field ( 'getpermalink' , 'getpermalinknonce' , false ); ?>
< ? php wp_nonce_field ( 'samplepermalink' , 'samplepermalinknonce' , false ); ?>
< ? php wp_nonce_field ( 'meta-box-order' , 'meta-box-order-nonce' , false ); ?>
</ div >
< ? php
do_meta_boxes ( 'post' , 'normal' , $post );
do_action ( 'edit_form_advanced' );
2008-05-14 10:22:01 +02:00
do_meta_boxes ( 'post' , 'advanced' , $post );
2008-02-08 19:51:37 +01:00
2008-05-14 10:22:01 +02:00
do_action ( 'dbx_post_sidebar' );
2008-08-20 23:42:31 +02:00
2008-05-14 10:22:01 +02:00
?>
2008-08-20 23:42:31 +02:00
2005-06-14 09:31:36 +02:00
</ div >
2008-10-23 00:08:58 +02:00
< br class = " clear " />
2008-08-20 23:42:31 +02:00
</ div ><!-- / poststuff -->
2005-09-27 01:55:36 +02:00
</ form >
2008-09-28 06:11:27 +02:00
</ div >
2008-03-15 23:57:47 +01:00
2008-08-24 08:56:22 +02:00
< ? php wp_comment_reply (); ?>
2008-03-15 23:57:47 +01:00
< ? php if (( isset ( $post -> post_title ) && '' == $post -> post_title ) || ( isset ( $_GET [ 'message' ]) && 2 > $_GET [ 'message' ])) : ?>
< script type = " text/javascript " >
try { document . post . title . focus ();} catch ( e ){}
</ script >
< ? php endif ; ?>