Ticket #3567: 3567.category-template.php.diff
File 3567.category-template.php.diff, 7.9 KB (added by , 18 years ago) |
---|
-
wp-includes/classes.php
560 560 var $db_fields = array ('parent' => 'category_parent', 'id' => 'cat_ID'); //TODO: decouple this 561 561 562 562 function start_lvl($output, $depth, $args) { 563 if ( 'list' != $args['style'] ) 564 return $output; 565 566 $indent = str_repeat("\t", $depth); 567 $output .= "$indent<ul class='children'>\n"; 563 $output .= str_repeat("\t", $depth); 564 565 switch ($args['format']) { 566 case 'html': 567 $output .= '<ul>'; 568 break; 569 } 570 571 $output .= "\n"; 572 568 573 return $output; 569 574 } 570 575 571 576 function end_lvl($output, $depth, $args) { 572 if ( 'list' != $args['style'] ) 573 return $output; 574 575 $indent = str_repeat("\t", $depth); 576 $output .= "$indent</ul>\n"; 577 $output .= str_repeat("\t", $depth); 578 579 switch ($args['format']) { 580 case 'html': 581 $output .= '</ul>'; 582 break; 583 } 584 585 $output .= "\n"; 586 577 587 return $output; 578 588 } 579 589 580 590 function start_el($output, $category, $depth, $args) { 581 591 extract($args); 582 583 $cat_name = attribute_escape( $category->cat_name); 584 $cat_name = apply_filters( 'list_cats', $cat_name, $category ); 585 $link = '<a href="' . get_category_link( $category->cat_ID ) . '" '; 586 if ( $use_desc_for_title == 0 || empty($category->category_description) ) 587 $link .= 'title="' . sprintf(__( 'View all posts filed under %s' ), $cat_name) . '"'; 588 else 589 $link .= 'title="' . attribute_escape( apply_filters( 'category_description', $category->category_description, $category )) . '"'; 590 $link .= '>'; 591 $link .= $cat_name . '</a>'; 592 593 if ( (! empty($feed_image)) || (! empty($feed)) ) { 594 $link .= ' '; 595 596 if ( empty($feed_image) ) 597 $link .= '('; 598 599 $link .= '<a href="' . get_category_rss_link( 0, $category->cat_ID, $category->category_nicename ) . '"'; 600 601 if ( empty($feed) ) 602 $alt = ' alt="' . sprintf(__( 'Feed for all posts filed under %s' ), $cat_name ) . '"'; 603 else { 604 $title = ' title="' . $feed . '"'; 605 $alt = ' alt="' . $feed . '"'; 606 $name = $feed; 607 $link .= $title; 592 593 $output .= str_repeat("\t", $depth + 1); 594 595 if ($current_category) { 596 $_current_category = get_category($current_category); 597 598 if ($_current_category->cat_ID == $category->cat_ID) { 599 $current_class = ' class="current-cat"'; 600 } elseif ($_current_category->category_parent == $category->cat_ID) { 601 $current_class = ' class="current-cat-parent"'; 608 602 } 609 610 $link .= '>'; 611 612 if ( empty($feed_image) ) 613 $link .= $name; 614 else 615 $link .= "<img src='$feed_image'$alt$title" . ' />'; 616 $link .= '</a>'; 617 if ( empty($feed_image) ) 618 $link .= ')'; 603 604 switch ($format) { 605 case 'html': 606 $output .= "<li$current_class>"; 607 break; 619 608 } 620 621 if ( isset($show_count) && $show_count ) 622 $link .= ' (' . intval($category->category_count) . ')'; 623 624 if ( isset($show_date) && $show_date ) { 625 $link .= ' ' . gmdate('Y-m-d', $category->last_update_timestamp); 626 } 627 628 if ( $current_category ) 629 $_current_category = get_category( $current_category ); 630 631 if ( 'list' == $args['style'] ) { 632 $output .= "\t<li"; 633 if ( $current_category && ($category->cat_ID == $current_category) ) 634 $output .= ' class="current-cat"'; 635 elseif ( $_current_category && ($category->cat_ID == $_current_category->category_parent) ) 636 $output .= ' class="current-cat-parent"'; 637 $output .= ">$link\n"; 609 610 $output .= $before; 611 612 $output .= '<a href="' . get_category_link($category->cat_ID) . '" '; 613 614 $cat_name = apply_filters('list_cats', $category->cat_name, $category); 615 616 if (!$use_desc_for_title || empty($category->category_description)) { 617 $output .= 'title="' . sprintf(__('View all posts filed under %'), attribute_escape($cat_name)) . '"'; 638 618 } else { 639 $output .= "\t$link<br />\n";619 $output .= 'title="' . attribute_escape(apply_filters('category_description', $category->category_description, $category)) . '"'; 640 620 } 641 621 622 $output .= '>' . $cat_name . '</a>'; 623 624 if (!empty($feed) || !empty($feed_image)) { 625 $output .= ' '; 626 627 if (empty($feed_image)) { 628 $link .= '(<a href="' . get_category_rss_link(0, $category->cat_ID, $category->category_nicename) . '" title="' . attribute_escape($feed) . '">' . $feed . '</a>)'; 629 } else { 630 $link .= '<a href="' . get_category_rss_link(0, $category->cat_ID, $category->category_nicename) . '" title="' . attribute_escape(sprintf(__('Feed for all posts filed under %s'), $cat_name)) . '"><img src="' . $feed_image . '" alt="' . attribute_escape(sprintf(__('Feed for all posts filed under %s'), $cat_name)) . '" /></a>'; 631 } 632 } 633 634 if ($show_count) { 635 $output .= ' (' . intval($category->category_count) . ')'; 636 } 637 638 if ($show_last_update) { 639 $output .= ' ' . gmdate('Y-m-d', $category->last_update_timestamp); 640 } 641 642 $output .= $after; 643 644 switch ($format) { 645 case 'html': 646 $output .= '</li>'; 647 break; 648 } 649 650 $output .= "\n"; 651 642 652 return $output; 643 653 } 644 645 function end_el($output, $page, $depth, $args) {646 if ( 'list' != $args['style'] )647 return $output;648 649 $output .= "</li>\n";650 return $output;651 }652 653 654 } 654 655 655 656 class Walker_CategoryDropdown extends Walker { -
wp-includes/category-template.php
259 259 else 260 260 parse_str($args, $r); 261 261 262 $defaults = array('show_option_all' => '', 'orderby' => 'name', 263 'order' => 'ASC', 'show_last_update' => 0, 'style' => 'list', 264 'show_count' => 0, 'hide_empty' => 1, 'use_desc_for_title' => 1, 265 'child_of' => 0, 'feed' => '', 'feed_image' => '', 'exclude' => '', 266 'hierarchical' => true, 'title_li' => __('Categories')); 262 $defaults = array( 263 'show_option_all' => '', 264 'orderby' => 'name', 265 'order' => 'ASC', 266 'show_last_update' => false, 267 'style' => 'list', 268 'show_count' => false, 269 'hide_empty' => true, 270 'use_desc_for_title' => true, 271 'child_of' => false, 272 'feed' => '', 273 'feed_image' => '', 274 'exclude' => '', 275 'hierarchical' => true, 276 'title_li' => __('Categories'), 277 'before' => '', 278 'after' => '', 279 'format' => 'html' 280 ); 281 267 282 $r = array_merge($defaults, $r); 283 268 284 if ( !isset($r['pad_counts']) && $r['show_count'] && $r['hierarchical'] ) 269 285 $r['pad_counts'] = true; 286 270 287 if ( isset($r['show_date']) ) 271 288 $r['include_last_update_time'] = $r['show_date']; 289 290 // Backwards compatability 291 if (empty($r['format']) && !empty($r['style'])) { 292 $r['format'] = $r['style']; 293 294 // 'list' is the old version of 'html' 295 if ($r['format'] == 'list') { 296 $r['format'] = 'html'; 297 } 298 } 299 272 300 extract($r); 273 301 274 302 $categories = get_categories($r); 275 303 276 304 $output = ''; 277 if ( $title_li && 'list' == $style ) 278 $output = '<li class="categories">' . $r['title_li'] . '<ul>'; 305 306 if ($style == 'list' && !empty($title_li)) { 307 $output .= '<li class="categories">' . $title_li . "\n"; 308 } 279 309 280 310 if ( empty($categories) ) { 281 if ( 'list' == $style ) 282 $output .= '<li>' . __("No categories") . '</li>'; 283 else 284 $output .= __("No categories"); 311 switch ($format) { 312 case 'html': 313 $output .= "<ul>\n<li>"; 314 break; 315 } 316 317 $output .= $before . __('No categories') . $after; 318 319 switch ($format) { 320 case 'html': 321 $output .= "</li>\n</ul>"; 322 break; 323 } 285 324 } else { 286 325 global $wp_query; 287 326 … … 292 331 $depth = 0; // Walk the full depth. 293 332 else 294 333 $depth = -1; // Flat. 334 335 switch ($format) { 336 case 'html': 337 $output .= '<ul>'; 338 break; 339 } 340 341 $output .= "\n"; 295 342 296 343 $output .= walk_category_tree($categories, $depth, $r); 344 345 switch ($format) { 346 case 'html': 347 $output .= '</ul>'; 348 break; 349 } 350 351 $output .= "\n"; 297 352 } 298 353 354 // Backwards compatability 299 355 if ( $title_li && 'list' == $style ) 300 $output .= '</ul></li>';356 $output .= "</li>\n"; 301 357 302 358 echo apply_filters('wp_list_categories', $output); 303 359 }