BoltWire 5
Below you will find the entire release history for the 5.xx series. Click here for info on how to transition from BoltWire 4 to 5.boltwire5.11.zip May 26 2016
Note: This release upgrades the core engine to work with PHP 5.5 and up. Unfortunately it will not work on servers using a PHP version below 5.3. I'm also anticipating there may be a few glitches as a result of this change, as it was quite complex, systemic, and impossible to test thoroughly. I'm flagging it quasi-experimental.
- Changed the top zone to no longer show the action bar when printing.
- Added blockquote to the html block elements you can include natively.
- Fixed bug in hook to the myBOLTchooseSkin function.
- Can now (optionally) put id and password parameters in the register command, giving you more flexible options for login systems.
- Similarly, added a keys parameter to the login command which allows you to translate an id POST value into another value. I'm using to allow easy login by email.
- Optionally, you can add a id or password parameter directly to the login command and these will override the post values, giving you more flexibility in creating login systems.
- Finally got the {+1} template replacements working in list and info functions, as well as search functions!!!
- Added a hook for myBOLTauth which can allow you to override auth settings in various situations without bypassing the normal auth scrip in other situations.
- Added a hook for myBOLTimgFind which can be used to search more locations for images.
- Added a geturl function to return the current url, that works correctly with cleanURL's. I also added a {url} system var.
- Added a $BOLTlanguageCase var so can control whether or not translations are capitalized. This was a work around to a problem with Traditional and Simplified Chinese translations, but could be used with any language.
boltwire5.10.zip February 18. 2016
- Fixed a bug in the count parameter in search functions causing the wrong output for things like count=20-40.
- Fixed the index function to use the correct config value: indexCron (rather than cronIndex).
- Added a logoutPage config value to help simplify the logout process and avoid redirect loops. By default it forwards someone to page "main" on logout. In the XPack it defaults (should be set to) main.goodbye.
- Improved the input file type to assign the name of the uploaded file to the input value, so can be used in field replacements.
- Added a call to the vspace function in templates with a 'none' display option to properly insert line breaks.
- Added a {dir} variable which returns the directory of the current page if in a subfolder, or null if in the pages directory.
- Changed the main link in the top zone (banner in the xpack) to use {field} instead of main so it does a better job resolving to the right places.
- Added a BOLTread and BOLTwrite function to centralize page reading and writing functions. Also, added a webhook for both so can easily create a database backend if desired. Updated core functions and XPack to use these.
- Added a map action to the core, and renamed the zones action to an expanded details action and moved it into the XPack.
- Several simplifications, fixes and tweaks to the XPack system pages. Unfortunately did not document all of them. It is actually running much more smoothly than expected!
boltwire5.09.zip January 28, 2016
- Slight change to how the when parameter works in searches and lists, so can do things like {++p} when you have a when parameter nested inside another parameter.
- Another slight change to the auto login script, allowing an optional custom $BOLTcookiePath var rather than using the $BOLTfield--which didn't work as intended with addon domains.
- Fixed small bug in count parameter in search and lists.
- Fixed small bug in number type to exclude pages that are numeric but not numbers.
- Fixed a small bug when using a var to define a link (unescaped it in the link markups function).
- Rewrite of the upload markup to enable BoltWire to find images in the shared folder more effectively. Also fixes to how the smileys and gui buttons are found.
- Several small tweaks to get ready for the XPack. Unfortunately I did not document them all
boltwire5.08.zip January 18, 2016
- Added a myBOLTskinVar['field'] = 'value' variable so can put {field} in skin and insert value. Similar to code.settings page, but can control dynamically via php.
- Slight fix in sorting of search results when extra pages are included. Also can handle {+1} and {+2} in sort parameter.
- Slight fix to list function so handles no matches the same as search function.
- The last release introduced a new bug in the way search results were processed where counting took place after sorting. Fixing required splitting BOLTresortsWhenCount into two separate functions.
- Tweaked the set condition a bit more, so can do source=field and will return true if that post, get or cookie field set. Good for testing if a multiline value is set that would otherwise break the markup.
- Improved BOLTfolders function so can put a site.folders page in the shared/pages folder.
- A couple slight improvements to the messaging controls in the index function.
- Slight improvements to how the type parameter in searches works. Now can do number/-number, and mycustom/-mycustom types, and even override the default number handling by creating a custom myBOLTtypenumber function.
- Minor tweaks in indexing. Now can do [(index rule=myrule batch=10)] and the batch setting will override the default value. Can also do [(index 10)] and it will be the equivalent of [(index cron=10)]. And lastly, [(index)] will now default to the equivalent of setting the cron parameter to whatever your default indexBatch value is.
- Have been having problems with the auto-login process, and think I have fixed it at last. Like before, just use a persist=1209600 parameter in the login command to keep logged in for two weeks. To get the autologin effect, the user must visit a page with <(login)> on it--ideally in a zone wrapped in a conditional checking their login status. Change to <(login persist=1209600)> to extend their autologin another two weeks from that login date. Can also use a link like some.page&id=myid&pass=mypass to login via url. This also requires <(login)> on some.page.
- Also added myBOLTlogin and myBOLTlogout hooks for those who might want to tweak those processes.
- Added an option $guipath variable and updated the code.embed.gui page. This is important for sites using add-on domains. You will need to update your code.embed.gui page. Contact me for information.
- Tightened the inlist conditional a bit more. Before if you did [if inlist some.page item] it would automatically work. It should be [if inlist page=some.page item] because you might have a single item list with the same name as a page. It happened to me. Because this could disrupt sites however, I'll instead put (temporarily) page=false as a parameter to disable this feature and deprecate it to give you time to update to the new page=some.page format.
- Very slight fix in tag function when doing a tag cloud of a page other than the index.tags page. Also, now should change to fmt=cloud. Have deprecated just using the plain "cloud" as a parameter.
- Now list and search commands respect the if parameter properly.
boltwire5.07.zip December 25, 2015
- Slight fix to start.php, to fix a broken link and to allow customization of .htcodes location. Also updated start.php tutorial.
- Reworked underlying code in login and logout process to better handle persistent logins. Should not change current behavior however. Note the BoltWire site now has working persistent logins...
- Added a couple nifty features to the search function--namely, prev and next. An example is easier than an explanation. The start page must be in the array.[(search prev start={p} group=forum fmt=[[{+p}|PREV]] end=END)][(search next start={p} group=forum fmt=[[{+p}|NEXT]] end=END)]
- Did a pretty major rewrite of the mail function to allow easy drop in capabilities for mail scripts like swiftmailer or phpmailer, etc. Basically it now calls a new BOLTmail function in library.php that has a webhook for myBOLTmail.
- In so doing, simplified the core mail function to call site.auth.mail always. Also changed how the email body is generated. Now default allows for vars, conditions, and links. Can set content=text for plain text emails, and content=html for most html tags. If I did everything right, this should not otherwise affect existing sites.
- Made the inlist query data processor smarter so can do both: #1(,)A,B,C and #1(,)Bob. The first checks to see if #1 is in the list A,B,C. The second checks if Bob is an item in list #1. Basically it checks which side has the commas. If commas in both sides, stays with current approach which is the second one above.
- Changed list and search function so include parameter overrides when, type, and other restrictors.
- Changed BOLTMfuncs so variable parameters have their quote marks unescaped. Not sure full consequences, but makes it possible to store full parameter strings as data vars. Slightly experimental--markups.php ~241.
- Slight fix to memberships function returning incorrect results when viewing another members memberships as BOLTadmin.
- Fixed the field replacement function (at last) so can use simple {+1} and {+2} for info parts. Can still do {+#1} and {+#2}--I just never could remember that markup.
- Deleted the site.members page from the core, as the member mgmt page in the expansion pack will be a good bit better. I also moved site.language.template to the expansion pack, where it will be integrated with our google translate site language pack creator. Those don't seem to meet our core philosophy goal #2.
- I moved the citations markup from the core to the expansion pack. If you need this, let me know--I can give it to you as a simple plugin. It just seemed to fit better with all the bonus markups in the expansion pack as it is not core html code.
- Added a simple zones function which returns the hierarchical page for a zone. Just a couple lines--but useful in various situations.
- Fixed linkrot feature so it still works if the missing mark is turned off. Also turned it on by default and added a page holder for this to the core.
- Improved the BOLTinfoPeek function to avoid adding an extra line return when setting a new info value.
- Wrapped the settings in site.config with anchors. Recommend doing this to your sites as well if you plan to get the expansion pack which has a super cool config management tool.
- Added a legend parameter to query searches. Much easier. Have flagged the site.config approach as deprecated.
- Added a hook in the page saving process for a notify module.
- Added a vspace=false parameter in the include function to turn off vertical spacing. Great for including stuff in text areas with some markup you want to process.
- Turned off the memberships message when logging in.
- Added a small hook for a plugin you can use to import pages from one site to another. Pretty nifty idea -- will affects urls with an importcode get value.
- Radio and checked boxes can now use source function as the default checked value, without having to unescape the output.
- Added a central BOLTcrypt function which essentially adds a hook if you want to do some kind of custom password encryption. In the process I removed the special crypt parameter in the BOLTFlogin function. This shouldn't affect anyone unless they are using a custom login script that relies on this.
- Added a new dev utility--for developers. Basically can do dev('search', 'group=... parameters'); and it is a shortcut for BOLTFsearch(BOLTargs('group=... parameters')); The optional 3rd parameter allows you to pass in dev values and the 4th parameter can be set to C, or X to tap into conditions and commands respectively.
- Fixed slight bug in redirect function when cleanURL's enabled that changed dots in local get values to forward slashes in redirect url.
- Added a button class to the default style sheet that turns links into buttons. Matches form buttons exactly.
- Fixed an old bug (feature?) so now when you set an info field to a null value, that info field gets deleted. Before, you had to use the delete info var function. Setting a value='' resulted in the command being igored. If you have relied on this before, this could affect your site.
- Added a hook for users to create custom type functions (using myBOLTtypeMyName). This allows for very speedy and customized typing of search values. I also deprecated the hook for the custom sort functions as I simply plan to rename that hook similarly (adding my to BOLTsortMyName). Probably will go through whole code and look for hooks to make sure all have my's in front.
boltwire5.06.zip November 16, 2015
- Revised start script to optionally create .htaccess pages for cleanURL's automatically and optionally a field forwarder for the root domain.
- If using start script, can now turn on cleanURL's by simply setting cleanURLs: true in site config.
- Added an optional loop parameter to the include function to allow multiple includes of the same page. Just make sure each include is set to a different loop id.
- Changed {zone_main} to the action page (missing) used if that page does not exist. Improves how zone action works.
- Added a handy source parameter to the set conditional so can check if multiline variables are set. IE: [if set source=some.page:var].
- Made the ingroup smarter, so can handle "member.id" as easily as their "id".
- Added a source parameter to all commands you can use to replace the value of the command. Can point to any page, anchor, info, or data var. It is done before field replacements so can use as a template to create all kinds of cool effects.
- Dropped support for the deprecated color input, group template replacement, and item parameter in inlist. Also removed the deprecate flags from the code. Click here for more information, then check your site.deprecate pages before upgrading to this release. We no longer have anything flagged as deprecated!!!
boltwire5.05.zip October 13, 2015
- Slight fixes to citations markup, so can include multiple pages with citations and retain proper numbering. Note: changed citations styling from id to class. Updated css on default skin. You may need to do this on your css sheet as well.
- Better handling of utf page names in page variables. There may be other functions affected by this change.
- Better handling of :// at the end of a line, ie italicized lines ending with a colon.
- Slight tweaks to the translation function to handle capitalization of utf characters better.
- Re-added the = markup to allow paragraph spacing within a bullet
- The baselinks parameter in the include function can now be set to a completely unrelated page (the current "true" value still works). Very interesting possibilities.
- Added optgroup as a form input type for grouping select field options. Very cool new html.
- Several improvements to the gui parameter (available for textareas) so can have more than one gui box on a page. This will require you to update your code.embed.gui and code.embed.guiscript pages. Also fixed a bug when calling custom gui pages.
- Added the mark tag to the list of allowed html tags. An additional way to highlight text. Changed the ||highlight|| tag to output <mark> as well.
- Added an info option to the list function to easily create reports from info vars on some page. ie: [(list info=some.page)] is the equivalent of [(list {(info list page=some.page)})]. Nice, easy shortcut!
boltwire5.04.zip August 14, 2015
- Added a title parameter to the BOLTlogin function in library.php for plugin developer using alternate systems of authentication.
- Added an auth parameter to BOLTinfoPeek and BOLTinfoPoke to allow plugin developers to override normal security permissions.
- Slight fix to BoltWire's ability to recognize capitalized infovars when called in a query.
- Added a <highlight=green>text</highlight> to the markup.
- Hooked all commands and functions into the text tools markup, by simply adding a parameter like text='case=caps trim=left'. Removed trim and csv options from output parameter, and added csv to text tools (trim already there). The old output=trim or output=csv are pretty arcane commands--hopefully reworking them won't affect any sites. Deleted the text function as it seems superfluous at this point. Ended up being a bit complicated to do it right, but seems to be working. :)
- Fixed bug in forms that deleted command values when not a recognized command. (ie, when used to store or manipulate data).
- Added a pages dir to the shared dir where you can store custom pages you want to use across multiple fields. Similar to system folder, but allows you to keep your vanilla BoltWire install separate from share site page.
- I change the name of the automatically loaded farm config file from farm.php to config.php (in shared/plugins). I also deleted the loader line I've been experimenting with for the Xpack, and just used the simpler farm config file. Also, both the field and farm config files are no longer included in the plugin list.
boltwire5.03.zip June 15, 2015
- Added a renamestamps parameter to the rename command to optionally rename all stamps along with the page being renamed. Uses a new renametree library function which has several other potential uses for developers.
- Slight rework of the stopwatch features, to track memory usage, give better control over which functions/commands to track, and add a hook for customizing the display.
- Added a second parameter to the login function (functions.php) to disable encrypting of passwords. Allows plugin developers several options.
- Added a simple skin conditional which allows you to check if a specific skin is being used.
- Few minor changes to the default skin and system pages to better integrate with the soon coming expansion pack.
- Can set lines=true in source function to retain line returns. Note this overlaps slightly with the lines=5-10 syntax also available.
- Found an easy way to add multiple html 5 input types (I chose: color, date, email, number, range, time & url) using this format: [text field type=color]. Can reset available list using a $BOLTinputTypes var. Also added min, max, step, and pattern to the allowed parameters. This means a separate color markup is no longer necessary (ie [color...]) and will be deprecated. Also removed the input type from the markup pattern as it doesn't appear to be used.
- Added a border=false parameter to the preview function to allow fancier preview displays.
- Created an option to use pages like site.auth.action_title, to control which groups can use the title action on which pages. Can do for any action, of course.
- Added a $BOLTdefaultSkin variable which can be used to change the default skin used. It is only used when no skin is set. Change $BOLTskin in php to override the skin setting in site.config.
- Gave more flexibility on selecting mobile and print skins. Now can add a mobileSkin or printSkin in site.config, or set $BOLTdefaultMobileSkin or $BOLTdefaultPrintSkin in config.php. Can also set either site.config value to false to use the normal skin when in mobile or print mode. Prior to this release there was only a skinPrint variable you could set to false to turn off the print skin. That no longer is available and if used should be changed to printSkin: false.
- Fixed a bug when saving a data value (like title) to a system page that does not yet exist locally, keeping the page content from being saved with the new local data var.
boltwire5.02.zip June 3, 2015
- Added an auth bypass parameter to the mail function for use in plugins.
- Fixed bug in delete command bypassing abort messages.
- Fixed bug that blocked custom message overrides in input fields failing certain tests.
- Slight fix to crypt parameter in form input fields, disabling it when no value is entered.
- Bug fix in trim parameter for input fields, plus added mask= parameter.
- Added replace=true to explicitly allow limited field replacements in input values--useful in hidden fields.
- Added two hooks to the new texttools function. One, in the iftrue function for use in conditionals (including when) and the source function. Both open up lot's of possibilities and required only a line of code each. Plus, if we add new texttools, they become better available throughout the system.
- Added a query= parameter to the list function as a shortcut for doing something with info pages.
- Changed the register function to invalidate member id's that start with - or _. Won't affect existing accounts.
- Include function has improved loop protection, so can show same include in multiple zones.
- Added a $BOLTpluginAuth variable to allow plugins to enable specialized auth lines to easily customize permissions.
- Small bug in auth conditional involving the find parameter. Also, fixed BOLTauth function to show proper results for admins when checking permissions on another user.
- Added a couple lines to engine.php to automate intelligent installation of all core modules. Add loadCMS: false in config.php to disable this plug and play capability for a specific field.
- Engine now correctly sets skin variable when skinpath is an alternate location.
- In my relentless quest to keep the core trim, I deleted the pub folder and all links to it in variables.php. I also moved the archive/extract functions to a backup plugin. Let me know if you need this.
- Added an {img} var to point to the shared/img folder.
- Can now set move site pages into a subfolder using site.folders by defining its path in config.php. IE $sitePages = 'pages/site'; This is needed so BoltWire can find the site.folders page (and site.config)!
- Several other small fixes...
boltwire5.01.zip May 28, 2015
- Slight fix to source function allowing default to work with get, post, and cookie retrievals.
- Fixed msg parameter in mail function to include args, so can disable.
- Check and radio boxes now handle check='' correctly as false
- Tightened a permissions hole in the counter and delete info extension.
- A slight mistake in the inlist deprecate flag, flagging some pages that are properly fixed. Have redone and will keep in for one more release.
- Several small fixes to the upload command to allow multiple file uploads in a form.
boltwire5.00.zip May 26, 2015
- The "if" parameter in list and search functions now applies to the entire function. Use "when" to apply conditionals to each item in the return.
- The string parameter no longer works in the insource conditional. Use the inline conditional.
- The order of parameters in the inlist conditional has been reversed and the item parameter has been renamed to find.
- The admin areas have been streamlined and simplified. Several pages added and removed.
- Form inputs can now take a none parameter which can be used as a default if no value is found.
- Added {+field} and {+value} to the display replace function.
- Changed {+group} to {+parents} and made it available as a page variable--to show the page name with the last part lopped off. Also added downloads to show the next to last page part. {+group} still works, but triggers the deprecate flag groupvar.
- Added a tags function to handle display of tagging with a tag cloud option. Actually, a lot of creative possibilities. And improved the tag action to use the highlight function.
- Added a "msgJoin: lines" config option to switches from ' ' to \n when multiple messages are displayed.
- Can now move site pages into a subfolder (for organizational purposes) and define in site.folders. Just define path to folder in index.php using something like $sitePages='pages/sitepages' or similar.
- Added an ext arg to the info function to explicitly call the info extensions. This is required to use them in info commands.
- The counter extension in the info command can now increment info parts.
- I changed the order of the math markup to come after variable functions, but still before regular and conditional functions. This makes it possible to use output from a variable functions in a math expression. Note this could disrupt sites with variable functions containing math markup.
- Added an optional timestamp=true to input fields to convert user input into a timestamp.
- Now can do sort=true or sort=reverse when saving a new info var.