Create Book vs create Book Page...

Is there a way to have distinct links (URL paths) to one vs the other? Also, how do I force each user to create books to home pages, and prevent any cross-user posting/editing? (meaning that no user can post in another user's books)

I'm a little confused on the parent/child model of Drupal nodes, particularly books. I first thought I'd be able to create a new content type, then setup drupal with a workflow to force this content-type to be allowed only within a user's own self-created books (or some type of project area).

In other words, I'm trying to figure out how to assign a content type to be a child of another content type (or create a custom content-type that is book-style), and force the relationship. Ideally, I'd be able to create a Book-style content type that is NOT named "book", so that on the various pages where the word "book" appears (eg, create content), it would be replaced by the name of the book-style parent content type. "Project", for example.

My target is to allow users of a particular role create "Projects" (books/outlines/whatever). Then, the originator/owner of a project can create objects (pages) within the project that contain taxonomy, file attachments, etc. Both the parent project and the child pages need to go through a workflow where they are approved. Additionally, any parent project that becomes unpublished (by any result) should cause child objects/pages to also become unpublished.

Before adopting this parent/child model I had my site and workflow built, but now I'm struggling to get the Book module to conform to this container model. Hurtle are figuring out how to
A) provide a link to create a Book -- just the parent, not a child page;
B) create book-like custom content types (E.g. I don't wart to use the word "book" anywhere;
C) create a child content-type that can only be a child of my book-like content type.
D) have a publishing relationship so that children are only visible if their parent projects are also visible.

I've looked at Book manager (but like many 3rd party modules there's no documentation -- just a tarball, and after enabling it I've scoured my admin pages for some inkling of where it's own admin panel is or what it's added to others -- why do developers often omit documentation?)
But if I enable book_manager's "create/add content to personal books" and disable core book's "add content to books" then the user can't see any book when adding a page. And if I enable core book's "add content to books" then the user can add to anyone's books.

This all seems like such a basic need of this type of site, so please if anyone has done this then I'd appreciate advice. Thanks.

Comments

mudd’s picture

I resolved my trouble with BM -- user error: I had been logged into another instance of my site using the same cookie prefix. I also sorted out the design of books and adding alternate content types to books.

But I'm still having trouble with users not be able to add pages to unpublished personal books. I commented on the Book Manager issues page http://drupal.org/node/353039, but this seems to be a problem with drupal6's book.module or access model.

Since my workflow requires approval of both the project outline and each child page, the user can't add pages to their projects until the project is published.

Is there a way to force unpublished books to appear in the Book outline book field of the node edit view? This would allow a book to be assembled before it's approved/published via a workflow. Alternately, can a Book node be hidden from views (including it's default view) while nothing inside it is viewable?

I'd also like to force a two-level model -- a Book node (content-type 1) and a Page (content-type 2) -- disallowing a new node of content-type 1 being created with the Book as the parent, and disallowing a new node of content-type 2 being created with a page as its parent. (I'm surprised their isn't an advanced panel for settings to dictate which CT's can be pages of which other CT's, how many levels are allowed, etc).

marvix’s picture

Hi

Did you ever found a solution for this issue ?!

jimiobrien’s picture

Did you find a workaround?

Namely:
1. Prevent users (with permissions to add their own book and book pages) from being able to add child pages to any other book (this is a bizarre oversight).
2. Restrict the creation of books to one content type and the creation of book pages to another content type.

I've looked at a few contribs and not found anything ideal, the same issues occur in D7.

This branch http://drupal.org/node/1042770 is pretty much the problem solver for "Permission to add child pages to __only own__ books"

But I've not been able to implement it.