Walker markup fixes from hailin. fixes #5844

git-svn-id: https://develop.svn.wordpress.org/trunk@6835 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Ryan Boren 2008-02-14 00:54:52 +00:00
parent 3b76fae7e4
commit 7a334c8fa5
1 changed files with 12 additions and 11 deletions

View File

@ -417,12 +417,6 @@ class Walker {
$id_field = $this->db_fields['id']; $id_field = $this->db_fields['id'];
$parent_field = $this->db_fields['parent']; $parent_field = $this->db_fields['parent'];
if ($depth > 0) {
//start the child delimiter
$cb_args = array_merge( array($output, $depth), $args);
$output = call_user_func_array(array(&$this, 'start_lvl'), $cb_args);
}
//display this element //display this element
$cb_args = array_merge( array($output, $element, $depth), $args); $cb_args = array_merge( array($output, $element, $depth), $args);
$output = call_user_func_array(array(&$this, 'start_el'), $cb_args); $output = call_user_func_array(array(&$this, 'start_el'), $cb_args);
@ -432,21 +426,28 @@ class Walker {
$child = $children_elements[$i]; $child = $children_elements[$i];
if ( $child->$parent_field == $element->$id_field ) { if ( $child->$parent_field == $element->$id_field ) {
if ( !isset($newlevel) ) {
$newlevel = true;
//start the child delimiter
$cb_args = array_merge( array($output, $depth), $args);
$output = call_user_func_array(array(&$this, 'start_lvl'), $cb_args);
}
array_splice( $children_elements, $i, 1 ); array_splice( $children_elements, $i, 1 );
$output = $this->display_element( $child, $children_elements, $max_depth, $depth + 1, $args, $output ); $output = $this->display_element( $child, $children_elements, $max_depth, $depth + 1, $args, $output );
$i = -1; $i = -1;
} }
} }
//end this element if ( isset($newlevel) && $newlevel ){
$cb_args = array_merge( array($output, $element, $depth), $args);
$output = call_user_func_array(array(&$this, 'end_el'), $cb_args);
if ($depth > 0) {
//end the child delimiter //end the child delimiter
$cb_args = array_merge( array($output, $depth), $args); $cb_args = array_merge( array($output, $depth), $args);
$output = call_user_func_array(array(&$this, 'end_lvl'), $cb_args); $output = call_user_func_array(array(&$this, 'end_lvl'), $cb_args);
} }
//end this element
$cb_args = array_merge( array($output, $element, $depth), $args);
$output = call_user_func_array(array(&$this, 'end_el'), $cb_args);
return $output; return $output;
} }