Revision [19942]

This is an old revision of URModuleHowTo made by BrianKoontz on 2008-05-17 21:29:20.


Writing a UR (User Registration) Module

This page outlines the steps that can be used to write a UR (user registration) module. UR modules are pluggable, standalone modules that are used to interface with the UR validation framework introduced in

Basically, a UR module contains all the logic necessary for alternative methods of user registration validation, and utilizes method hooks in the framework to display registration fields and text, retrieve user input, approve/disapprove registration requests, and display appropriate confirmation and error messages. Designing a UR module should never require modification to the Wikka core code libraries and routines.

About this tutorial

This tutorial outlines the development of the URInviteCodeModule, a simple module that prompts for a predetermined code before a registration request is processed. The module ships with Wikka, and can be found in the <wikka-dir>/libs/UR directory. If you are following thee tutorial, you might want to move/rename the URInviteCodeModule directory so you have the original to compare with if you run into problems.


All file references will be with respect to your top-level installation directory (the directory which contains the folders/subdirectories 3rdparty, actions, handlers, etc.). The term "folders" and "subdirectories" are used interchangeably. As an example, the UR folder that is located in the top-level libs folder will be shown as libs/UR/.

I develop on a Mac iBook using the UNIX command line, so you might have to modify your commands accordingly for other platforms.

Setting up a new module (URInviteCodeModule)

Modules must reside in the libs/UR/ folder. Start by creating a new folder:

mkdir libs/UR/URInviteCodeModule

Make libs/UR/URInivteCodeModule your current directory. From this point on, the tutorial will make the assumption that you've done this step.

cd libs/UR/URInviteCodeModule

We'll use the URDummyModule as a template, so let's copy that into our new module folder from the libs/UR/URDummyModule folder:

cp ../URDummyModule/URDummyModule.php URInviteCodeModule

All modules must extend the URAuthTmpl class. So the first step is to change the class declaration to reflect the name of your new class. Change this line:

class URDummyModule extends URAuthTmpl

to this:

class URInviteCodeModule extends URAuthTmpl

The constructor function will also need to be changed to reflect the new name you've given your modify the constructor:

function URDummyModule(&$wakka)


function URInviteCodeModule(&$wakka)

Valid XHTML :: Valid CSS: :: Powered by WikkaWiki