BoltWire 1.0 to 2.0 Transition

Listed below are some of the many changes introduced in BoltWire in the major switch from 1.0 to 2.0. Unlike most preview upgrades, this one will not be "completely" painless. See below for a brief summary of how to upgrade a 1.0 site to 2.0.

Note: While I tried to document the changes in this release, there were probably many not listed below. Please feel free to ask questions if something does not seem to be working. The new approaches and features should be worth the upgrade.

In upgrading to 2.0, you will notice several changes (some minor and some major). Understanding these is important if you are upgrading a site.

Minor Fixes
  • Slight fixing of blockquote style and markup to work more intuitively. Note still does not work at begin or end of page. That should be easy enough to fix.
  • Fixed headers to work in divs, tables (ie, after >).
  • Can now use $$skin or $$skinpath, $$icon or $$iconpath in skins/pages with equivalent meaning.
  • Fixed a pretty big security glitch whereby text vars bypassed view authorizations.
  • Reworked search.php, to strip out some functionality into a new BOLTsearchPageList function. Expands capabilities, cuts code, makes custom functions easier.
  • The exists conditional can now be used to find plugins, by dir=plugins. Similarly plugins can be downloaded by linking to dir=plugins. (Is this a bad idea?)

New Features
  • Added a {func(params)} markup equivalent to [(func params)] but processed earlier. This seems to work better than the nesting capabilities I had before (which are now deprecated).
  • Added a master output=?? toggle to all function processing. Options include true, false, csv, lines, and nolines. Functions off by default should now use output=true to show. Currently that only affects the index and memberships function which use "show".
  • Added a cool counter function with options of +, -, =, or a number, and possibility of a second parameter for increment. By default it is + & 1.
  • Added an enable_myplugin command which will either turn on (true) or off (false) the corresponding plugin in site.config. Actually, reworked the whole install/uninstall process for plugins. Works beautifully!
  • The site config page now acts as a powerful plugin manager. To turn on a plugin sitewide put enablePlugin. (Will fail on enablePlugin: true). To turn on for specific pages use a syntax like enablePlugin: page,group*, Added a {plugins} system variable to show all enabled plugins on a page. This allows finer plugin control without having to resort to config pages.
  • Enabled nested if's using [if][else][if] syntax inside the normal syntax. I suppose it's possible to setup a third level nesting, but this should cover most needs.
  • Added a powerful new cron.php plugin giving BoltWire the capability of doing background processing of any functions according to a very simple pseudo-cron markup (frequency start func parameters). Default cron jobs are setup on site.cron, and a log is generated automatically of all activities on site.cron.log. Useful for indexing, deleting expired stamps, sending notifications/queued mail, etc. And of course site notifications. Everything is thoroughly configurable.
  • Added a plugin with a new notify command, notifylog function and sendnotify function. The notify command should be added to forms to tag pages for watching. The log function (normally handled by cron) creates notification log pages based on rules defined on site.notify. The send function (also handled by cron) sends watch pages to their recipients at the appropriate frequencies. This is not in the core distribution.
  • Added a basic mail command/function. Not to be confused with the more powerful emailto and emaillist functions in the email plugin.
  • Reworked the log capabilities so now can be triggered by a command or function, or used in plugins.
  • Aborted forms now keep posted dated so you don't have to worry about losing another long page of typing.

Potential Upgrade Problems
  1. Major restructuring of BoltWire, to include a barn and farm, and field folders for easier installation and configuration. The new structure is completely contained in the zip download.
  2. Simplified the site.config page. Also eliminated the use of site.config.plugin pages. Now plugins are enabled by simply putting enableRSS on site.config rather than enableRSS: true.
  3. Stripped out a good bit of code to form multiple small plugins: tags, math, trails, phptools, crypt, popups, quote, smileys, hotlinks, notify, find, comments, counter, gui, highlight, & sandbox.
  4. Will make docs available as a separate zip--though they probably need to be updated some first. Will probably do something similar with the snippets.

In upgrading, I would recommend starting with a clean BoltWire 2.0 installation. Study the new directory structure carefully. Then:

  1. Installation Restructuring
    • Copy the field folder to a sister location with your choice of names, or just rename it.
    • Copy over your existing field pages and directories. Delete any special path variables from index.php unless you are sure you understand how the new layout and page variables works.
    • Rename the toolbox folder to config.
    • Fire up your index.php file to see if it is working...
  2. Site Configuration & Plugins
    • You might want to print out a copy of your site.config page (for a record) and then delete it manually from the field location. Reset any listed values desired. Note some values may no longer be needed.
    • Delete any site.config.plugin pages. They won't work any more. If you have a plugin with them, upgrade.
    • Copy all desired plugins and backup files to the farm plugins folder. This will probably involve several new ones from the BoltWire site. Many old core features are now in plugins. Plugins in the toolbox/config folder will no longer be loaded.
    • Go to action.install and begin turning on any desired plugins. Each should be just about one click!
    • If you prefer more fine grained control, install the plugin (if there is a .backup file to extract), delete the plugin entry from site.config, and then use config files to turn on the .php file when and where desired.
  3. Documentation
    • Use BoltWire's site docs (and perhaps help update them).
    • Or, copy your old 1.0 docs from the barn/pages folder to your new local field/pages folder.

Actually, the upgrade was pretty painless for my site. So don't be intimidated by the changes. The new features and greater simplicity are worth it!