+
@@ -2392,42 +558,9 @@ function wp_comment_trashnotice() {
/**
* {@internal Missing Short Description}}
*
- * @since unknown
- *
- * @param unknown_type $currentcat
- * @param unknown_type $currentparent
- * @param unknown_type $parent
- * @param unknown_type $level
- * @param unknown_type $categories
- * @return unknown
- */
-function wp_dropdown_cats( $currentcat = 0, $currentparent = 0, $parent = 0, $level = 0, $categories = 0 ) {
- if (!$categories )
- $categories = get_categories( array('hide_empty' => 0) );
-
- if ( $categories ) {
- foreach ( $categories as $category ) {
- if ( $currentcat != $category->term_id && $parent == $category->parent) {
- $pad = str_repeat( '– ', $level );
- $category->name = esc_html( $category->name );
- echo "\n\tterm_id )
- echo " selected='selected'";
- echo ">$pad$category->name ";
- wp_dropdown_cats( $currentcat, $currentparent, $category->term_id, $level +1, $categories );
- }
- }
- } else {
- return false;
- }
-}
-
-/**
- * {@internal Missing Short Description}}
- *
- * @since unknown
+ * @since 1.2.0
*
- * @param unknown_type $meta
+ * @param array $meta
*/
function list_meta( $meta ) {
// Exit if no meta
@@ -2436,11 +569,11 @@ function list_meta( $meta ) {
- ' . __( 'Name' ) . '
+ ' . _x( 'Name', 'meta name' ) . '
' . __( 'Value' ) . '
-
+
'; //TBODY needed for list-manipulation JS
@@ -2451,11 +584,11 @@ function list_meta( $meta ) {
-
+
-
+
+ $entry['meta_value'] = esc_textarea( $entry['meta_value'] ); // using a
$entry['meta_id'] = (int) $entry['meta_id'];
$delete_nonce = wp_create_nonce( 'delete-meta_' . $entry['meta_id'] );
- $r .= "\n\t";
- $r .= "\n\t\t" . __( 'Key' ) . " ";
+ $r .= "\n\t ";
+ $r .= "\n\t\t" . __( 'Key' ) . " ";
- $r .= "\n\t\t ";
- $r .= "\n\t\t
";
+ $r .= "\n\t\t";
+ $r .= get_submit_button( __( 'Delete' ), 'deletemeta small', "deletemeta[{$entry['meta_id']}]", false, array( 'data-wp-lists' => "delete:the-list:meta-{$entry['meta_id']}::_ajax_nonce=$delete_nonce" ) );
+ $r .= "\n\t\t";
+ $r .= get_submit_button( __( 'Update' ), 'updatemeta small', "meta-{$entry['meta_id']}-submit", false, array( 'data-wp-lists' => "add:the-list:meta-{$entry['meta_id']}::_ajax_nonce-add-meta=$update_nonce" ) );
+ $r .= "
";
$r .= wp_nonce_field( 'change-meta', '_ajax_nonce', false, false );
$r .= " ";
- $r .= "\n\t\t" . __( 'Value' ) . " \n\t ";
+ $r .= "\n\t\t" . __( 'Value' ) . " \n\t";
return $r;
}
/**
- * {@internal Missing Short Description}}
+ * Prints the form in the Custom Fields meta box.
+ *
+ * @since 1.2.0
*
- * @since unknown
+ * @param WP_Post $post Optional. The post being edited.
*/
-function meta_form() {
+function meta_form( $post = null ) {
global $wpdb;
- $limit = (int) apply_filters( 'postmeta_form_limit', 30 );
- $keys = $wpdb->get_col( "
- SELECT meta_key
+ $post = get_post( $post );
+
+ /**
+ * Filter the number of custom fields to retrieve for the drop-down
+ * in the Custom Fields meta box.
+ *
+ * @since 2.1.0
+ *
+ * @param int $limit Number of custom fields to retrieve. Default 30.
+ */
+ $limit = apply_filters( 'postmeta_form_limit', 30 );
+ $sql = "SELECT meta_key
FROM $wpdb->postmeta
GROUP BY meta_key
- HAVING meta_key NOT LIKE '\_%'
- ORDER BY LOWER(meta_key)
- LIMIT $limit" );
- if ( $keys )
- natcasesort($keys);
+ HAVING meta_key NOT LIKE %s
+ ORDER BY meta_key
+ LIMIT %d";
+ $keys = $wpdb->get_col( $wpdb->prepare( $sql, $wpdb->esc_like( '_' ) . '%', $limit ) );
+ if ( $keys ) {
+ natcasesort( $keys );
+ $meta_key_input_id = 'metakeyselect';
+ } else {
+ $meta_key_input_id = 'metakeyinput';
+ }
?>
-
+
@@ -2581,28 +733,31 @@ function meta_form() {
}
/**
- * {@internal Missing Short Description}}
+ * Print out HTML form date elements for editing post or comment publish date.
*
- * @since unknown
+ * @since 0.71
*
- * @param unknown_type $edit
- * @param unknown_type $for_post
- * @param unknown_type $tab_index
- * @param unknown_type $multi
+ * @param int|bool $edit Accepts 1|true for editing the date, 0|false for adding the date.
+ * @param int|bool $for_post Accepts 1|true for applying the date to a post, 0|false for a comment.
+ * @param int $tab_index The tabindex attribute to add. Default 0.
+ * @param int|bool $multi Optional. Whether the additional fields and buttons should be added.
+ * Default 0|false.
*/
function touch_time( $edit = 1, $for_post = 1, $tab_index = 0, $multi = 0 ) {
- global $wp_locale, $post, $comment;
+ global $wp_locale, $comment;
+ $post = get_post();
if ( $for_post )
- $edit = ( in_array($post->post_status, array('draft', 'pending') ) && (!$post->post_date_gmt || '0000-00-00 00:00:00' == $post->post_date_gmt ) ) ? false : true;
+ $edit = ! ( in_array($post->post_status, array('draft', 'pending') ) && (!$post->post_date_gmt || '0000-00-00 00:00:00' == $post->post_date_gmt ) );
$tab_index_attribute = '';
if ( (int) $tab_index > 0 )
$tab_index_attribute = " tabindex=\"$tab_index\"";
+ // todo: Remove this?
// echo ' '.__( 'Edit timestamp' ).' ';
- $time_adj = time() + (get_option( 'gmt_offset' ) * 3600 );
+ $time_adj = current_time('timestamp');
$post_date = ($for_post) ? $post->post_date : $comment->comment_date;
$jj = ($edit) ? mysql2date( 'd', $post_date, false ) : gmdate( 'd', $time_adj );
$mm = ($edit) ? mysql2date( 'm', $post_date, false ) : gmdate( 'm', $time_adj );
@@ -2617,91 +772,94 @@ function touch_time( $edit = 1, $for_post = 1, $tab_index = 0, $multi = 0 ) {
$cur_hh = gmdate( 'H', $time_adj );
$cur_mn = gmdate( 'i', $time_adj );
- $month = "\n";
+ $month = '' . __( 'Month' ) . ' \n";
for ( $i = 1; $i < 13; $i = $i +1 ) {
- $month .= "\t\t\t" . 'get_month_abbrev( $wp_locale->get_month( $i ) ) . " \n";
+ $monthnum = zeroise($i, 2);
+ $month .= "\t\t\t" . '';
+ /* translators: 1: month number (01, 02, etc.), 2: month abbreviation */
+ $month .= sprintf( __( '%1$s-%2$s' ), $monthnum, $wp_locale->get_month_abbrev( $wp_locale->get_month( $i ) ) ) . " \n";
}
$month .= ' ';
- $day = ' ';
- $year = ' ';
- $hour = ' ';
- $minute = ' ';
+ $day = '' . __( 'Day' ) . ' ';
+ $year = '' . __( 'Year' ) . ' ';
+ $hour = '' . __( 'Hour' ) . ' ';
+ $minute = '' . __( 'Minute' ) . ' ';
echo '';
- /* translators: 1: month input, 2: day input, 3: year input, 4: hour input, 5: minute input */
- printf(__('%1$s%2$s, %3$s @ %4$s : %5$s'), $month, $day, $year, $hour, $minute);
+ /* translators: 1: month, 2: day, 3: year, 4: hour, 5: minute */
+ printf( __( '%1$s %2$s, %3$s @ %4$s : %5$s' ), $month, $day, $year, $hour, $minute );
echo '
';
if ( $multi ) return;
echo "\n\n";
- foreach ( array('mm', 'jj', 'aa', 'hh', 'mn') as $timeunit ) {
- echo ' ' . "\n";
+ $map = array(
+ 'mm' => array( $mm, $cur_mm ),
+ 'jj' => array( $jj, $cur_jj ),
+ 'aa' => array( $aa, $cur_aa ),
+ 'hh' => array( $hh, $cur_hh ),
+ 'mn' => array( $mn, $cur_mn ),
+ );
+ foreach ( $map as $timeunit => $value ) {
+ list( $unit, $curr ) = $value;
+
+ echo ' ' . "\n";
$cur_timeunit = 'cur_' . $timeunit;
- echo ' ' . "\n";
+ echo ' ' . "\n";
}
?>
-
+
$template";
- endforeach;
+ foreach ( array_keys( $templates ) as $template ) {
+ $selected = selected( $default, $templates[ $template ], false );
+ echo "\n\t$template ";
+ }
}
/**
- * {@internal Missing Short Description}}
+ * Print out option HTML elements for the page parents drop-down.
*
- * @since unknown
+ * @since 1.5.0
*
- * @param unknown_type $default
- * @param unknown_type $parent
- * @param unknown_type $level
- * @return unknown
+ * @param int $default Optional. The default page ID to be pre-selected. Default 0.
+ * @param int $parent Optional. The parent page ID. Default 0.
+ * @param int $level Optional. Page depth level. Default 0.
+ *
+ * @return null|false Boolean False if page has no children, otherwise print out html elements
*/
function parent_dropdown( $default = 0, $parent = 0, $level = 0 ) {
- global $wpdb, $post_ID;
+ global $wpdb;
+ $post = get_post();
$items = $wpdb->get_results( $wpdb->prepare("SELECT ID, post_parent, post_title FROM $wpdb->posts WHERE post_parent = %d AND post_type = 'page' ORDER BY menu_order", $parent) );
if ( $items ) {
foreach ( $items as $item ) {
// A page cannot be its own parent.
- if (!empty ( $post_ID ) ) {
- if ( $item->ID == $post_ID ) {
- continue;
- }
- }
+ if ( $post && $post->ID && $item->ID == $post->ID )
+ continue;
+
$pad = str_repeat( ' ', $level * 3 );
- if ( $item->ID == $default)
- $current = ' selected="selected"';
- else
- $current = '';
+ $selected = selected( $default, $item->ID, false );
- echo "\n\t$pad " . esc_html($item->post_title) . " ";
+ echo "\n\t$pad " . esc_html($item->post_title) . " ";
parent_dropdown( $default, $item->ID, $level +1 );
}
} else {
@@ -2710,89 +868,21 @@ function parent_dropdown( $default = 0, $parent = 0, $level = 0 ) {
}
/**
- * {@internal Missing Short Description}}
- *
- * @since unknown
- */
-function browse_happy() {
- $getit = __( 'WordPress recommends a better browser' );
- echo '
-
-';
-}
-
-/**
- * {@internal Missing Short Description}}
- *
- * @since unknown
- *
- * @param unknown_type $id
- * @return unknown
- */
-function the_attachment_links( $id = false ) {
- $id = (int) $id;
- $post = & get_post( $id );
-
- if ( $post->post_type != 'attachment' )
- return false;
-
- $icon = get_attachment_icon( $post->ID );
- $attachment_data = wp_get_attachment_metadata( $id );
- $thumb = isset( $attachment_data['thumb'] );
-?>
-
- html elements for role selectors based on $wp_roles
+ * Print out option html elements for role selectors.
*
- * @package WordPress
- * @subpackage Administration
- * @since 2.1
+ * @since 2.1.0
*
- * @uses $wp_roles
- * @param string $default slug for the role that should be already selected
+ * @param string $selected Slug for the role that should be already selected.
*/
-function wp_dropdown_roles( $selected = false ) {
- global $wp_roles;
+function wp_dropdown_roles( $selected = '' ) {
$p = '';
$r = '';
- $editable_roles = get_editable_roles();
+ $editable_roles = array_reverse( get_editable_roles() );
- foreach( $editable_roles as $role => $details ) {
+ foreach ( $editable_roles as $role => $details ) {
$name = translate_user_role($details['name'] );
- if ( $selected == $role ) // Make default first in list
+ if ( $selected == $role ) // preselect specified role
$p = "\n\t$name ";
else
$r .= "\n\t$name ";
@@ -2800,114 +890,78 @@ function wp_dropdown_roles( $selected = false ) {
echo $p . $r;
}
-/**
- * {@internal Missing Short Description}}
- *
- * @since unknown
- *
- * @param unknown_type $size
- * @return unknown
- */
-function wp_convert_hr_to_bytes( $size ) {
- $size = strtolower($size);
- $bytes = (int) $size;
- if ( strpos($size, 'k') !== false )
- $bytes = intval($size) * 1024;
- elseif ( strpos($size, 'm') !== false )
- $bytes = intval($size) * 1024 * 1024;
- elseif ( strpos($size, 'g') !== false )
- $bytes = intval($size) * 1024 * 1024 * 1024;
- return $bytes;
-}
-
-/**
- * {@internal Missing Short Description}}
- *
- * @since unknown
- *
- * @param unknown_type $bytes
- * @return unknown
- */
-function wp_convert_bytes_to_hr( $bytes ) {
- $units = array( 0 => 'B', 1 => 'kB', 2 => 'MB', 3 => 'GB' );
- $log = log( $bytes, 1024 );
- $power = (int) $log;
- $size = pow(1024, $log - $power);
- return $size . $units[$power];
-}
-
-/**
- * {@internal Missing Short Description}}
- *
- * @since unknown
- *
- * @return unknown
- */
-function wp_max_upload_size() {
- $u_bytes = wp_convert_hr_to_bytes( ini_get( 'upload_max_filesize' ) );
- $p_bytes = wp_convert_hr_to_bytes( ini_get( 'post_max_size' ) );
- $bytes = apply_filters( 'upload_size_limit', min($u_bytes, $p_bytes), $u_bytes, $p_bytes );
- return $bytes;
-}
-
/**
* Outputs the form used by the importers to accept the data to be imported
*
- * @since 2.0
+ * @since 2.0.0
*
* @param string $action The action attribute for the form.
*/
function wp_import_upload_form( $action ) {
+
+ /**
+ * Filter the maximum allowed upload size for import files.
+ *
+ * @since 2.3.0
+ *
+ * @see wp_max_upload_size()
+ *
+ * @param int $max_upload_size Allowed upload size. Default 1 MB.
+ */
$bytes = apply_filters( 'import_upload_size_limit', wp_max_upload_size() );
- $size = wp_convert_bytes_to_hr( $bytes );
+ $size = size_format( $bytes );
$upload_dir = wp_upload_dir();
if ( ! empty( $upload_dir['error'] ) ) :
?>
-
+
()
-
-
-
+
post_name); // just in case
- if ( strlen($name) )
- echo ' ';
-}
-
/**
* Add a meta box to an edit form.
*
* @since 2.5.0
*
- * @param string $id String for use in the 'id' attribute of tags.
- * @param string $title Title of the meta box.
- * @param string $callback Function that fills the box with the desired content. The function should echo its output.
- * @param string $page The type of edit page on which to show the box (post, page, link).
- * @param string $context The context within the page where the boxes should show ('normal', 'advanced').
- * @param string $priority The priority within the context where the boxes should show ('high', 'low').
- */
-function add_meta_box($id, $title, $callback, $page, $context = 'advanced', $priority = 'default', $callback_args=null) {
+ * @param string $id String for use in the 'id' attribute of tags.
+ * @param string $title Title of the meta box.
+ * @param callback $callback Function that fills the box with the desired content.
+ * The function should echo its output.
+ * @param string|WP_Screen $screen Optional. The screen on which to show the box (like a post
+ * type, 'link', or 'comment'). Default is the current screen.
+ * @param string $context Optional. The context within the screen where the boxes
+ * should display. Available contexts vary from screen to
+ * screen. Post edit screen contexts include 'normal', 'side',
+ * and 'advanced'. Comments screen contexts include 'normal'
+ * and 'side'. Menus meta boxes (accordion sections) all use
+ * the 'side' context. Global default is 'advanced'.
+ * @param string $priority Optional. The priority within the context where the boxes
+ * should show ('high', 'low'). Default 'default'.
+ * @param array $callback_args Optional. Data that should be set as the $args property
+ * of the box array (which is the second parameter passed
+ * to your callback). Default null.
+ */
+function add_meta_box( $id, $title, $callback, $screen = null, $context = 'advanced', $priority = 'default', $callback_args = null ) {
global $wp_meta_boxes;
+ if ( empty( $screen ) )
+ $screen = get_current_screen();
+ elseif ( is_string( $screen ) )
+ $screen = convert_to_screen( $screen );
+
+ $page = $screen->id;
+
if ( !isset($wp_meta_boxes) )
$wp_meta_boxes = array();
if ( !isset($wp_meta_boxes[$page]) )
@@ -2916,35 +970,42 @@ function add_meta_box($id, $title, $callback, $page, $context = 'advanced', $pri
$wp_meta_boxes[$page][$context] = array();
foreach ( array_keys($wp_meta_boxes[$page]) as $a_context ) {
- foreach ( array('high', 'core', 'default', 'low') as $a_priority ) {
- if ( !isset($wp_meta_boxes[$page][$a_context][$a_priority][$id]) )
- continue;
-
- // If a core box was previously added or removed by a plugin, don't add.
- if ( 'core' == $priority ) {
- // If core box previously deleted, don't add
- if ( false === $wp_meta_boxes[$page][$a_context][$a_priority][$id] )
+ foreach ( array('high', 'core', 'default', 'low') as $a_priority ) {
+ if ( !isset($wp_meta_boxes[$page][$a_context][$a_priority][$id]) )
+ continue;
+
+ // If a core box was previously added or removed by a plugin, don't add.
+ if ( 'core' == $priority ) {
+ // If core box previously deleted, don't add
+ if ( false === $wp_meta_boxes[$page][$a_context][$a_priority][$id] )
+ return;
+
+ /*
+ * If box was added with default priority, give it core priority to
+ * maintain sort order.
+ */
+ if ( 'default' == $a_priority ) {
+ $wp_meta_boxes[$page][$a_context]['core'][$id] = $wp_meta_boxes[$page][$a_context]['default'][$id];
+ unset($wp_meta_boxes[$page][$a_context]['default'][$id]);
+ }
return;
- // If box was added with default priority, give it core priority to maintain sort order
- if ( 'default' == $a_priority ) {
- $wp_meta_boxes[$page][$a_context]['core'][$id] = $wp_meta_boxes[$page][$a_context]['default'][$id];
- unset($wp_meta_boxes[$page][$a_context]['default'][$id]);
}
- return;
- }
- // If no priority given and id already present, use existing priority
- if ( empty($priority) ) {
- $priority = $a_priority;
- // else if we're adding to the sorted priortiy, we don't know the title or callback. Glab them from the previously added context/priority.
- } elseif ( 'sorted' == $priority ) {
- $title = $wp_meta_boxes[$page][$a_context][$a_priority][$id]['title'];
- $callback = $wp_meta_boxes[$page][$a_context][$a_priority][$id]['callback'];
- $callback_args = $wp_meta_boxes[$page][$a_context][$a_priority][$id]['args'];
+ // If no priority given and id already present, use existing priority.
+ if ( empty($priority) ) {
+ $priority = $a_priority;
+ /*
+ * Else, if we're adding to the sorted priority, we don't know the title
+ * or callback. Grab them from the previously added context/priority.
+ */
+ } elseif ( 'sorted' == $priority ) {
+ $title = $wp_meta_boxes[$page][$a_context][$a_priority][$id]['title'];
+ $callback = $wp_meta_boxes[$page][$a_context][$a_priority][$id]['callback'];
+ $callback_args = $wp_meta_boxes[$page][$a_context][$a_priority][$id]['args'];
+ }
+ // An id can be in only one priority and one context.
+ if ( $priority != $a_priority || $context != $a_context )
+ unset($wp_meta_boxes[$page][$a_context][$a_priority][$id]);
}
- // An id can be in only one priority and one context
- if ( $priority != $a_priority || $context != $a_context )
- unset($wp_meta_boxes[$page][$a_context][$a_priority][$id]);
- }
}
if ( empty($priority) )
@@ -2957,50 +1018,57 @@ function add_meta_box($id, $title, $callback, $page, $context = 'advanced', $pri
}
/**
- * {@internal Missing Short Description}}
+ * Meta-Box template function
*
- * @since unknown
+ * @since 2.5.0
*
- * @param unknown_type $page
- * @param unknown_type $context
- * @param unknown_type $object
+ * @staticvar bool $already_sorted
+ * @param string|WP_Screen $screen Screen identifier
+ * @param string $context box context
+ * @param mixed $object gets passed to the box callback function as first parameter
* @return int number of meta_boxes
*/
-function do_meta_boxes($page, $context, $object) {
+function do_meta_boxes( $screen, $context, $object ) {
global $wp_meta_boxes;
static $already_sorted = false;
- //do_action('do_meta_boxes', $page, $context, $object);
+ if ( empty( $screen ) )
+ $screen = get_current_screen();
+ elseif ( is_string( $screen ) )
+ $screen = convert_to_screen( $screen );
- $hidden = get_hidden_meta_boxes($page);
+ $page = $screen->id;
- echo "\n";
+ $hidden = get_hidden_meta_boxes( $screen );
- $i = 0;
- do {
- // Grab the ones the user has manually sorted. Pull them out of their previous context/priority and into the one the user chose
- if ( !$already_sorted && $sorted = get_user_option( "meta-box-order_$page", 0, false ) ) {
- foreach ( $sorted as $box_context => $ids )
- foreach ( explode(',', $ids) as $id )
- if ( $id )
- add_meta_box( $id, null, null, $page, $box_context, 'sorted' );
+ printf('