Roadmap
After a long line of 3.xx development (not to mention the 2.xx, 1.xx, beta, and alpha development releases), BoltWire has finally released 4.xx in beta. The two guiding principles in this new release were
(1) to eliminate unnecessary features and dramatically simplify the core, and
(2) to significantly increase real power and flexibility in the core systems.
Because this upgrade is experimental and there is not an easy migration path at this point, we recommend using 4.x on new sites, and not for existing sites.
BoltWire will still be the same engine you have grown to know and love, only significantly leaner (by 30%) and meaner (in some really cool ways). Enjoy!
CHANGES FOR NEXT RELEASE- Changes ereg to preg_match in markups.php
- Removed spaces from data variable to fix bug in data action.
NEW FEATURES
There are lots of new features in BoltWire 4.xx, some of which were the reason for this massive code rewrite. Listed below are some of the more important ones:
FormsBoxes
- Can now do full filtering of form posts using required, filter=filtername/regex pattern, case=, trim, and other options. Right in the input markup
- Can now put arg parameters right in commands just like in functions. Note "session" replaced by "command" in markup. Makes it amazingly easier to simplify commands, and no name conflict between posts and commands. No more cumbersome boltcommands and things to solve recursive problems.
- Added a passform command which passes form fields invisibly between pages.
InfoVar Arrays
- Powerful Box function which allows type=code,html,markup,comment rule= lines= etc and other parameters. Fully stylable. Rules can be used in comment boxes to limit markups very effectively
Code.Settings
- Info Vars can now be split using "field: var1::var2::var3" and retrieved using {page::field::2}
- Allows for some incredibly fast data crunching reports.
Improved Conditionals
- Added a new page for setting up system wide variables (and code) very easily in your site. Available in skins also. Very cool!
Stamps
- If statements are now fully nestable up to 9 levels. :)
- If parameters can be put in commands, functions, searches, etc.
Help System
- Completely redesigned and simplified. Cut out the problematic diff code. Now can access stamped data or content directly, and easily.
- Deleted old clunky help system and replaced with a simple help action
- Added several help pages to easy new users into using BoltWire. May expand this via a plugin.
FEATURES DROPPED
A real effort was made to drop out peripheral functions that only complicated the code or could be handled fine in a plugin. This list is probably not exhaustive:
SKINS
- Can no longer have config arrays like skin:color: blue. Just use skin_color: blue
- Code pages and others no longer not configurable. Can put in subfolders.
- Field folders: files, pages, etc no longer configurable. Removing these options just simplifies the code significantly.
- Blacklisting and Whitelisting removed (can be done as plugins).
- Caching switched to a VERY clever little plugin.
- Various functions and commands are deleted. You'll have to look to see which.
- Interwiki is no longer in the core
- Wikiwords is no longer supported.
- Stripped out changelogs, author and other unnecessary data variables from pages to keep pages lean. Add back if you want them.
- Major reworking of skin to have code.skin.name.html and code.skin.name.css.
- No skin PHP. Call in config.php or add to config.php if you want it.
- By default, uses page in shared/skins folder. Not copied over to site/pages (making them editable) unless you set in site.config localskins: true.
- Settings on code.settings are available in skin or on site as simple {vars}. Anchors not available
- No more << or >> for large and small, now use <size= ></size>
- Use ++text++ to tap into translations (instead of ugly >>text<<)
- Eliminated some styles like ^^superscript^^ (kept citations)
- Pre was integrated into html function.
- Only h1 to h3 available.
PLUGINS
Plugins can be run out of the shared/plugins directory or your local config directory. For the latter set localPlugins: true in site.config and they are automatically copied over.
Plugins now must be installed manually via site config and extracting zip pages. IE, no plugins command, backup, restore, overwrite, etc. Keep it simple!
Note: Numerous functions, processes, variables names, etc., in BoltWire have been changed. Many, if not most plugins will probably need to be rewritten. :(
DEVELOPER NOTES
If you develop plugins or write custom scripts for your site, you should know 4.xx represents significant change. I've tried to jot down some of the changes but there were hundreds of simplifications. Anyway, be prepared to test all existing scripts for functionality, esp in any kind of mission critical website. Here are what notes I have:
- Revised directory structure with better names of folders, and better use of shared resources. Study the code structure.
- $BOLTvars['$var'] no longer require $var (dollar sign). Pages use $BOLTvars['#'][$page] to avoid conflicts. Stamps use '*' instead of '#'.
- Completely reworked session handling to increase performance.
- ReplaceTable simplified to only working on final html output. Dropped BOLTpluginHeaders,Body,Style -- use ReplaceTable instead.
- Vspacing no longer an option (no config setting to turn off). If don't want it, modify your markup table
- Completely reworked messaging system to simplify it. By default function messages are turned off and form messages turned on. BOLTfuncMessages can be set to true in site.config.
- Completely reworked BOLTabort.
- Returned to former code architecture with library (core functions) and variables. Engine is now just page creation script.
- No heirarchical config files or site scripts. Use config.php or rewrite $BOLTscripts to accomplish the same.
- Dropped support for translation files of every message etc. Basic translations now only automated for buttons and links and headers. Messages can be made translatable via a site.messages.lang file. Text can be done as before but you will have to tag all the default pages.

