PmForm

This group is used to document the Cookbook:PmForm recipe.

There are several steps for PmForm to work.

  1. Download pmform.zip and extract it to your PmWiki directory on your server
Note: You need to put pmform.php direct into your cookbook/ directory, and Site.PmFormTemplates into your wikilib.d directory.
  • Xes: I don't recommend putting Site.PmFormTemplates directly in wikilib.d because that's part of the upgrade tree and should not be modified by users or recipes. I created my own xeslib.d directory and put Site.PmFormTemplates into it, adding this as the very FIRST line in my config.php:
    $WikiLibDirs = array(&$WikiDir,new PageStore('$FarmD/xeslib.d/{$FullName}'),new PageStore('$FarmD/wikilib.d/{$FullName}'));
    This is how you can create your own lib (library) directory ("lib.d") name for wiki page templates separate from user-overwritten wiki.d files.
  • ChrisK: Any installation of files into wikilib.d also runs into issues with using WikiFarms where the wikilib.d directory may not have permissions allowing it to be written to. It thus seems reasonable to move the Site.PmFormTemplates file to the wiki.d directory.
  1. Modify your local/config.php or other local customization file, enabling PmForm
    include_once("$FarmD/cookbook/pmform.php");
  2. add a line in your config.php file to define the reference for every unique (:pmform reference:) directive:
    $PmForm['reference'] = 'subject="Email from '.$WikiTitle.'" mailto=yourname@example.com form=#yourform fmt=#yourformpost from=myname@myexample.com';
  3. Create wiki page called Site.LocalTemplates if it doesn't exist already
Simon: preferable a separate template page for forms should be used, e.g. Site.LocalForms
  1. Modify Site.LocalTemplates, editing the form code creating the form (named #yourform from the config.php line above) and the output format (named #yourformpost from the config.php line above)
  2. Inserting the (:pmform reference:) directive into any wiki page where you want this specific form

Starting points:

  • Basic Email Form - a walkthrough creating a basic email form with honeypot & captcha (by Xes)
  • MailForm - forms for sending electronic mail
  • HoneyPot - filter posts from robots
  • Comments - Add comments to current page, or a comment page
  • Data Forms - Add data to pages

Unofficial user's notes about PmForms:


All relevant pages in the PmForm group:

Category: Forms
 0: 00.00 00.00 config start
 1: 00.01 00.00 config end
 2: 00.06 MarkupToHTML begin
 3: 00.08 ReadApprovedUrls SiteAdmin.ApprovedUrls begin
 4: 00.09 ReadApprovedUrls SiteAdmin.ApprovedUrls end
 5: 00.17 FPLTemplate: Chain begin
 6: 00.17 FPLTemplate: FPLTemplateLoad
 7: 00.17 FPLTemplate: FPLTemplateDefaults
 8: 00.17 FPLTemplate: FPLTemplatePageList
 9: 00.17 MakePageList pre
10: 00.17 PageListSources begin
11: 00.17 PageStore::ls begin wiki.d/{$FullName}
12: 00.22 PageStore::ls merge wiki.d/{$FullName}
13: 00.30 PageStore::ls end wiki.d/{$FullName}
14: 00.31 PageStore::ls begin $FarmD/wikilib.d/{$FullName}
15: 00.31 PageStore::ls merge $FarmD/wikilib.d/{$FullName}
16: 00.31 PageStore::ls end $FarmD/wikilib.d/{$FullName}
17: 00.31 PageListSources end count=20
18: 00.31 PageListSort pre ret=4 order=name
19: 00.31 MakePageList items count=20, filters=
20: 00.31 MakePageList post count=20, readc=0
21: 00.31 PageListSort begin
22: 00.31 PageListSort sort
23: 00.31 PageListSort end
24: 00.31 MakePageList end
25: 00.31 FPLTemplate: FPLTemplatePmWikiOrg
26: 00.31 MarkupToHTML begin
27: 00.31 MarkupToHTML end
28: 00.31 FPLTemplate: FPLTemplateSliceList
29: 00.31 FPLTemplate: FPLTemplateFormat
30: 00.35 MarkupToHTML begin
31: 00.40 MarkupToHTML end
32: 00.40 FPLTemplate: FPLTemplatePmWikiOrgPostFormat
33: 00.40 FPLTemplate: Chain end
34: 00.40 MarkupToHTML end
35: 00.41 MarkupToHTML begin
36: 00.48 MarkupToHTML end
37: 00.48 MarkupToHTML begin
38: 00.50 MarkupToHTML end
39: 00.50 now