ProcessWire Weekly #25

25th issue of ProcessWire Weekly is here with latest modules, core updates and more. Read on!

Lately, we've been busy simply trying to cover the new module additions, and this week is no exception. This time we're introducing a couple of very interesting new modules – two of which are related to managing images – and in the core updates section we've got some pretty neat features too.

Just as a bit of a reminder, most things related to ProcessWire happen at the support forum, so if you're not a subscribed user yet, consider becoming one now. Our forum is always a great place to hang out, discuss, and perhaps even learn something new!

Hope you'll enjoy our content for the week, and please drop us a note if there's anything important missing. Your feedback is always appreciated.

Latest updates to the ProcessWire development branch (2.5.7)

We've got some pretty big updates this week, actually. See Ryan's latest blog post for all the juicy details, but here's a summary of what's new or changed:

  • File drafts for AJAX upload.
    When a file is uploaded using AJAX, it will no longer become instantly visible on the page; a special draft status will be triggered for the file instead, hiding it from the frontend of your site. The file only becomes visible after the user has saved the page she was editing – and if the page isn't saved, the file draft will eventually be automatically deleted. Note: this is not compatible with the recently added "replace" option for file fields.
  • Field/template context upgrades.
    Until now it has only been possible to configure a couple of basic settings of a field, including visibility and inputfield width, on a per-template basis. After this upgrade, Fieldtypes can specify which fields are customizable in the template context. As an example, core InputfieldText now allows per-template customization of the initial value, pattern, placeholder and max length.
  • Per-template custom labels for Content and Children.
    Labels of Content and Children tabs in page edit are now customizable on a per-template basis. This can make page edit feel more coherent in certain situations, since now the labels can reflect the content of said tabs.

There were also some smaller updates:

  • PageTable field has new option for keeping the modal dialog window open after save.
  • The maximum amount of system notification ghost items displayed at once and the position of said items (left or right) are now configurable.

SrcSet Textformatter adds support for responsive / adaptive images

SrcSet Textformatter applies the srcset attribute (and a few others if needed) to <img /> elements in a field. Configuration options of the module let you define which size variations of each image should be automatically generated, including specific support for HiDPI ("Retina") images and low-quality placeholder images.

The example use cases listed on the modules directory page include serving images sized properly to each visitor based on screen size, displaying HiDPI images to Retina screen users, and easily implementing lazy loading of images.

In any case, this is yet another cool new tool provided by the nice folks at Conclurer!

Generating placeholder images with the latest module by Soma

Placeholder Images is a new module that generates images based on width/height and (optional) background color, text color and custom text settings.

One interesting aspect of the module is that it doesn't store images on the disk, but serves them directly using data URIs. This makes a lot of sense especially in the case of placeholder images – they're rarely meant to be a permanent part of the site, and this way they won't hog any unnecessary disk space either.

Thanks to Soma for putting this together, definitely a great addition!

Textformatter Make Links automatically converts URLs to links

Textformatter Make Links is a textformatter for converting URLs (including "regular" URLs, email addresses with or without the mailto: prefix, ftp: URLs, etc.) to links during page rendering. Behind the scenes, this module makes use of the fHTML::makeLinks() from the Flourish library.

For those not familiar with Flourish, it's a neat library providing an extensive collection of tools for all sorts of web-related tasks. If you'd like to use its features in your projects, I'd recommend checking out the Flourish auto-loader module.

Anyway, thanks to Interrobang for making Textformatter Make Links – very nice addition!

Extending page relations with Fieldtype Page With Date

FieldtypePageWithDate and InputfieldPageWithDate are an extension of the native page field. In addition to storing page references, they also store a date for each reference, thus allowing you to easily find out (and output) the date each specific page was selected.

This module, released by Raymond Geerts, also serves as an example of taking an existing module and extending it with a feature that gives it a new purpose – a very real benefit of using open source software.

Thanks, Raymond – this will surely be useful to some of us!

Site of the week: Storyboard GmbH

Storyboard GmbHStoryboard GmbH is described as a "media production company", and based on their site they apparently handle just about everything – from concept design to project management and editing – related to magazine publishing.

This responsive and stylish site was crafted by Okapi, a web agency based in Munich. The site features asynchronous loading of pages combined with real-time URL updating via history.pushState() and, behind the scenes, utilizes at least AIOM+ (All In One Minify) and ProCache modules for a bit of a performance boost.

Another great example of interesting things built with ProcessWire – congratulations to Okapi for a job well done!

Stay tuned for our next issue

That's all we've got this week, thanks for reading! Our next issue will be out 8th of November and sent a few days later to ProcessWire newsletter subscribers. In the meantime, comments are always welcome, and you can also send us feedback via the feedback form.

Until next time, happy hacking with ProcessWire!

Post a comment