ProcessWire Weekly #21

This week we're going to introduce couple of new modules, new core addition with a lot of potential and more – read on!

It might be the 2.5 release that's driving new traffic in, but the ProcessWire forum seems to be quite a busy place lately. We're seeing a lot of new faces there these days, which is great for the community – we're always happy to welcome new users, regardless of level of skill or experience!

Quite a few new sites have also been posted to our showcase, and a bunch of new modules added to the modules directory, so there's definitely no lack of topics to cover in these weekly summaries. With that in mind, let's get this thing started...

Latest core updates

According to Ryan's latest blog post "ProcessWire 2.5.3 & 2.5.4", current stable version of ProcessWire (2.5.3) brings in various fixes and minor updates – and also adds some rather interesting new features:

  • It's now possible to import children of the current page to a PageTable field even if they weren't initially added through the PageTable field. You'll see checkboxes below your PageTable fields for any children that can be imported.
  • Recent Pages in Pages menu provides shortcuts to pages recently created or edited. These are separated into four lists: pages created by you, pages edited by you, pages created by other users and pages edited by other users.
  • In addition to listing recent pages, there's also a new option in Pages menu to "add another"; a handy shortcut for adding multiple pages with same parent and template.
  • New API function wireDate() provides easy access to features of wireRelativeTimeStr(), date() and strftime(). There's a bit more to it too, but that's roughly the gist of it.

The Recent Pages menu is a cool new feature, and other updates are more than welcome too. Still, the real "hot stuff of the week" is latest addition to the dev branch: brand new notifications system for ProcessWire!

New notifications system for ProcessWire

When I first heard that a new notifications system was being developed, that didn't sound too exciting. After reading Ryan's post about the new system, well... let's just say that my opinion changed quite a bit!

Since Ryan already covered this in detail in his blog post, we'll just go through the main points of interest here:

  • New notifications system extends – and supercharges – existing message and error notifications system. It takes responsibility of displaying existing messages, but is less obtrusive, properly AJAX driven (providing real-time messaging) and boasts a ton of other new features.
  • The UI is simple and easy to use, with new messages appearing for a moment on the screen – unlike old messages, which would appear and stay at the top of the screen. There's also a little "bug" at the top of the page displaying the number of new messages and allowing you to view them whenever you want to.
  • Messages can be targeted at particular user, and that user doesn't even have to be online at the time – she'll see that message next time she logs in. Combined with the ability to send a copy of the message via email this alone opens up a whole lot of new possibilities!
  • Messages come in various flavors (message, warning or error), are customizable with an icon, can contain HTML markup and support real-time progress bars.
  • One feature that developers specifically should be pretty pumped about is that there's going to be an API available for both PHP and JavaScript.

Take a look at Ryan's blog post at processwire.com for detailed descriptions and examples. Overall this new system is a vast improvement over existing one and quite probably the best notifications system I've ever seen in any CMS product out there!

Fieldtype Decimal provides precision for handling floating point numbers

ProcessWire has a built-in floating point field, Fieldtype Float. The problem with this field for some users and use cases is that the implementation isn't suitable for storing data that needs to be handled with high precision – product prices, etc.

Fieldtype Decimal, built by Sebastian Forsman, is an alternative to Fieldtype Float intended for use cases where precision is more important than speed. It stores values to the database using DECIMAL data type, which is more appropriate to such cases than the FLOAT data type used by Fieldtype Float.

For more details about issues related to floating point values and valuable tips on handling precision floating point arithmetic operations with PHP, please take a look at the related development thread.

Protected Mode protects your entire site from public visitors

By design, ProcessWire doesn't allow home page to be closed from public. Combined with the default access management being based on template level settings, quickly hiding your entire site can sometimes be a tedious task (and may require changes that take a while to undo).

For cases in which you need an easy way to close your entire site from the general public – such as while you're still working on it – Adrian has built a new module titled Protected Mode. What this module does is simply hooking into page rendering and presenting a login form to users, instead of any actual page content.

Comparing this module with the Maintenance Mode module built by Peter Burlingham, Protected Mode doesn't display the "maintenance mode" badge on the site. It also provides a login form of its own, and tools for styling it. There's actually a bit more to it, but you can read about that in the Protected Mode forum thread.

English Name Sanitiser is a new commercial for ProcessWire

English Name Sanitizer, created by Steve Dickinson (@netcarver), is a new commercial module for ProcessWire. The module is capable of converting many malformed English names to proper ones – take a look at the examples at qbox.co, where the module is also available for purchase.

One thing that makes this module particularly interesting in the larger context is that, as far as I know, it's the first commercial 3rd party ProcessWire module so far, considering that lightning.pw, cron.pw and minimize.pw are services and the "Pro-modules" sold in ProcessWire's store were built by ProcessWire's lead developer Ryan Cramer.

While the existence of commercial modules for any free (as in freedom and beer) platform will most likely divide opinions, Ryan has already stated that they're welcome additions to the ProcessWire ecosystem. In the long run, we hope to see them coexisting in harmony with our free (as in beer) modules.

If you've got some English names to sanitise, don't forget to check out what Steve has built – the fees are reasonable, and the module looks pretty neat!

Site of the week: Horton-Stephens

Horton-Stephens is a photographer's agent from London. Apparently they are also the leading photographer's agent around that area – apart from that they're not too keen on talking about themselves, but their roster of photographers definitely speaks for itself.

Their new site, built by Ben Byford, boasts a clean and distraction-free design. Apart from that, it's also a real treat for JavaScript and AJAX fans. The way content is loaded asynchronously as you browse the site and a menu that gives "dynamic" a whole new meaning give this site rather unique vibe, to say the least.

Another interesting feature is the custom gallery tool, which allows you to pick and choose your favourite photographs and display them on the "My Custom Gallery" page. There's also an option for requesting any of the galleries on the site (including your custom gallery) as a PDF.

If you're a fan of awesome photography – or just interesting design – this site is well worth visiting!

Stay tuned for our next issue

That's it for this week. We'll be back next Saturday, 11th of October, with all new topics. Until then, happy hacking with ProcessWire!

As always, feedback, suggestions, topic ideas, etc. are more than welcome via our feedback form. Please don't hesitate to drop us a note if you think that something should be said (or shouldn't be said) in the next issue.

This post has 3 comments:

Arjen on Tuesday 7th of October 2014 16:46 pm

Hi,

Thanks for clarifying. I read it like that you didn't like the path the new notifications system was heading. Indeed, it is much, much more :)

Arjen on Monday 6th of October 2014 10:27 am

Hi Teppo,

Nice post as always. Could you share why you thought "that didn't sound too exciting" on the new noticationsystem?

teppo on Tuesday 7th of October 2014 0:16 am

Arjen: I simply failed to see how far the new system would/could go. "New notifications system" could've meant just an improved version of what we already had -- a few new message types, more polished UI, perhaps some behind-the-scenes improvements, etc.

It turned out to be much, much more than that.. :)

Post a comment