A simple example plugin.

Hello,, WikiUser?!

From the source of this page:

<?plugin HelloWorld salutation="Hello," name="WikiUser" ?>

PhpWiki's plugin architecture allows you to add custom page elements to your wiki. All you have to do is extend (subclass) the WikiPlugin class and create your output via the run() method, dependend on the Wiki- or Request arguments,

  • either with the predefined HTML classes to create valid XHTML,
  • or by using templates, which are easier customizable, but generally more a mess to use and easier to create invalid XHTML.
/**
 * A simple demonstration Help:WikiPlugin.
 *
 * Usage:
 * <?plugin HelloWorld?&gt;
 * <?plugin HelloWorld
 *          salutation="Greetings, "
 *          name=Wikimeister
 * ? >
 * <?plugin HelloWorld salutation=Hi ? >
 * <?plugin HelloWorld name=WabiSabi ? >
 */

// Constants are defined before the class.
if (!defined('THE_END'))
    
define('THE_END'"!");

class 
Help:WikiPlugin_HelloWorld
extends Help:WikiPlugin
{
    
// Five required functions in a Help:WikiPlugin.

    
function getName () {
        return 
_("HelloWorld");
    }

    function 
getDescription () {
        return 
_("Simple Sample Plugin");

    }

    function 
getVersion() {
        return 
preg_replace("/ Help:n : $]/"'',
                            
"\$Revision: 1.1 $");
    }

    
// Establish default values for each of this plugin's arguments.
    
function getDefaultArguments() {
        return array(
'salutation' => "Hello,",
                     
'name'       => "World");
    }

    function 
run($dbi$argstr$request) {
        
extract($this->getArgs($argstr$request));

        
// Any text that is returned will not be further transformed,
        // so use html where necessary.
        
$html HTML::tt(fmt('%s: %s'$salutationWikiLink($name'auto')),
                         
THE_END);
        return 
$html;
    }
};

PhpWikiDocumentation Help:WikiPlugin