Form Tools 3 released!

Hi all,

Form Tools 3 is finally out of beta! The download page now offers the latest and greatest download package and the old Form Tools 2 code (some 4 years old!) has been removed. All the code is still found on github, but it’s time to only push the latest version.

The forums have been closed and you’ll see a “Help” navigation link in the header that replaces the old “Forums” link. Times they are a changin’!

So now what? Well, I’ve started work on Form Tools 3.1 which will greatly simplify the installation and upgrade functionality, but I’ll be continuing to maintain Form Tools 3 and the modules to patch whatever issues come up, and even add smaller features here and there.

As always I’ll continue to update everyone of my progress via Twitter and make large announcements here in the main blog.



Posted in New Releases | Leave a comment

Form Tools 3 final release

Hi all,

Quick announcement. Sometime around April 15th I’ll be making Form Tools 3 the standard build, and dropping Form Tools 2 from the download page. The code will always be available at its home on github, but it’s time for all new installations to use the newer code. (Form Tools 2 is ooooold now!)

As mentioned in earlier posts, I’ll be closing the Form Tools forums will also be closing. All questions and support for the Form Tools script and modules will be moved to the appropriate location here: When the forums are offline I’m going to sit down for a day (or two) and clean out the spam posts and update the site to remove it from the main header & put a link in the footer of the site. For the foreseeable future, people can always browse the old forums for information – there’s a lot of good information there – but in the coming months as Form Tools changes, the information will get out of date & be less useful.

Oh – and I’m heading out of town on a brief holiday for the first 2 weeks of April. See you when I get back.


Posted in Alpha / Beta Versions, Important!, Maintenance, New Releases | 1 Comment

Upgrade script online

After a long vacation, the upgrade script is back online. Yeah! Now when you click on Update from within your Form Tools interface, you’ll be directed to the Form Tools site where you can generate a zipfile containing whatever specific components you want upgraded.

Even though Form Tools 3 is still in Beta it’s looking pretty robust. But if you do choose to upgrade to v3, please follow the upgrade instructions and back up your files and database first. It’s a pain, but worth it.

For the next little while I’m going to be working on reviewing the entire documentation (starting with the outdated Module Development section), working on any bugs that get reported with the Beta, and patching lower priority issues that have been reported on the site.

I’ll be making Form Tools 3 the standard build whenever I feel comfortable the rate of bugs is minimal. So more feedback the better!

Getting Help / Questions

Posted in News | Leave a comment

End of an era: forums closing

Hi all,

In order to keep things growing, sometimes you need to do some pruning. So once Form Tools 3 is released I’m going to be archiving the forums and moving all support to github where the source code is stored. This is where you’ll need to go to ask questions about the script, post bugs, feature requests, you name it.

I realize this is going to come as a shock and a disappointment to some, but it’s time.


I’ve toyed with the idea of dropping the forums for years, but without a replacement in mind I’ve balked at the idea. Now more and more people are starting to contribute bugs and feature suggestions there, I’ve decided to make the switch. I guess there are three main reasons:

  1. Maintaining the forums here is extremely time-consuming and difficult. They’re a non-stop headache – and I’m not talking about support –  I’m talking about keeping the software up to date, spam free (a Sisyphean task with MyBB…)
  2. It’s far, far easier for me to interact about a piece of software with a tool that’s been designed for that very purpose.
  3. I want to encourage other developers to get into Form Tools, and github is familiar to all developers and more likely to draw people in.

When new people visit the Form Tools forums they’re likely to be put off by the spam and by seeing people’s questions go unanswered. This sucks, and the blame falls squarely on me. For the spam, I could once again upgrade the forums and look around for yet another plugin that would help – or more likely start afresh and move to a new forum software (the 4th in Form Tools life). But this is all a ton of work and I think would be a waste of my time. For the latter – the lack of support found in the forums – again the blame is mine. But the reality is that I’m one dude with finite time (and a chronic birding addiction): I need a single, simple, quick way to interact about Form Tools and I think github is the answer.

Github Issues

Each code repository in github has its own “issues” section where people can post. If you go to the following link, you’ll see the core, the modules, themes and the API listed as separate repos:

The Core repo is where the majority of questions will get logged, but if you’re inquiring about a particular module, please go to that repo and post there. I get notifications when people post on any of them.

Questions can get flagged as questions; bugs as bugs; feature requests as feature requests; people can thumbs up suggestions or bugs they need fixing – all in a single location.  This is staggeringly useful for me. I can create milestones that map to particular releases and tie people’s posts to them. I can search and identify what features to work on next; I can close issues by just committing the repo with the bug fix.

I won’t fib, it’s going to be sad to see the forums go – it’s an end of an era, for sure! But I do think this is the best way to move forward.



Posted in Important!, News | 8 Comments

3.x roadmap

Hi all,

With Form Tools 3 now in Beta, I thought it might be time to tease the goals for upcoming 3.x releases. I’ve had these ideas stewing around in my head for months so even though they’re not yet set in stone, I’m fairly confident that what’s described below is going to be the focus for each release.

Bear in mind these are just the primary goals. Other unrelated smaller features (and obviously bug fixes) will find their way into each version.

Form Tools 3.1: Improve upgrading, installation

The goal here is to:
– make the Form Tools download package include the Core only. The installation process will list all available components (modules, themes and the API) with a few of them pre-checked (probably the ones currently in the existing download packages). But the UI will let you pick and choose exactly what you want right during installation, and the installation script will handle downloading the appropriate components versions from github.
– this same functionality will exist within your Form Tools installation itself, so you can install new components or upgrade existing ones right from within the admin UI and not have to require downloading zips and FTP’ing files.
– Offer the option to actually remove the component files from your server after uninstalling something.
– start integrating React into the UI, and drop the old jQuery code.

– Everything will be waaaay simpler, and easier to use.
– it abrogates the need for the Custom Build and Upgrade scripts on this site, which are complex and don’t scale well. Plus I can simplify a lot of the CMS powering to drop the need for exporting content from github for availability in the package creation, upgrade + custom build scripts. The less work I have to do there means more time spent on coding Form Tools.

Form Tools 3.2: UI/theme upgrades

The interface is old, time to upgrade it!

– make it responsive (work on phones, for instance)
– make better use of available space
– snappier look and feel
– perhaps introduce a customizable “home” screen (still thinking about this one)
– rethink various key pages in the UI to improve UX, and continue integrating React.

Form Tools 3.3: User Roles/Groups

This will be another big refactor of the application, also long overdue. Currently Form Tools relies on hardcoded “admin” and “client” roles, which have specific access to things within the UI. That’ll be changing with this release.

– Allow creation of any number of roles, each having their own set of permissions.
– Allow more flexibility in who can see and do what. This will be extensible, and include features specific to modules.
– Drop the Submission Accounts module and has it now integrated within the Core. That module was always kind of a hack workaround to allow form submitters to edit their own content, but even in Form Tools 3 it’s a bit of a frankenstein’s monster. The architecture was never really designed for it. The new user roles set up will include this out-the-box.

– Far more control in letting your set up your installation. You can create multiple groups/roles (I haven’t decided on a term yet!) in whatever fashion suits your needs and assign the appropriate roles via a single group rather than individually on each user.
– Better code! This will formalize permissions so much that when working on features for the core + modules it’ll be clearer what features constitute permission-related features and what don’t.

k, that’s about it.


Posted in News | 1 Comment

Form Tools 3 beta available

Hi all,

Just a heads up that the Form Tools 3 beta is now finally available. The alpha went through around 5 months of testing and patching, so I’m anticipating the beta period to be a relatively mellow one. If I were to start a new project with Form Tools I would definitely pick Form Tools 3 over 2. And yes, you can upgrade to Form Tools 3 whenever you like (just make sure you back up the database + files first – a necessary precaution). Upgrade instructions here.

If you find anything that looks wonky, please report a bug on github here. I appreciate it!

Now I’m going to focus on getting the upgrade script online (I know, I know… so long overdue…) then I’ll be reviewing the full user documentation to ensure it’s all correct and up to date for Form Tools 3.



Posted in Alpha / Beta Versions, News | Leave a comment

Form Tools 3: progress update

Hi all,

Hope your year is treating you well! Boy it went fast for me.

It’s been a couple of months since my last update so it’s time for another post. I’ve been using the Form Tools twitter account for announcing day-by-day news so if you want to stay more current, do check that out.

Form Tools 3

Version 3 is coming along well. It’s still in alpha (meaning not production ready) and will remain that way until we have compatible versions of all components (themes, modules, API) and the script itself is nice and stable [N.B. it’s actually really not bad right now]. As of today the themes are done and 2/3 of the modules have been updated. The alpha download package was getting a bit bloated with all the compatible modules so I’ve trimmed it down to include just the major ones.

The remaining modules that still need to be updated are:

Client Audit
Custom Fields
Form Backup
Form Builder
JS Error Logs
Submission Accounts
Submission History
Submission ID Manager
Submission Pre-parser

Plus the API. The API will be changing quite a lot (like the rest of Form Tools it’ll be written as a single API class) so I’ll provide an adapter for people upgrading to FT3 that’ll emulate the old API method interface.

The end is finally in sight!

After that, what’s next?

Boy Form Tools 3 has been a hell of slog. I’m sure I’ve said this before but working on library updates, code improvements, PHP7 compatibility and so on are all necessary, but frightfully tedious when done en masse. And that’s pretty much been my life for… how long? 2 years? Urgh. When do I get to the fun stuff?! New features! Improved UI! Performance updates!? 

Well, my original plan was to get FT3 out the door containing all the hum-drum work, then embark on a shiny new FT4 rewrite containing all the fun stuff. But having seen how long it takes to update a script the size of Form Tools I’ve decided this is the wrong approach. Instead I’m going to do incremental updates rather than embark on another massive rewrite that’ll take years to see the light of day.

So various features I had planned for Form Tools 4 will actually be released one by one in v3. I think this is a much more sensible approach: it’ll mean new features will be quicker to roll out and ensure Form Tools doesn’t ever get as out of date as Form Tools 2 did.

There will still be a FT4, but it’ll be a much more realistic goal.

And what about that upgrade script? What’s that coming back online?!

Gah, I’m so sorry about that. In short: that script is a project unto itself. When I moved the codebase to github I borked a number of things and it’s been a nightmare to bring back to life. Note to self: dependency management is NOT to be taken lightly (I should get that tattooed somewhere). The ultimate goal is to remove the upgrade script from the website and include it within Form Tools itself. But that’s longer term. In the short term: I’m working on it. 🙂 I actually think I have it beat – it’s now largely working locally, I just need a lot more testing before releasing it.


I’m taking off a couple of weeks in early December to go bird watching in Panama (it’s a hobby, what can I say) so don’t expect much activity during that time. But I think it’s pretty reasonable to expect the Beta to be release in January, and v3 to become the official build a month later. I’m actually relatively confident with the current alpha – I’ve had a few people report issues but by and large they haven’t been too daunting.

All the best!


Posted in Alpha / Beta Versions | 8 Comments

Form Tools 3 alpha available

Hi all,

Well it’s been a looong time in the works, but the first Form Tools 3 alpha is now available! This is a complete under-the-hood rewrite of Form Tools which now supports PHP 7. Any help testing it out to find bugs is much appreciated!

Important stuff:

– This is NOT production-ready code.
– You CANNOT upgrade your existing Form Tools 2 installations yet. If you do, your Form Tools installation will stop working, so don’t do it!
– At this stage only the Form Tools Core is available. The Core includes all necessary code to install the script and for basic usage.

You can download the alpha here:

Please report all bugs here:

You can find more information on Form Tools 3 at the repo, here:

I’m going to start updating the modules etc. for FT3 compatibility, and fix whatever issues come up as they get reported.



Posted in Alpha / Beta Versions | 3 Comments

Form Tools 3 – and 4

Hi all,

I’ve been working pretty continuously towards the 3.0 release these last few months, but I’m afraid it’s still a ways off yet. But my plans have now solidified about the foreseeable future of Form Tools, so a post was in order. Much of this has been posted before – now more than anything it has a concrete roadmap.
Form Tools 3

As I’ve written about before, Form Tools 3 is an under-the-hood rewrite of Form Tools to support PHP 7. There will be a few small changes here and there but the interface will look the same, the way you install modules the same, the API etc. etc. All pretty much the same.

Upgrading to 3.0 will be possible from 2.2.6 or 2.2.7 to 3.0, but no earlier. The upgrade code supports upgrading from waaaaay back in time and it’s time to clean house. So yes, there will be an upgrade path, but you have to upgrade to the latest versions of Form Tools 2 first (I’ll be updating the System Check module to add the one additional FT version check on the “FT3 compatibility” section).

Once 3.0 is released, along with all the modules, themes and API, I’ll be releasing bug fixes for 3.0 only – that major version is effectively finished. At that point I’ll be working on…
Form Tools 4

As I’ve been slowly refactoring the code for 3.0, I’ve had to hold myself back again and again from doing more aggressive changes. I now have a long list of things that I think the script needs, but avoided working now to prevent 3.0 being held up any further.

So 4.0 will be a much more aggressive change to Form Tools. These are the main goals:
User interface redesign & rewrite
Personally I don’t find Form Tools’s UI or UX too bad (okay, I’m biased) but it’s 2017 and it can be better. Better use of space, better look and feel & better IA (information architecture – the structure of how the pages tie together)  I want to do a complete re-write of the front-end portion of the script from the JS code to the user interface. Language-wise I’ll be using React – but it’ll probably remain a traditional page-by-page app and not a one-page web app. We’ll see.

This is an item that’s long overdue, but one that I’m the least sure about how to implement yet.

I want to completely revise the installation and upgrade code to remove the dependencies on the website. Adding modules should be as simple as selecting them via the interface and clicking a few buttons. No more manual FTP’ing of files to your server to install things! (well, other than the original installation). Right now I create a bundle of files via the website which generates a zipfile containing the Core, API and list of modules & themes. Bah! Instead, Form Tools should be a single identical zip for everyone who downloads it, containing ONLY the Core code. Then, during the installation phase they would select what pieces they want. Users shouldn’t have to concern themselves with manually downloading separate pieces of code and installing them separately.

This would result in a lot of complex code being dropped from the website making the project far more maintainable for me, and much simpler for people.

Form Tools is too slow in places! Time to benchmark and improve.

User Roles / Permissions
Form Tools has a very basic user account system at the moment. It has a sort of basic way to change configuration settings for multiple users at once, but no real concept of a “role” which you see in most large applications. The idea of roles is that you create a role that describes what a user can do, then set each user to a particular role. Pretty straightforward. This means re-writing the backbone of the current permissions code and remove the current admin/client separation.

Schema ALL the things!
This one’s is a bit technical, but the idea here is to make all configuration data stored within Form Tools adhere to schemas, i.e. make them “well-defined”. Form Tools changes and configs have always been very ad-hoc: each version comes out with new settings for your forms, client accounts, form builder forms and so on. A schema will provide an explicit description of a particular version of each piece of data, outlining the semantics for each and every part of the configuration. So why do this? Well it’ll allow for my ultimate goal of Form Tools, which is…

Form Tools market
I’m really proud of what Form Tools does. It’s crazily feature rich and lets you set up complex forms and let’s you fine-tune who sees what, what can be downloaded, edited, viewed etc. etc. But the pain of Form Tools lies in configuring it. It takes TIME setting up a form with all the right settings, form fields, users and so on. The goal of the Form Tools market is to allow users to share configurations so rather than manually setting up a form field by painstaking field, you just browse the market and click “Import!”. That imports the form configuration, views, email templates, form builder templates, etc. etc. Then you can go to town tweaking it.

This is eminently do-able, it just requires a lot of work and planning. But there’s one catch to this last one: I may have to put a small fee on this feature, like $20 a year or something… it’ll mean increasing the server load for the website a great deal, and Form Tools costs me a fair bit of money as it is to host.
Alrighty, there’s the update. I’m sorry development on 3.0 is taking so long. I’m still not at the point when I could estimate a release date for the alpha.

Posted in Alpha / Beta Versions | 2 Comments

Boring technical post about FT-next

Stem your excitement! Time for an extremely boring technical post about the next version of Form Tools. Caffeine pills on standby!

I’ve dubbed it FT-Next partly to sound cool, and partly because I’m no longer sure if it’s going to be a 2.3 or 3.0.

High-level stuff

So… I’ve been making a fair bit of progress the last couple of weeks. Currently I’m working on updating the core code. I have no estimates on how long it’s going to take, and the joy of not working for The Man is that I don’t have to provide one. Mwahah.

With FT-Next there will be two small functional improvements over previous versions:

  • All language files will be included with the core. I really don’t know why I didn’t always do this; not including the language files has no benefit and it just adds an extra chore for non-English speakers having to manually install the language files. This’ll also allow me to simplify the custom build page.
  • The install/ folder will no longer need to be manually deleted after installation. Again, there was no real technical reason the folder had to be deleted – it can be solved perfectly well via code, and that’s what FT-Next will do.

Technical stuff

Whenever I find myself revisiting old code I find I have to resist the temptation to rewrite everything at once. (“Well I just have to change that… and that…. and that….”). With a codebase the size of FT that’s just not possible so I’m trying to focus on the essentials. My #1 goal right now is PHP 7 support but I’m finding I still have to do more changes that I anticipated.

  • Smarty upgrade.
    In order to support PHP 7 I need to update Smarty. This is the change that concerns me the most: Smarty underpins the entire Form Tools script – it’s not just used for the rendering of the HTML, but a lot of the internals – so I’m really going to have to confirm everything’s backward compatible and find a way to patch the pieces that aren’t. Because Form Tools allows customization of the Smarty logic in various places this will brook a great deal more thought.
  • Composer.
    The next version of Form Tools will use Composer for dependency management. Initially it’ll probably just be used to include Smarty, but down the road I may even use it for including the Form Tools modules, themes and API too. But to be clear: there will be no extra steps for installations: you’ll continue to download the single Form Tools package from the site and install in one go.
  • Codebase being moved to OO.
    Years ago I made a judgement call to write the application functionally, not object-oriented. I think it was the right call at the time (simple = good) but today I find there are too many benefits to object-oriented code. PHP grew up and has pretty decent support for all sorts of OO features and making use of them will simplify a great deal. This is something I’ve had on the docket for years and now’s the time. It will be a gradual upgrade.
  • Backward compatibility.
    This is my primary concern for the next release. I want it to be as backward compatible as possible. But I am requiring PDO with the PDO-MySQL extension installed for all installations. This has come standard with PHP installations for years so it’ll only affect a small minority of users. The minimum PHP version will be 5.3.

Misc other stuff

  • I’m dumping global/library.php in favour of a global/code/Core.class.php file. That’ll contain all the various available application-wide settings like before, only no more globals. Now only the settings that can be overridden will actually be overridden. Sheesh, no more wild west…!
  • The config.php content will change; I’m leaning towards using define() for all the various DB settings, etc. just to clean things up. But again, backward-compatibility is the name of the game so your old config.php file content will continue to work.
  • Converting the database over to use PDO has gone pretty well so far. The one addition that needs to be tracked for the DB info is port. Seems like 3306 is the standard – so upgrading will give you that value by default. But depending on how things go – i.e. how extreme the changes are going to be – this may become a 3.0 release and I’ll release a pre-upgrade script to verify your system, verify settings etc. before you actually upgrade. Just to be safe.
  • I may convert all language files to JSON… haven’t decided yet… that may be in a later version.

Anyway, things are plodding on. More posts to come, no doubt.  🙂



Posted in News | 5 Comments