BoltWire

Welcome Tour

Form Processing

As I've mentioned before, the secret sauce that sets BoltWire apart from any other content management system currently available is its amazing forms processing capabilities.

Rather than hardcoding site actions, BoltWire uses simple forms in your site (called action pages) to tap into a powerful, yet secure, form processor. The advantage to this approach is you can then modify these action pages any way you desire. You can also create entirely new actions, that tap into the inner workings of BoltWire with virtually no limitation.

Even better, you can put forms on any page in your site, including key zone pages, opening up even more possibilities.

We have worked hard to make our form generation markup as simple and intuitive as possible. It comes with full support for all basic html input types, and has many advanced filtering techniques to ensure you only get just the right data.

And we have given our form processor the ability to respond to a wide range of instructions. There are nearly 30 powerful commands built into BoltWire that enable you to accomplish just about anything you would want in a web form. By combining these forms and commands with other elements of markup--you can create complex and sophisticated actions, in a snap!

To illustrate how easy it is to do something in BoltWire, lets walk through the process of creating a simple FAQ page for your site.

Step One: Input FAQs

Our first step is to create an input form an admin can use to enter their questions and answers. We'll create an action page for this called action.faqs, and save our markup there. Let's give it the following content:

! Input FAQ
[form]
Question: [text question]
Answer: [box answer][box]
[submit SAVE]
[form]

This markup generates a simple input form with a text field for the question and an text box (textarea) for the answer, plus a save button. However, the form won't do anything when the button is clicked because we haven't yet added any commands. Commands tell BoltWire what to do with this form is submitted. So let's tell it to save the information.

! Input FAQ
[form]
Question: [text question]
Answer: [box answer][box]
[submit SAVE]
[command info page=info.faqs field=# value="{=question} | {=answer}"]
[command nextpage welcome.faqs]
[form]

Here the info command saves the question and answer into a data field on page info.faqs. The '#' symbol is a special shortcut used in BoltWire to created a new record id on the page. The nextpage command tells BoltWire where to forward the user after the form is processed, in this case page welcome.faqs which we haven't created yet.

Now let's polish things up. We'll put the form into a table and add some styling so it is formatted nicely. And some basic instructions.

! Input FAQ
Use this form to enter a new FAQ:
[form]
[t]
[r][c]Question: [c][text question style='width: 300px']
[r][c]Answer: [c][box answer rows=5 style='width: 300px'][box]
[r][c][c][submit SAVE]
[t]
[command info page=info.faqs field=# value="{=question} | {=answer}"]
[command nextpage welcome.faqs]
[form]

Step Two: Retrieve FAQs

Of course, we're not finished yet. We need some way to access that information. That's where our welcome.faqs page comes in.

Let's create that page and add a simple form a visitor can use to search our FAQs:

! Search FAQs
Enter a word to search for questions on that topic:
[form][text find '{?find}'] [submit SEARCH][command nextpage {p}&find={=find}][form]

Basically, we create a simple input form to get their search word, and then pass that word back to the same page as part of the url. Now let's add the search function, and a link only admins will see to add new FAQs:

! Search FAQs
Enter a word to search for questions on that topic:
[form][text find '{?find}'] [submit SEARCH][command nextpage {p}&find={=find}][form]

[if admin][[action.faqs|ADD FAQ]][if]
[(query page=info.faqs text='{?find}' fmt='**{+1}**<br>{+2}' if='set {?find}')]

Basically, that last line scans our info page for lines containing the search term, and then generates an output of just those lines, with the question ({+1}) in bold, and the answer ({+2}) in normal font. And the "if" parameter means we'll only perform this search if a search has been requested.

Between these two forms we have something you can actually use. Just copy and paste the first form to action.faqs and the lines above to welcome.faqs. Everything should spring to life instantly, just that easy!

Just the Beginning

Admittedly, this is a very simple script, but it only scratches the surface of the features available in BoltWire. The "Help Hotline" in the default BoltWire installation, for example, has a way for members to ask questions, and then when the admin answers that question, it gets added to the faq list automatically for the next person. And if they are logged in, it sends a copy of that answer to their message inbox. Feel free to check out those forms and see how they are constructed.

There's actually a crazy amount of functionality in our forms processor. After all, it runs everything in BoltWire! And by combining those commands with our variables, conditions, and functions, you can create just about any kind of site interactions you want, right through your browser. And if you do need some special capability BoltWire can't handle, it usually only requires adding some small missing piece to all the other pieces already in our system. That makes adding new features a very simple process.

As if you didn't have enough flexibility already, starting with BoltWire 7, we've bundled a whole variety of plugins, skins, and language files to make BoltWire more powerful. And if you are a developer, it's super easy to create your own extensions. Click here to keep reading:

Free Extensions