Joomla Extension Review: BreezingForms

By Justin Kerr
January 17, 2010

Forms in a Web site are powerful: They enable easy data capture, engage your users and can serve as key conversion points, turning visitors into customers. BreezingForms is a third-party extension for the Joomla content management system that can make form building easy ... with some caveats.

I first encountered BreezingForms at a JoomlaChicago meeting in early 2010: Core team member Kendall Cabe demonstrated this extension and compared it against some other form creators for Joomla, including RSForms Pro. Two things immediately impressed me about BreezingForms: multi-page form capability and an in-built logic system to easily enable form interactivity. So I decided to give BreezingForms a try, and to date have deployed several different forms on my own and client Web sites (using BreezingForms version 1.7.1).

BreezingForms is available from the http://crosstec.de Web site as a commercial Joomla extension: This means that you have to pay for it in order to download it. Like many other commercial GPL software products, you actually purchase a subscription plan to the software's download area, rather than purchase a license to use the software itself. Crosstec's subscription plans range between U.S. $29 and U.S.$99, with varying subscription durations and support options. As with other high-quality commercial open source software, this is a paltry amount compared to the utility the product provides, especially since a single BreezingForms subscription can be used for multiple Web sites.

BreezingForms installs like other Joomla extensions through Joomla's standard installer. The BreezingForms software package includes the core component, a BreezingForms module for displaying forms in module positions, and a plugin to allow for insertion of a form inside a standard Joomla content area. On install, sample data can be used to populate the BreezingForms component area, and this can be very helpful for viewing examples or getting a quick start on some simple forms.

Three different form creation and management interfaces are present in BreezingForms: QuickMode, Easy Mode and ClassicMode. A BreezingForms form must be built in one of these three interfaces, and making changes to that form requires using its original interface. This review primarily considers BreezingForm's QuickMode, as QuickMode seems to be where most of the development effort is concentrated, and it's the primary way to easily manage multi-page forms and form logic. (Both Easy Mode and ClassicMode seem to be hold-overs from earlier versions of the software.)

<hrdata-mce-alt="The Good" class="system-pagebreak" title="The Good" />

Overall, BreezingForms is high-quality, feature-rich, easy-to-use and stable. It delivers a tremendous amount of value and a heck of a lot of functionality. Some of its notable features include:

  • Support for easily building multi-page forms, and forms with logic and interactivity (as mentioned above)
  • An easy-to-use interface for form building
    BreezingForm's QuickMode uses a hierarchical tree interface to display and manage form structure, and a Properties/Advanced panel set for each form element. Clicking on the "New page," "New section," and "New element" buttons at the top of the form structure tree add new elements of the respective types to the form. Form elements and sections are rearranged by dragging-and-dropping; right-clicking in the form hierarchy allows for deletion and copying/pasting of any part of the form.
     
    The main area of the QuickMode form edit screen displays a context-sensitive Properties/Advanced tab panel set. Clicking on different form elements in the hierarchy displays different Properties and Advanced settings for that particular element. Most every option for manipulating the form element is present in these settings, from how the form element label is displayed to settings particular to that type of form element. Properties/Advanced settings are also present for form "sections" (which are used to organize form elements and/or wrap them in a fieldset), as well as the form itself.
  • In-built support for just about any type of form element
    All standard form elements -- from text fields through checkbox groups -- are present and well-supported in QuickMode. In addition, many special form elements are available, including Captcha (and ReCaptcha), hidden fields, file uploads, calendar date picker, PayPal button and others. All form elements are supported and configurable through their respective Properties/Advanced tab panels. "Sections" in QuickMode can be set up as explicit fieldsets or as invisible containers for organizing the layout of form elements.
  • Great validation support and presentation
    Any form field can be marked as required, and BreezingForms includes libraries of in-built rule sets that can be applied to any field. (For example, a required e-mail address field can check that the submitted e-mail address is properly formatted.) Alerts for required or improperly formatted fields can be set to appear as top-of-page notices, floating balloons and/or standard Javascript alert pop-ups.
  • Easy (and extensible) form scripting
    The QuickMode interface includes a very straightforward way to manipulate the visibility of form elements through simple scripting (e.g. turn on element ElementName if CheckBoxName is !checked / turn off element ElementName if CheckBoxName is !unchecked). These commands are entered in plain text on the form's Advanced tab panel, and it's an easy way to control the display of form elements or sections, depending on the selections that users make earlier in the form.

    QuickMode also includes capabilities for more advanced scripting options. Many form elements include Initscript and Actionscript libraries to provide some additional in-built controls, as well as custom scripting of form code. There are also options to directly pull from, add to and manipulate Joomla's database tables, so it's possible, for example, to set up a user registration form in BreezingForms that creates a new Joomla system user.
  • Lots of options for submitted form data
    BreezingForms provides the option to e-mail form data to specific e-mail addresses, as well as store submitted data as records in the BreezingForms component area. Records can be edited, as well as exported in PDF, CSV and XML formats.
  • Support for specific form themes
    BreezingForms' QuickMode comes with several ready-to-go themes that control different layout and color combinations for the form. Different forms can display different themes. It's easy to create and apply your own custom themes, and have them available in the QuickMode interface.
  • Easy insertion of WYSIWYG editor content
    Thanks to the presence of page and section descriptions, it's easy to drop in WYSIWYG editor content -- including images, links, formatted text, etc. -- just about anywhere in the form.

Other points in BreezingForms' favor are its strong documentation (including a knowledgebase and written and video tutorials) as well as a good product longevity: BreezingForms is an evolution from the older Joomla extension Facile Forms, and the developers look like they're going to stick around for a while.

<hrdata-mce-alt="The Not-So-Good" class="system-pagebreak" title="The Not-So-Good" />

Although BreezingForms is overall an excellent Joomla extension, it still suffers from some problems and bugs. In particular, I ran into the following issues when implementing BreezingForms on Web sites:

  • Client-side Javascript timeouts
    BreezingForms' number one problem, in my opinion, relates to Javascript efficiency issues encountered in the Web browser when accessing forms on the site's front end. Although QuickMode's simple scripting process makes it easy to set up form interactivity, once a form becomes complicated enough, the client Web browser will start throwing Javascript timeout errors. (These appear as browser window alerts with messages like: "A script on the page may be stalled or have stopped responding Click Cancel, or click Continue to wait for the script.") Many users will click Cancel, rendering the form inoperable.
     
    The Javascript timeout limit varies by Web browser: It starts to appear once a couple to several dozen script statements have been added to a QuickMode form. I was able to get around some of these issues by simplifying form areas, as well as using different form elements which required fewer script statements. However, both of these fixes necessitated making a compromise in how I would ideally like the form to appear and behave.
  • Cross-browser rendering problems
    It wouldn't be a real Web project until you encounter rendering problems with Internet Explorer, right? Well, I encountered some head-slamming, gob-smacking frustration when trying to get certain QuickMode layout configurations to appear properly in Internet Explorer. (I was testing on IE8 on Windows Vista.)
     
    QuickMode uses "sections" to enclose and organize form elements. A section's contents can be defined to be "all in a row" or to "wrap each element." Using different combinations of nested sections and form elements allows for a wide variety of form layouts. In many ways, this system works great, but I started to encounter inconsistent and strange layout issues in IE on more complicated forms with more complex layouts. In addition, I also encountered layout inconsistencies with specific form elements applied in particular ways. (For example, I couldn't get a set of checkbox elements to line up "all in a row" in Internet Explorer: Each would occupy an entire row and suffer from strange spacing issues.)
     
    My solution? Make the forms simpler so that they render properly in Internet Explorer, even though this means that I'm not getting the layout I desire. The result is wasted screen real estate and a less attractive form: Not ideal at all ...
  • Limited commands within QuickMode scripting
    Although QuickMode scripting is extremely easy, it is mostly usable for turning the visibility of form elements and form areas on and off. A couple form field types (notably the checkbox) include more sophisticated commands (like !checked or !unchecked ... there are also some limited and/or-type options), but it would be difficult or impossible to apply certain script commands to specific form field types. Because of this, scripts can easily get bloated, resulting in Javascript timeout errors on the front end (see above).

Those were some of the main issues. Some other minor issues I encountered included: two Save buttons in the QuickMode interface (confusing); minor compatibility issues with the JCE editor; some unexpected article plugin issues that required troubleshooting; and I found the support forums activity level to be a little meh.

In Conclusion

I consider BreezingForms to be a very good Joomla extension that I plan to continue using on my own Web sites, as well as those of my clients. As noted earlier in this post, there are some caveats for its use when trying to build very large or complicated forms. However, BreezingForms always delivered in terms of proper and expected functionality when storing and forwarding form data.

If you'd like to see some of the Breezingforms I built in action, visit the following links:

Bit.ly URL for this article:  http://bit.ly/ao3sBg