This can all be done quite easily but you will need to be comfortable using categories and live templates
Lets assume we are using a heirarchy of categories called parent, child and grandchild. Of course you can call your categories whatever you want.
click a button to create a child-page of the one they're viewing
1. You will need a parent page. So create a page called parent
On that page add a button to create a child page in the child category using a title you specify. You might also want a pagetree module to show the heirarchy of pages:
[[include :snippets:newpage
|size=250px
|category=child
|parent=parent
|button=Create child page
]]
++ Page Tree
[[module PageTree root="parent"]]
include a link to return to the parent-page they were viewing
2. Add a live template for the child category. So add a page called child:_template and on that page add the following including the code to add a grandchild page and list grandchild pages. The parent is the child page. You can also include a link to go back to the parent page the user came from:
+++ Go back to %%parent_title_linked%%
%%content%%
+++ Grandchild pages under %%title%%
[[module ListPages category="grandchild" perPage="25" order="name" parent="%%full_page_name%%" separate="false" prependLine="||~ Grandchild Page ||" appendLine="||~ ||"]]
|| %%linked_title%% ||
[[/module]]
+++ Add a new grandchild page under %%title%%
Enter the name of the grandchild page then press Enter:
[[include :snippets:newpage
|category=grandchild
|parent=%%fullname%%
]]
3. Add a live template for the grandchild category. So add a page called grandchild:_template and on that page add the following including the code to go back to the child page the user came from:
+++ Go back to %%parent_title_linked%%
%%content%%
You can see an example of all this at http://www.rfpg.org/legal:styles and at http://vineyard.wikidot.com/parent
Edit: when creating live template pages, for example child:_template, you MUST create these pages by entering the pagename in the browser address bar. Do not use the newpage module to create live template pages as it will strip out the leading underscore.