I'm using the book module b/c of the book outline block but still need node hierarchy so that all book content is at the same menu level.

To do that, I've set a default parent for book pages.

When creating the first book page, this works fine and the parent node is set as expected.

When creating a child book page (via the book module View -> "Add child page", not the NH Children -> Create new Child) NH gets confused by the $_GET['parent'] parameter passed by the book module and tries to override the (correct) default value. This fails and leads to a setting of "NONE" as Parent Node.

To correct this behavior, I've added the following to the code to nodehierarchy.module, line 776 (sorry, can't supply patch):

Before:

$pnid = !empty($_GET['parent']) ? (int)$_GET['parent'] : $default;

After:

$pnid = (!empty($_GET['parent']) && !(isset($node->book) && $node->book['plid'] == $_GET['parent'])) ? (int)$_GET['parent'] : $default;

What this does: It implicitly checks if the book module is activated ($node->book) and if the parent link id is the same as the $_GET['parent']. If it is, we know that the parent variable is supplied by the book module, as it has already been processed. As a result, NH defaults to the default parent node as if the parent variable weren't set.

Hope this helps somebody!