i am using the book module,book access and the Outline designer module to provide better experience for users, the problem is the outline designer shows a link "child page" to rearrange child pages in book outline to site administrator only, the "child page" links is not available to other users. when i enabled the "administrator outline" for user in permission it worked fine but now users can edit other users content which i don't want, is there a way to create a separate tab for outline designer instead of book outline for users so they can edit or rearrange child pages for the book they own.
"Thank you"

Comments

btopro’s picture

Version: 7.x-2.0-rc2 » 7.x-2.x-dev
Assigned: smatron » Unassigned
Priority: Major » Normal

You are correct, there is no UI based way of getting there because of it utilizing the core book administration page. In D6 the OG sub-module had a way around this by providing its own path / page to items. Also, the outline child pages sub-module allows for utilizing the outline designer via the outline tab if you navigate to the book-root-node in question. Outline Child pages needs some minor clean up but is probably your best bet towards achieving this functionality. You may also be able to craft a view to only show what they have access to edit and provide a link in the view to take them to the outline page.

smatron’s picture

I have found a way which users can access the outline designer, with out administrator outline permission.
With book access module enable and outline tab for users check, users can now have an "outline" tab for editing book outline, but if user add "/children" at the end of the url and hit enter, assuming book outline page is open, this url would take them to outline designer.
Now i got one problem left how would i create a tab or link that would do all of that.

memelissaann’s picture

You can use views to accomplish this. Create a new view with 2 fields - Node: NID and Global: Custom Text (you may need an extra module like views hacks or views extra or something to get the global text field, I cannot remember for sure). Then add an argument Node: NID > select "provide default argument" >then select "Node ID from URL" and click update. Then open up the Global: Custom Text field that you created and add <a href="/node/[nid]/children"></a> to the "Text" field and click update, you may need to adjust this according to your site alias setup. The token is provided by the Node: NID field so it needs to be on the top of the field list. You may want to add a filter for content (Node) type. Finally create a block display, save your view, then go to your block configuration page or context configuration page and add the block where you want the link to appear. Alternatively, you can install the views attach module and use that instead of blocks, which will append your view onto the individual node pages.

smatron’s picture

Is there a way to accomplish this without view, i mean by writing code, because i want create a new tab on book page.
"Thank you"

btopro’s picture

well ya you can do anything with code. You'd need a different permissions mechanism to allow someone to outline / have ownership of part of the outline and be able to edit just that piece. May want to fork the outline_child_pages module and work up a different permissions mechanism then post here / patch. Would be willing to accept code that brings this functionality into D7 and helps get outline_child_pages back to something more functional.

btopro’s picture

Issue summary: View changes
Status: Active » Postponed