We've got some great updates for you this week, especially for those still running ProcessWire 2.x. ProcessWire 3.x also got a lot more stable this week. In fact, this week ProcessWire 2.x and 3.x formed a new alliance! More
ProcessWire 3.0.22 and 2.8.22
This week we have some nice optimizations and enhancements for the core, as well as some great upgrades in the forums!
Major upgrade for our support forum
We're happy to report that a major upgrade has been put in place at the ProcessWire support forums thanks to our forums administrator Pete! He's spent the last few days preparing everything, and put in the upgrade today. Here's a post from Pete that describes a little more about this upgrade.
Since our store runs on top of the forums, the ProcessWire store also got a major upgrade. There are a lot of new features available and several changes, so it's going to take a couple days before I've got everything looking right there, but it is otherwise be fully operational. If you run into any confusion, or find that anything isn't working for you, please let me know.
Major optimizations to Inputfield forms
All forms generated by ProcessWire use our Inputfields system, which is a module type used for forms. This past week, I was working with a site that had a page editor with a whole lot of inputs, and 6 languages on top of that. It was literally taking 20 seconds to render the page editor. While that was well more than 1000 inputs, it still seemed too slow, and a good opportunity to optimize.
A whole day went into looking for bottlenecks and things that could be optimized, and a lot was found! That page editor that took 20 seconds to render, now renders in 0.3 seconds! You should notice the speed difference in pretty much any page editor or form in ProcessWire. For instance, our form for editing templates (Setup > Templates > Edit) has a lot of inputs and can be slow to render. Try it now, we think you'll notice the difference!
New configuration option for our image fields
In recent weeks we've put in some pretty major upgrades to our image fields. One of those was the option for 3 different views: square grid, proportional grid, and vertical list mode. Prior to today, it always defaulted to square grid mode, unless the user changed it themselves. Now you can specify what you want the default to be in your Image field settings:
Added back support for HTML5 required attribute
The HTML5 required attribute has always been a bit problematic in ProcessWire (Inputfield) forms because we support fields that have varying degrees of visibility, can live on tabs, and can show/hide according to the values of other fields. When you try to submit a form with a missing required field, the browser prevents submission of the form and highlights the field… so long as it happens to be visible. If it's not visible, then confusion ensues. This is still the case, and maybe someday the browsers will figure out a better solution.
Our solution has been to simply not use HTML5 required attributes, and instead use server-side validation, which is also more consistent with the nature of Inputfield forms. However, if you are aware of the considerations involved, there are still cases where that HTML5 required attribute might be useful. For that reason, we've added support for it back into InputfieldText (which in turn affects a lot of other Inputfields). If you want to use it, you have to check a box when configuring your field. You'll see the checkbox for it appear after checking the "required" checkbox. Just remember not to use this option on inputs that might be hidden in other tabs or affected by field dependencies.
Major enhancements to our Password field
Our password field (InputfieldPassword) has always been a little barebones, and has been in need of some love. ProcessWire's strong focus on security has not been well reflected by the password field being so basic with little configurability. So this week, it got a lot of new options:
You can configure the password requirements by editing the "pass" field settings.
Configurable requirements include: uppercase letter, lowercase letter, digit, symbol/punctuation, minimum length, complexity factor, and whether or not to allow common words.
The minimum requirements are stated when entering a password, and requirements already met are indicated.
Whitespace is now allowed in passwords.
Our definition of letters and digits is no longer specific to Latin/ASCII. If you specify a password must contain an uppercase character (for instance) then it can be an uppercase character in any language supported by UTF-8.
A status accompanies the password input and indicates states: Not yet valid, Too common, Weak, Ok, Good, and Excellent.
A percentage accompanies passwords that meet the minimum requirements. Passwords that meet a percentage of 100% are considered the strongest.
The 2nd input (confirm) indicates when any entered character causes the passwords not to match. It likewise tells you when the passwords match.
Below is a screenshot showing the configuration options for the Password field. To edit the setting for your own password field, go to Setup > Fields > Filters > Show built-in fields, and click the "pass" field. You'll see these options on the "Input" tab.
Below is a short GIF demonstrating what it looks like when you are entering a password:
Hope that you all have a great weekend and I look forward to chatting in the newly upgraded ProcessWire support board! Remember to read the ProcessWire Weekly this weekend, and when you get a chance, please thank Pete for all his work in keeping us up-to-date with the forums!