[pmwiki-users] Linking WikiForms to WikiForms
John Rankin
john.rankin at affinity.co.nz
Mon Aug 21 19:12:31 CDT 2006
On Tuesday, 22 August 2006 9:33 AM, Hsing-Foo Wang <hsingfoo at gmail.com> wrote:
>Hi all,
>
>I am trying to setup a 'system' within pmwiki using WikiForms. The
>idea is like this:
>
>I would like to maintain projects, where per project a WikiForm is
>being used to list all Projects or create a new one, using the
>WikiForm ViewTemplate (Which option is very cool!)
>
>I would like the projectpage (e.g. Projects.00001) to hold options to
>create a discussion, issue, activity or files (upload), where all but
>upload are also WikiForms. The challange I have is to autocreate an
>initial page for each of the above possibilities also based on
>WikiForms AND (very! important), link to the original project and visa
>versa.
>
>If there are entries in of the of the 'issues', 'activity' etc they
>should be listed on the general project page (again Projects.00001 as
>an example) throught the WikiForm directive (:wikilist:) so they can
>be accessed immediately.
>
>Overall goal is to have a general Project page act as an 'dashboard'
>for the project.
>
>Do I make any sence? Any help appreciated!
>
>Cheers,
>-HF
>
This may be beyond the current WikiForms recipe's capabilities,
but let's see how far we can get. You'll need to examine the
following advanced forms features:
- Specify the type of form to use with a "group suffix"
If you have groups ProjectX-Issue and ProjectX-Activity the
recipe will use Issue.FormTemplate and Activity.FormTemplate,
so ProjectX-Issue and ProjectY-Issue will both use the
Issue.FormTemplate. This gives separate issue lists for ProjectX
and ProjectY, but using the same template.
- Specify a form page title with the (title) field type
This will cause the page named Project.00001 to have a title,
such as ProjectX. It also creates the option of generating
markup of the form: (:wikilist group={$Title}-Issue :) to
produce a list of issues for the current project. Note that
you don't have to give each project a title unless you choose
to; you can have groups 00001-Issue, 00001-Activity and this
will work too.
- Make a field take a particular value with the (hide) type
This option should let you generate the required wikilist
markup automatically when you create a new project. This
feature *does not* currently provide the capability you
need, as you can't properly insert (: ... :) markup
inside a "hide" field value. At the moment, you will
need to enter the required markup manually, but a fix
may be fairly straightforward.
- Define a new markup to extract the group prefix
You'll need a way to generate a link from 00001-Issue to
Project.00001. This will require you to define a new
format variable, {$GroupPrefix} that extracts the text
from in front of -... in the group name. Then you can
put this in a GroupHeader or GroupFooter in the issue
and activity groups, to link back to the project page.
The above may give some useful ideas for how to get started.
I'd be inclined to omit the title option in the first
instance and focus on getting the overall group and page
structure working, using numeric page names for everything.
On the other hand, you could use the Trac wiki, which I
think has much of what you want built in.
--
JR
--
John Rankin
More information about the pmwiki-users
mailing list