X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/76aea3697c6043c1613370f172395b4f65ee71f0..fa11948979fd6a4ea5705dc613b239699a459db3:/wp-includes/bookmark-template.php?ds=sidebyside diff --git a/wp-includes/bookmark-template.php b/wp-includes/bookmark-template.php index e687e562..64e73a88 100644 --- a/wp-includes/bookmark-template.php +++ b/wp-includes/bookmark-template.php @@ -7,7 +7,7 @@ */ /** - * The formatted output of a list of bookmarks + * The formatted output of a list of bookmarks. * * The $bookmarks array must contain bookmark objects and will be iterated over * to retrieve the bookmark to be used in the output. @@ -26,17 +26,22 @@ * of the bookmark. * 'show_images' - Default is 1 (integer). Whether to show link image if * available. + * 'show_name' - Default is 0 (integer). Whether to show link name if + * available. * 'before' - Default is '
  • ' (string). The html or text to prepend to each * bookmarks. * 'after' - Default is '
  • ' (string). The html or text to append to each * bookmarks. + * 'link_before' - Default is '' (string). The html or text to prepend to each + * bookmarks inside the tag. + * 'link_after' - Default is '' (string). The html or text to append to each + * bookmarks inside the tag. * 'between' - Default is '\n' (string). The string for use in between the link, * description, and image. * 'show_rating' - Default is 0 (integer). Whether to show the link rating. * - * @since 2.1 + * @since 2.1.0 * @access private - * @usedby wp_list_bookmarks() * * @param array $bookmarks List of bookmarks to traverse * @param string|array $args Optional. Overwrite the defaults. @@ -45,9 +50,9 @@ function _walk_bookmarks($bookmarks, $args = '' ) { $defaults = array( 'show_updated' => 0, 'show_description' => 0, - 'show_images' => 1, 'before' => '
  • ', - 'after' => '
  • ', 'between' => "\n", - 'show_rating' => 0 + 'show_images' => 1, 'show_name' => 0, + 'before' => '
  • ', 'after' => '
  • ', 'between' => "\n", + 'show_rating' => 0, 'link_before' => '', 'link_after' => '' ); $r = wp_parse_args( $args, $defaults ); @@ -64,43 +69,50 @@ function _walk_bookmarks($bookmarks, $args = '' ) { $the_link = '#'; if ( !empty($bookmark->link_url) ) - $the_link = clean_url($bookmark->link_url); + $the_link = esc_url($bookmark->link_url); - $rel = $bookmark->link_rel; - if ( '' != $rel ) - $rel = ' rel="' . $rel . '"'; - - $desc = attribute_escape(sanitize_bookmark_field('link_description', $bookmark->link_description, $bookmark->link_id, 'display')); - $name = attribute_escape(sanitize_bookmark_field('link_name', $bookmark->link_name, $bookmark->link_id, 'display')); + $desc = esc_attr(sanitize_bookmark_field('link_description', $bookmark->link_description, $bookmark->link_id, 'display')); + $name = esc_attr(sanitize_bookmark_field('link_name', $bookmark->link_name, $bookmark->link_id, 'display')); $title = $desc; if ( $show_updated ) if ( '00' != substr($bookmark->link_updated_f, 0, 2) ) { $title .= ' ('; - $title .= sprintf(__('Last updated: %s'), date(get_option('links_updated_date_format'), $bookmark->link_updated_f + (get_option('gmt_offset') * 3600))); + $title .= sprintf(__('Last updated: %s'), date(get_option('links_updated_date_format'), $bookmark->link_updated_f + (get_option('gmt_offset') * HOUR_IN_SECONDS))); $title .= ')'; } + $alt = ' alt="' . $name . ( $show_description ? ' ' . $title : '' ) . '"'; + if ( '' != $title ) $title = ' title="' . $title . '"'; - $alt = ' alt="' . $name . '"'; + $rel = $bookmark->link_rel; + if ( '' != $rel ) + $rel = ' rel="' . esc_attr($rel) . '"'; $target = $bookmark->link_target; if ( '' != $target ) $target = ' target="' . $target . '"'; - $output .= '
    '; + $output .= ''; + + $output .= $link_before; if ( $bookmark->link_image != null && $show_images ) { - if ( strpos($bookmark->link_image, 'http') !== false ) + if ( strpos($bookmark->link_image, 'http') === 0 ) $output .= "link_image\" $alt $title />"; else // If it's a relative path $output .= "link_image\" $alt $title />"; + + if ( $show_name ) + $output .= " $name"; } else { $output .= $name; } + $output .= $link_after; + $output .= ''; if ( $show_updated && $bookmark->recently_updated ) @@ -109,9 +121,8 @@ function _walk_bookmarks($bookmarks, $args = '' ) { if ( $show_description && '' != $desc ) $output .= $between . $desc; - if ($show_rating) { - $output .= $between . get_linkrating($bookmark); - } + if ( $show_rating ) + $output .= $between . sanitize_bookmark_field('link_rating', $bookmark->link_rating, $bookmark->link_id, 'display'); $output .= "$after\n"; } // end while @@ -120,7 +131,7 @@ function _walk_bookmarks($bookmarks, $args = '' ) { } /** - * Retrieve or echo all of the bookmarks + * Retrieve or echo all of the bookmarks. * * List of default arguments are as follows: * 'orderby' - Default is 'name' (string). How to order the links by. String is @@ -141,6 +152,8 @@ function _walk_bookmarks($bookmarks, $args = '' ) { * formatted bookmarks. * 'categorize' - Default is 1 (integer). Whether to show links listed by * category (default) or show links in one column. + * 'show_description' - Default is 0 (integer). Whether to show the description + * of the bookmark. * * These options define how the Category name will appear before the category * links are displayed, if 'categorize' is 1. If 'categorize' is 0, then it will @@ -174,8 +187,8 @@ function _walk_bookmarks($bookmarks, $args = '' ) { * passed to get_bookmarks(). * @link http://codex.wordpress.org/Template_Tags/wp_list_bookmarks * - * @since 2.1 - * @uses _list_bookmarks() Used to iterate over all of the bookmarks and return + * @since 2.1.0 + * @uses _walk_bookmarks() Used to iterate over all of the bookmarks and return * the html * @uses get_terms() Gets all of the categories that are for links. * @@ -202,16 +215,28 @@ function wp_list_bookmarks($args = '') { $output = ''; if ( $categorize ) { - //Split the bookmarks into ul's for each category - $cats = get_terms('link_category', array('name__like' => $category_name, 'include' => $category, 'exclude' => $exclude_category, 'orderby' => $category_orderby, 'order' => $category_order, 'hierarchical' => 0)); + $cats = get_terms( 'link_category', array( 'name__like' => $category_name, 'include' => $category, 'exclude' => $exclude_category, 'orderby' => $category_orderby, 'order' => $category_order, 'hierarchical' => 0 ) ); + if ( empty( $cats ) ) + $categorize = false; + } + if ( $categorize ) { + // Split the bookmarks into ul's for each category foreach ( (array) $cats as $cat ) { $params = array_merge($r, array('category'=>$cat->term_id)); $bookmarks = get_bookmarks($params); if ( empty($bookmarks) ) continue; $output .= str_replace(array('%id', '%class'), array("linkcat-$cat->term_id", $class), $category_before); - $catname = apply_filters( "link_category", $cat->name ); + /** + * Filter the bookmarks category name. + * + * @since 2.2.0 + * + * @param string $cat->name The category name of bookmarks. + */ + $catname = apply_filters( 'link_category', $cat->name ); + $output .= "$title_before$catname$title_after\n\t\n$category_after\n"; @@ -232,11 +257,16 @@ function wp_list_bookmarks($args = '') { } } + /** + * Filter the bookmarks list before it is echoed or returned. + * + * @since 2.5.0 + * + * @param string $output The HTML list of bookmarks. + */ $output = apply_filters( 'wp_list_bookmarks', $output ); if ( !$echo ) return $output; echo $output; } - -?> \ No newline at end of file