function wpm_move_item($old_item_id, $new_parent_id) { if ($old_item_id == 0) { return false; } $old_item = wpm_old_read_node($old_item_id); $new_item = wpm_create_child($new_parent_id, unserialize(serialize($old_item))); wpm_move_item($old_item->down, $new_item->id); wpm_move_item($old_item->side, $new_parent_id); return true; }
function wpm_append_nodes($id) { global $wpm_options; $wpm_options->update_option = false; $item = wpm_readnode($id); switch ($item->type) { case 'TagList': $item->down = 0; _wpm_update_links($item); $node->type = 'Heading'; $node->name = wpm_display_name($item); wpm_update_node($item->id, $node); $tags = wpm_get_tags(); foreach ($tags as $tag) { if (in_array($tag->term_id, (array) $item->exclude)) { continue; } $node->type = 'Tag'; $node->name = $tag->name; $node->selection = $tag->term_id; wpm_create_child($item->id, $node); } break; case 'CategoryTree': $item->down = 0; _wpm_update_links($item); $node->type = !$item->selection || in_array($item->selection, (array) $item->headings) ? 'Heading' : 'Category'; $node->name = wpm_display_name($item); wpm_update_node($item->id, $node); $cats = wpm_get_cats(); $newparents = array($item->selection); while (++$level) { if ($item->depth > 0 && $level > $item->depth) { break; } if (count($newparents) == 0) { break; } $parents = $newparents; $newparents = array(); foreach ($cats as $cat) { if (in_array($cat->term_id, (array) $item->exclude)) { continue; } if (in_array($cat->parent, $parents)) { $newparents[] = $cat->term_id; $node->type = in_array($cat->term_id, (array) $item->headings) ? 'Heading' : 'Category'; $node->name = get_cat_name($cat->term_id); $node->selection = $cat->term_id; $parent = wpm_find_node($item->id, 'selection', $cat->parent); wpm_create_child($parent->id, $node); } } } break; case 'PageTree': $item->down = 0; _wpm_update_links($item); $node->type = !$item->selection || in_array($item->selection, (array) $item->headings) ? 'Heading' : 'Page'; $node->name = wpm_display_name($item); wpm_update_node($item->id, $node); $pages = wpm_get_pages(); $newparents = array($item->selection); while (++$level) { if ($item->depth > 0 && $level > $item->depth) { break; } if (count($newparents) == 0) { break; } $parents = $newparents; $newparents = array(); foreach ($pages as $page) { if (in_array($page->ID, (array) $item->exclude)) { continue; } if (in_array($page->post_parent, $parents)) { $newparents[] = $page->ID; $node->type = in_array($page->ID, (array) $item->headings) ? 'Heading' : 'Page'; $node->name = get_the_title($page->ID); $node->selection = $page->ID; $parent = wpm_find_node($item->id, 'selection', $page->post_parent); wpm_create_child($parent->id, $node); } } } break; } $wpm_options->update_option = true; }
if ($wpm_item->type == 'Category') { $wpm_item->type = 'CategoryTree'; } if ($wpm_item->type == 'Tag') { break; } } if ($order == 0) { $created = wpm_create_child($menuid, $wpm_item); } else { switch ($order) { case '1': $created = wpm_create_before($orderid, $wpm_item); break; case '2': $created = wpm_create_child($orderid, $wpm_item); break; case '3': $created = wpm_create_after($orderid, $wpm_item); break; default: $created = 0; break; } } if ($created) { $msg = 1; } else { $msg = 4; } break;