BoltWire is a FREE content management system written in PHP.

Its innovative architecture combined with best-in-class forms processing makes it ideal for creating complex, interactive, web applications fast...




Tutorials > Member Management

BoltWire can be used to create a powerful membership driven website. Below is a brief tutorial to introduce some of the key features and help you get started.

New Member Registration

As soon as BoltWire is installed, you should see a register link at the top and bottom of the page. Just click it to create an account. If you are an editor you can create additional accounts once you are logged in.

If you wish to collect additional information, such as email addresses, simply edit action.register to ask for the additional data. A title field can be used to gather their display name. If you are collecting email addresses, use field "email" (lower case) and it will be handled in several special ways. Let's say you also wanted to get their phone number. Your register form might look something like the following

[r][c]ID: [c][text id]
[r][c]Password: [c][password password]
[r][c]Real Name: [c][text title]
[r][c]Email: [c][text email]
[r][c]Phone: [c][text phone]
[submit REGISTER]
[command register title,email,phone]
[command login]
[command redirect true]

When the form is submitted, a page is created called using the id they supplied, and the title, email and age values are saved as data vars. The password is also saved.

You can do this to display their name (title) and a link to their member page: [[~{id}|+]]. You can send an email to or from an ID and BoltWire will look it up for you. You can generate a phone list of all your members using the list command.

If you do not want to allow visitors to self register, simply limit access to action.register at site.auth.view.

Note: there are many capabilities within BoltWire for form validation, including required fields, etc.


Once a person is registered, they can login by clicking the login link and entering their member id and password. The login form can be modified, of course, by editing action.login. For example, if you wish to track member logins, add a log command. Or you could have new members forwarded to a specific welcome page, etc, using the nextpage command.

Once a person is logged in, you can access their profile information by using the following notation:


To access a specific members info, rather than the current members info use


Member Profiles

To give members the ability to update their profile information, create a "profile" action that updates the various data fields you and put a link to it--perhaps in member.footer. See the savedata command, for details on how to setup a form that updates data fields.

[if equal {id} {p2}][[{p}&action=profile|Update Profile]][if]

To prevent people from viewing or editing another person's data, consider adding a conditional like the following on your profile action:

[if ! editor && ! equal member.{id} {p}]<(forward>[if]

This line allows editors to update user information as well. If someone else tries to modify another person's information, they are forwarded to an error page.

Member Groups

BoltWire also allows you to easily create member groups. To create a Chess Club group, simply go to action.groups. This action shows all your current groups and allows you to create new ones. Enter "chess" and page groups.chess is created.

To join a member to a group, or drop them, go to their member page ( and click the groups action ( The action now changes to give a form that joins or drops that id from any existing groups. To let members self-subscribe to a group, change the view permissions for action.groups, and give them write permissions for the groups you want them to be able to join. Better yet, create an entirely new action as simple as the following:

Join the Chess Club!
[form][submit JOIN]
[command memberships id={id} join=chess]

You will need to give members view permission for this action, and either make group.chess writable, or use an authkey.

You can also join or drop members, by manually adding or removing ids to/from the group.chess page.

Note: Group pages are automatically scanned when a person logs in, and memberships are store as session values until they log out. To update the memberships of a person who is already logged in, use the memberships? function. To show the memberships of the current user, use the {memberships} system variable. BoltWire has many built in capabilities for working with groups, including view and write protections, and an ingroup conditional. The more you know about BoltWire, the more you can do.

Site Customization

Once your member accounts are set up, it is easy to customize your site based on any profile information you have (or by groups). Suppose you asked their favorite color when they registered. You could put something like this anywhere in your wiki:

<color={~color}>some text</color>

Or if you only wanted to show a certain bit of text to members who lived in Alaska, try this:

[if equal '{~state}' 'Alaska']I like Alaska![if]

There are many more possibilities of course. This just scratches the surface...