X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/38ca813a0e312e2768e5b9519f0415cd0aa84781..a6f44f0edcda2471c5a33e4156c1c9488c7f3210:/wp-admin/includes/template.php diff --git a/wp-admin/includes/template.php b/wp-admin/includes/template.php index a488baf8..18349644 100644 --- a/wp-admin/includes/template.php +++ b/wp-admin/includes/template.php @@ -8,31 +8,33 @@ * @subpackage Administration */ - // // Category Checklists // /** - * {@internal Missing Short Description}} + * Walker to output an unordered list of category checkbox elements. * + * @see Walker + * @see wp_category_checklist() + * @see wp_terms_checklist() * @since 2.5.1 */ class Walker_Category_Checklist extends Walker { var $tree_type = 'category'; var $db_fields = array ('parent' => 'parent', 'id' => 'term_id'); //TODO: decouple this - function start_lvl(&$output, $depth, $args) { + function start_lvl( &$output, $depth = 0, $args = array() ) { $indent = str_repeat("\t", $depth); $output .= "$indent\n"; } - function start_el(&$output, $category, $depth, $args) { + function start_el( &$output, $category, $depth = 0, $args = array(), $id = 0 ) { extract($args); if ( empty($taxonomy) ) $taxonomy = 'category'; @@ -46,35 +48,39 @@ class Walker_Category_Checklist extends Walker { $output .= "\n
  • " . ''; } - function end_el(&$output, $category, $depth, $args) { + function end_el( &$output, $category, $depth = 0, $args = array() ) { $output .= "
  • \n"; } } /** - * {@internal Missing Short Description}} + * Output an unordered list of checkbox elements labelled + * with category names. * + * @see wp_terms_checklist() * @since 2.5.1 * - * @param unknown_type $post_id - * @param unknown_type $descendants_and_self - * @param unknown_type $selected_cats - * @param unknown_type $popular_cats + * @param int $post_id Mark categories associated with this post as checked. $selected_cats must not be an array. + * @param int $descendants_and_self ID of the category to output along with its descendents. + * @param bool|array $selected_cats List of categories to mark as checked. + * @param bool|array $popular_cats Override the list of categories that receive the "popular-category" class. + * @param object $walker Walker object to use to build the output. + * @param bool $checked_ontop Move checked items out of the hierarchy and to the top of the list. */ function wp_category_checklist( $post_id = 0, $descendants_and_self = 0, $selected_cats = false, $popular_cats = false, $walker = null, $checked_ontop = true ) { - wp_terms_checklist($post_id, - array( - 'taxonomy' => 'category', - 'descendants_and_self' => $descendants_and_self, - 'selected_cats' => $selected_cats, - 'popular_cats' => $popular_cats, - 'walker' => $walker, - 'checked_ontop' => $checked_ontop - )); + wp_terms_checklist( $post_id, array( + 'taxonomy' => 'category', + 'descendants_and_self' => $descendants_and_self, + 'selected_cats' => $selected_cats, + 'popular_cats' => $popular_cats, + 'walker' => $walker, + 'checked_ontop' => $checked_ontop + ) ); } /** - * Taxonomy independent version of wp_category_checklist + * Output an unordered list of checkbox elements labelled + * with term names. Taxonomy independent version of wp_category_checklist(). * * @since 3.0.0 * @@ -90,6 +96,8 @@ function wp_terms_checklist($post_id = 0, $args = array()) { 'taxonomy' => 'category', 'checked_ontop' => true ); + $args = apply_filters( 'wp_terms_checklist_args', $args, $post_id ); + extract( wp_parse_args($args, $defaults), EXTR_SKIP ); if ( empty($walker) || !is_a($walker, 'Walker') ) @@ -142,31 +150,32 @@ function wp_terms_checklist($post_id = 0, $args = array()) { } /** - * {@internal Missing Short Description}} + * Retrieve a list of the most popular terms from the specified taxonomy. + * + * If the $echo argument is true then the elements for a list of checkbox + * elements labelled with the names of the selected terms is output. + * If the $post_ID global isn't empty then the terms associated with that + * post will be marked as checked. * * @since 2.5.0 * - * @param unknown_type $taxonomy - * @param unknown_type $default - * @param unknown_type $number - * @param unknown_type $echo - * @return unknown + * @param string $taxonomy Taxonomy to retrieve terms from. + * @param int $default Unused. + * @param int $number Number of terms to retrieve. Defaults to 10. + * @param bool $echo Optionally output the list as well. Defaults to true. + * @return array List of popular term IDs. */ function wp_popular_terms_checklist( $taxonomy, $default = 0, $number = 10, $echo = true ) { - global $post_ID; + $post = get_post(); - if ( $post_ID ) - $checked_terms = wp_get_object_terms($post_ID, $taxonomy, array('fields'=>'ids')); + if ( $post && $post->ID ) + $checked_terms = wp_get_object_terms($post->ID, $taxonomy, array('fields'=>'ids')); else $checked_terms = array(); $terms = get_terms( $taxonomy, array( 'orderby' => 'count', 'order' => 'DESC', 'number' => $number, 'hierarchical' => false ) ); $tax = get_taxonomy($taxonomy); - if ( ! current_user_can($tax->cap->assign_terms) ) - $disabled = 'disabled="disabled"'; - else - $disabled = ''; $popular_ids = array(); foreach ( (array) $terms as $term ) { @@ -179,7 +188,7 @@ function wp_popular_terms_checklist( $taxonomy, $default = 0, $number = 10, $ech @@ -221,42 +230,6 @@ function wp_link_category_checklist( $link_id = 0 ) { } } -/** - * Get the column headers for a screen - * - * @since 2.7.0 - * - * @param string|object $screen The screen you want the headers for - * @return array Containing the headers in the format id => UI String - */ -function get_column_headers( $screen ) { - if ( is_string( $screen ) ) - $screen = convert_to_screen( $screen ); - - global $_wp_column_headers; - - if ( !isset( $_wp_column_headers[ $screen->id ] ) ) { - $_wp_column_headers[ $screen->id ] = apply_filters( 'manage_' . $screen->id . '_columns', array() ); - } - - return $_wp_column_headers[ $screen->id ]; -} - -/** - * Get a list of hidden columns. - * - * @since 2.7.0 - * - * @param string|object $screen The screen you want the hidden columns for - * @return array - */ -function get_hidden_columns( $screen ) { - if ( is_string( $screen ) ) - $screen = convert_to_screen( $screen ); - - return (array) get_user_option( 'manage' . $screen->id . 'columnshidden' ); -} - // adds hidden fields with the data for use in the inline editor for posts and pages /** * {@internal Missing Short Description}} @@ -267,7 +240,7 @@ function get_hidden_columns( $screen ) { */ function get_inline_data($post) { $post_type_object = get_post_type_object($post->post_type); - if ( ! current_user_can($post_type_object->cap->edit_post, $post->ID) ) + if ( ! current_user_can( 'edit_post', $post->ID ) ) return; $title = esc_textarea( trim( $post->post_title ) ); @@ -294,22 +267,28 @@ function get_inline_data($post) { if ( $post->post_type == 'page' ) echo '
    ' . esc_html( get_post_meta( $post->ID, '_wp_page_template', true ) ) . '
    '; - if ( $post_type_object->hierarchical ) + if ( post_type_supports( $post->post_type, 'page-attributes' ) ) echo ''; $taxonomy_names = get_object_taxonomies( $post->post_type ); foreach ( $taxonomy_names as $taxonomy_name) { $taxonomy = get_taxonomy( $taxonomy_name ); - if ( $taxonomy->hierarchical && $taxonomy->show_ui ) - echo '
    ' . implode( ',', wp_get_object_terms( $post->ID, $taxonomy_name, array('fields'=>'ids')) ) . '
    '; - elseif ( $taxonomy->show_ui ) - echo '
    ' . esc_html( str_replace( ',', ', ', get_terms_to_edit($post->ID, $taxonomy_name) ) ) . '
    '; + if ( $taxonomy->hierarchical && $taxonomy->show_ui ) { + echo '
    ' + . implode( ',', wp_get_object_terms( $post->ID, $taxonomy_name, array( 'fields' => 'ids' ) ) ) . '
    '; + } elseif ( $taxonomy->show_ui ) { + echo '
    ' + . esc_html( str_replace( ',', ', ', get_terms_to_edit( $post->ID, $taxonomy_name ) ) ) . '
    '; + } } if ( !$post_type_object->hierarchical ) echo '
    ' . (is_sticky($post->ID) ? 'sticky' : '') . '
    '; + if ( post_type_supports( $post->post_type, 'post-formats' ) ) + echo '
    ' . esc_html( get_post_format( $post->ID ) ) . '
    '; + echo ''; } @@ -344,34 +323,40 @@ function wp_comment_reply($position = '1', $checkbox = false, $mode = 'single',