I was going to post these as individual items, but I figure some of them might be impossible, and some might just be me not having figured it all out yet...
- Set content type as "must be part of book" - setting this option would only allow the option of create new book or choose an existing book
- Specify which content types can go together (i.e. books of type1 can only contain type1, books of type2 or type3 can contain type2 and type3)
- Outline tab: only allow nodes to be moved into valid books (i.e. type1 nodes would only show type1 books for the user, while type2 and type3 nodes would show type2 and type3 books)
- Allow book type to be renamed (i.e. in admin UI, type1 books would display "type1 outline", "Your page will be a part of the selected type1", etc.) Should probably allow the grouping and the pages to be renamed
- Additional permission to allow user to manage order/titles of own books (current perm is all-or-nothing and allows users to reorder other user's books)
- user URL alias in edit/outline (i.e. /[urlalias]/edit)
- ability to hide "weight" (permission?) I'd ideally like to allow users to rearrange pages by drag-drop, but not weight, since that will be confusing to casual users
To understand where I'm coming from, I'm working on a site that would (ideally) have thousands of users and many would be creating content that would be part of a book, but they are all casual users, and don't need or want to understand the concept of "books" (I'll be calling them something else, and there will be more than one type they can create).
Assuming these are valid requests (i.e. appropriate for this module), and there already a way to do it, I can post them as separate feature requests (and if somebody can point me in the right direction, I might even be able to take a crack at some of them).
Thanks
Colin
Comments
Comment #1
jgraham commentedHi Colin,
I think the hard part for all of this is overriding any features that may be provided by the core book functionality. I *think* most of this could be handled via permissions and ensuring that nobody has the core book permissions as those could/would circumvent anything the module would do this module does some similar work behind the scenes to ensure users without global book permissions cannot add content to books they do not own.
I think that what you are talking about would be best as a separate module as the functionality is quite distinct from what this module provides. What you are looking for is essentially a restricted type of book and I would suggest two config options; one global which is a list of node types an administrator creates, and another option at the book level where the previous list of node types can be further restricted by the book author. This will help make the module more general and useful to others regardless of how you intend to use it.
Regarding your last "weight" comment, that shouldn't show up if you restrict the users to only use the drag-n-drop interface.
Most, if not all, of what you are looking to accomplish sounds feasible and hook_form_alter will get you the majority of the way there. Hope that helps get you started.
Jeff
Comment #2
colin_young commentedI can see your point about a separate module. Originally I was thinking fewer modules with more features, but now I've come around to the view of more modules with smaller more focused feature sets. I think some of my ideas would also fit better in the Outline module.
I do think that there should be a restriction on reordering nodes to the author of personal books (it doesn't make much sense to allow only the author to add nodes, but allow anyone to reorder them).
Most of my suggestions are really usability issues and some could probably be made part of the core book module. I'll have to spend some time over on the D7 usability site :)
Thanks for the tips on hook_form_alter. It looks like I'm going to have to figure out how to create modules after all.