function wpm_print_tree($menuid, $item_id, $prev_id, $level, $class) { global $wpm_options, $wpm_error; $item = wpm_read_node($item_id); $next_id = $item->side; $menu = wpm_read_node($menuid); $class = $class == "" ? "alternate" : ""; $url = $wpm_options->menubar_url; $url_up = $wpm_options->form_action . '&action=swap&menuid=' . $menuid . '&itemid=' . $prev_id; $url_down = $wpm_options->form_action . '&action=swap&menuid=' . $menuid . '&itemid=' . $item->id; $url_edit = $wpm_options->form_action . '&action=edit&menuid=' . $menuid . '&itemid=' . $item->id; $url_delete = $wpm_options->form_action . '&action=delete&menuid=' . $menuid . '&itemid=' . $item->id; $up = $prev_id ? "<a href='{$url_up}' class='edit' title='" . __('move up', 'wpm') . "'>\r\n\t\t\t\t<img src='{$url}/up.gif' /></a>" : ""; $down = $next_id ? "<a href='{$url_down}' class='edit' title='" . __('move down', 'wpm') . "'>\r\n\t\t\t\t<img src='{$url}/down.gif' /></a>" : ""; $image = $menu->features['images'] == true && $item->imageurl ? "<img src=\"{$item->imageurl}\" height=\"16\" width=\"16\" />" : ''; $edit = "<a href='{$url_edit}' class='edit'>" . __('Edit', 'wpm') . "</a>"; $delete = "<a href='" . wp_nonce_url($url_delete, 'delete_' . $item->id) . "' class='delete'>" . __('Delete', 'wpm') . "</a>"; $name = wpm_display_name($item); if ($item->down && in_array($item->type, array('CategoryTree', 'PageTree', 'TagList'))) { $name = "<strong style=\"color:red;\">{$name} *</strong>"; $wpm_error = 'ghostchildren'; } echo "<tr class=\"{$class}\">\r\n\t\t<td align='center'>{$up}</td>\r\n\t\t<td align='center'>{$down}</td>\r\n\t\t<td>" . str_repeat("— ", $level) . "{$image} {$name}</td>\r\n\t\t<td>{$item->type}</td>\r\n\t\t<td>"; $sel = wpm_display_selection($item); if ($sel[1]) { echo "<strong>{$sel[0]}</strong> {$sel[1]} "; } echo wpm_display_fields($item); echo "</td>\r\n\t\t<td align='center'>{$edit}</td>\r\n\t\t<td align='center'>{$delete}</td>\r\n\t\t</tr>\n"; if ($item->down) { $class = wpm_print_tree($menuid, $item->down, 0, $level + 1, $class); } if ($item->side) { $class = wpm_print_tree($menuid, $item->side, $item_id, $level, $class); } return $class; }
function _wpm_is_descendant($node_id, $parent_id, $level = 0) { if ($node_id == $parent_id) { return true; } $item = wpm_read_node($parent_id); if ($item->down) { if (_wpm_is_descendant($node_id, $item->down, $level + 1)) { return true; } } if ($level && $item->side) { if (_wpm_is_descendant($node_id, $item->side, $level)) { return true; } } return false; }
function wpm_item_list($item_id, $list, $level) { $item = wpm_read_node($item_id); if ($level > 0) { $name = wpm_display_name($item); $list[$item->id] = str_repeat("— ", $level - 1) . $name; } if ($item->down) { $list = wpm_item_list($item->down, $list, $level + 1); } if ($item->side) { $list = wpm_item_list($item->side, $list, $level); } return $list; }