A DataPlugin Proposal

Created by: Lee LaMont Bell Jr., Last modification: 12 Jul 2005 (04:36 UTC)


This is a proposal page for the MakePage Data Plugin. Any information given here is subject to change without notification. The MakePage Plugin does Not Exist at this time.


The idea behind this plugin is to give an Admin the ability to create a lot of pages in a hurry. The page that the plugin is called from would then either be removed or used as an Index page for those pages. There are obvious security issues and problems with the latter – but they will be discussed later.

So What Would It Do?

As the name implies – DataPlugin-MakePage would create a Wiki page. The parameters passed to it are as follows:
{MakePage pname=’Page Name’ descr=’Snow White’ file='makepages.txt' p1=’FireFox’ p2=’dogs’}
  1. pname is the Name of the page to be created
  2. descr is the description of that page
  3. file is the name of a file located in the Wiki directory. It contains the contents of the page to be generated.
  4. The parameters p1 through p99 are used to contain text that would be placed on the page. Each and every instance of %1 in the file would be replaced by the contents of the parameter.
DataPlugin-MakePage returns a link to the page created and it’s description like this:
((Page Name )) - Snow White

How Would I Use This Plugin ?

As an example – Lets assume that an Admin needed to create 10 (or 1000) similar pages very quickly.
To simplify things – lets start by creating a spreadsheet to hold some data. It should look something like this:
Page Name 1 Snow White
Page Name 2 The 3 little pigs

The remaining steps are as follows:
  1. Create an Example page that looks the way the pages should look.
  2. Copy the source of that page into a Text file.
  3. Examine the Example page and identify the text that needs to be replaced. Delete that text in the Text file and replace it with the % character and a number like this: %1. Each and every %1 in the Text file will be replaced with the contents of the parameter p1 in the page created.
  4. The text removed from the Text file should be placed into the appropriate cell in the spreadsheet. i.e. %1 text placed in the cell for the variable p1
  5. Add a formula to a cell in the spreadsheet to the right of the last parameter used. The idea is to add all of the text necessary to make the plugin work – it should look like this: =CONCATENATE("{MakePage pname=’" ,A2,"’ descr=’” ,B2, “’ file=’SomeFile.txt’ p1=’” ,C2, “’}”)
    Obviously - the length of the formula is dependant on the number of parameters needed.
  6. When finished – copy the contents of the cell into a new wiki page and try it out.
  7. Repeat the last step until you are satisfied with the results – then expand the spreadsheet to include all of the pages needed – and run the plugin for real.

NOTE: I used Excel to create this formula – your spreadsheet program may have different syntax.

Security Issues

The major security issue is that the plugin would still exist on the page and viewing that page would activate it – causing it to be ran again.
Internally – this plugin will only create pages when the Administrator views a page with the plugin on it. Further – the plugin only functions if the file specified in the file parameter exists in the Wiki directory.
Even with these precautions – any page using this plugin should be locked.