Make WordPress Core


Ignore:
Timestamp:
04/13/2006 04:40:48 AM (20 years ago)
Author:
ryan
Message:

Move page walkers to classes. Props David House. fixes #2593

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/template-functions-post.php

    r3701 r3704  
    279279*/
    280280
     281function walk_page_tree() {
     282    $walker = new Walker_Page;
     283    $args = func_get_args();
     284    return call_user_func_array(array(&$walker, 'walk'), $args);
     285}
     286
     287function walk_page_dropdown_tree() {
     288    $walker = new Walker_PageDropdown;
     289    $args = func_get_args();
     290    return call_user_func_array(array(&$walker, 'walk'), $args);
     291}
    281292
    282293function &get_page_children($page_id, $pages) {
     
    382393    if ( ! empty($pages) ) {
    383394        $output = "<select name='$name'>\n";
    384         $output .= walk_page_tree($pages, $depth, '_page_dropdown_element', '', '', '', $selected);
     395        $output .= walk_page_dropdown_tree($pages, $depth, $r);
    385396        $output .= "</select>\n";
    386397    }
     
    390401    if ( $echo )
    391402        echo $output;
    392 
    393     return $output;
    394 }
    395 
    396 function _page_dropdown_element($output, $page, $depth, $selected) {
    397     $pad = str_repeat('&nbsp;', $depth * 3);
    398 
    399     $output .= "\t<option value=\"$page->ID\"";
    400     if ( $page->ID == $selected )
    401         $output .= ' selected="selected"';
    402     $output .= '>';
    403     $title = wp_specialchars($page->post_title);
    404     $output .= "$pad$title";
    405     $output .= "</option>\n";
    406403
    407404    return $output;
     
    429426        global $wp_query;
    430427        $current_page = $wp_query->get_queried_object_id();
    431         $output .= walk_page_tree($pages, $r['depth'], '_page_list_element_start', '_page_list_element_end', '_page_list_level_start', '_page_list_level_end', $current_page, $r['show_date'], $r['date_format']);
     428        $output .= walk_page_tree($pages, $depth, $current_page, $r['show_date'], $r['date_format']);
    432429
    433430        if ( $r['title_li'] )
     
    441438    else
    442439        return $output;
    443 }
    444 
    445 function _page_list_level_start($output, $depth) {
    446     $indent = str_repeat("\t", $depth);
    447     $output .= "$indent<ul>\n";
    448     return $output;
    449 }
    450 
    451 function _page_list_level_end($output, $depth) {
    452     $indent = str_repeat("\t", $depth);
    453     $output .= "$indent</ul>\n";
    454     return $output;
    455 }
    456 
    457 function _page_list_element_start($output, $page, $depth, $current_page, $show_date, $date_format) {
    458     if ( $depth )
    459         $indent = str_repeat("\t", $depth);
    460 
    461     $css_class = 'page_item';
    462     if ( $page->ID == $current_page )
    463         $css_class .= ' current_page_item';
    464 
    465     $output .= $indent . '<li class="' . $css_class . '"><a href="' . get_page_link($page->ID) . '" title="' . wp_specialchars($page->post_title) . '">' . $page->post_title . '</a>';
    466 
    467     if ( !empty($show_date) ) {
    468         if ( 'modified' == $show_date )
    469             $time = $page->post_modified;
    470         else
    471             $time = $page->post_date;
    472 
    473         $output .= " " . mysql2date($date_format, $time);
    474     }
    475 
    476     return $output;
    477 }
    478 
    479 function _page_list_element_end($output, $page, $depth) {
    480     $output .= "</li>\n";
    481 
    482     return $output;
    483440}
    484441
Note: See TracChangeset for help on using the changeset viewer.