# Every Plugin Help Page should be categorized. Select the Categorize Tab and check "Documentation » Plugins". This allows all of the Plugin Help Pages to be displayed at the bottom of the page under __Related Items__
# All of the Plugin Help Pages should have a Description - I use: The Plugin xxx Help Page
# Most of the following should be included on every Plugin Help Page.
! Introduction
{maketoc} Provide a short Introduction. This should briefly state what the Plugin does. I also like to include a link to the page ((DataPlugins)).
! History
Most of the Plugins originally came from TikiWiki but check the source file (I made sure that all of the Authors and their email address were correct). Lets give credit where it is due.
If it does come from TikiWiki - then search [http://tikiwiki.org|TikiWiki] or the [http://doc.tikiwiki.org|TikiWiki Doc Site] for information on it. I don't know how to stress this enough - but __don't rely on that source too heavily__. The original idea and source may have came from TikiWiki - but every Plugins was rewritten for bitweaver and __many operational changes were made!__ We did try to maintain backwards compatibility - but don't bet on it! The largest change was the inclusion of the variable __~np~$pluginParams['requires_pair'] => FALSE~/np~__ which allows a Plugin to be called without a ending Code Block. Most of the Plugins did not require an ending Code Blocks - so they were changed. Some parameter names were also changed. __Again - Check the Code!__ You don't have to be able to write Php or JavaScript to understand what is going on here.
If you get stuck - you might try reading the ((Tutorial - Liberty Plugins)). If you simply __Can Not__ find the answer and need it __Now__ - the faster response is ((ConnectingToIrc|the #bitweaver IRC channel on FreeNode)). Slower methods include - the [http://www.bitweaver.org/forums/viewforum.php?f=5&sid=94636f848a59dcfa9386329c4a734225|bitweaver Support Forum] or sending an email to [mailto:bitweaver-core@lists.sourceforge.net|The bitweaver Developers Mailing List].
Finally - you just might find a bug during your efforts. I hope that isn't the case - but if it happens - Please Report It. The link to do that is [https://sourceforge.net/tracker/?group_id=141358&atid=749176|bitweaver Bugs on SourceForge.net]
! Summary
Provide a more detailed explanation of what the Plugin does.

! How It Works?
If the variable __~np~$pluginParams['requires_pair'] => TRUE~/np~__ then include:
This Plugin operates on the data placed between the Code Blocks - see the Heading __Between The Code Blocks__
If the variable __~np~$pluginParams['requires_pair'] => FALSE~/np~__ then include:
This Plugin operates with a single Code Blocks. That is - only a single call to the Plugin is required

Provide a brief explanation of how the Plugin operates. That should include when and where it's used.

!- The Plugin's Help
The Plugin ))PluginHelp(( has been rewritten and should be available soon - so change xxxxx in the following line to the TAG of the Plugin.
{PLUGINHELP plugin='xxxxx' }

! Between the Code Blocks
This heading is needed when a Plugins has the variable __~np~$pluginParams['requires_pair'] => TRUE~/np~__
For those of you who don't know - when we say the word Code Block - we are referring to the way you call a Plugin. Some Plugins only use a single Code Block to operate while others need two. Examples are:
* __~np~{AGENTINFO info= }~/np~__ requires a Single Code Block
* __~np~{CODE source= num= }Source Code to be displayed{/CODE}~/np~__ requires Two Code Blocks. The first is __~np~{CODE source= num= }~/np~__ and the second is __~np~{/CODE}~/np~__.
Nearly all Plugins that require 2 Code Blocks do so because they expect a lot of data and are designed to work on it.

Some Plugins use ))Key-Words(( or some other device between the Code Blocks. If this one does - you need to specify what it is and how it works like this:
The Data between the Code Blocks falls into three Classifications: __Class A / Class B / & Class C__.
* A Character Sequence is used to separate that Data into their appropriate Classes. By Default Character Sequence is __***__ but can be redefined with the Parameter __SomeParameterName__.
* __Class A__ does this.
* __Class B__ does that.
* __Class C__ does the other thing.

! Examples
Most of the examples demonstrate what the Plugin does by setting Parameters and explaining what they are there for. When there are a lot of parameters - this becomes difficult. One method - uses a build-up scheme to make sure everything is covered. Each Example adds a single parameter to those used in the previous Example. When a parameter has several options (Key Word parameters) then each is defined in a ))sub-heading((.

When a parameter does something unexpected or makes an exception that should be noted - make sure it is noticed. As an example - the Plugin ))PluginHelp(( was originally designed to use the required parameter __plugin__. A second (undocumented) parameter is being added and when used - the __plugin__ parameter is ignored. It will take a lot of words to document that so that it __will__ be not be misunderstood.

At any rate - be sure that each Example shows what is happening. Provide a box with the parameters being set. This is easily done by coping the ))WikiSyntax(( that calls the Plugin and placing it inside __~126~ np ~126~__ blocks like this: ^__ ~np~{AGENTINFO info='server' }~/np~ __ becomes __~ np ~{ ))AGENTINFO(( info='server' }~ /np ~__^
With some Plugins - this just does not work. If it doesn't - try replacing the __{__ character with __~126~123~126~__. When you do - remember that an all capitalized words are normally converted into links - so you will need to prevent that by placing __~41~)__ characters in front of the Plugins Name and __~40~(__ behind it. That means that our example should look something like this:
^__ ~np~{AGENTINFO info='server' }~/np~ __ becomes __~126~123~126~)~41~))AGENTINFO((~41~( info='server' }^__
You might also decide to replace the trailing __}__ character as well - even though it doesn't normally cause a problem. A trailing __}__ character is replaced with __~126~125~126~__. Our example would now look like this: ^__ ~np~{AGENTINFO info='server' }~/np~ __ becomes __~126~123~126~)~41~))AGENTINFO((~41~( info='server' ~126~125~126~^__

Since I had to play fast and loose to get those three examples to display right - here are our three examples as you would use them:
^__ ~np~{AGENTINFO info='server' }~/np~ - using np__^ {AGENTINFO info='server' }
^__~123~))AGENTINFO(( info='server' } - replacing the {__^ {AGENTINFO info='server' }
^__~123~))AGENTINFO(( info='server' ~125~ - replacing both { & }__^ {AGENTINFO info='server' }
Page History
Date/CommentUserIPVersion
18 May 2008 (20:45 UTC)
laetzer85.178.10.628
Current • Source
Lee LaMont Bell Jr.24.117.169.2413
View • Compare • Difference • Source
Lee LaMont Bell Jr.24.117.169.2412
View • Compare • Difference • Source
Lee LaMont Bell Jr.24.117.169.2411
View • Compare • Difference • Source