[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
>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!
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.
John Rankin

More information about the pmwiki-users mailing list