ProcessWire Weekly #426

In the 426th issue of ProcessWire Weekly we're going to check out the latest core updates, introduce two new third party modules, and more. Read on!

Welcome to the latest issue of ProcessWire Weekly! This week we're going to check out the latest core updates, and check out a couple of newly released third party modules: PageRenderFindReplace and RockAnalytics.

Our latest site of the week is that of the German nursery Gärtnerei Hartmann — which, among other things, features a gorgeous layout and plenty of quality content. Keep on reading for more details.

Thanks to all of our readers for being here with us again, and as always, any feedback is most welcome – please don't hesitate to drop us a line if there's anything in your mind you'd like to share with us. Enjoy our latest issue and have a great weekend!

Latest core updates: ProcessWire 3.0.202

This week there's just a brief weekly forum update from Ryan, in which he sums up the updates included in our latest dev version, ProcessWire 3.0.202. This version contains dev branch updates since the beginning of June, so much of it has been covered in our weekly issues already, but here's what's new this week:

  • New Debug::removeSavedTimer($key) method used for removing a single timer, and Debug::removeSavedTimers() for removing all timers.

  • Update for decimal fields, adding inputmode="decimal" for improved fractional numeric input, particularly for mobile devices.

  • Update for PagesPathFinder that 301 redirects paths ending with "/index.php".

  • Fix for WireInput issue where setUrlSegments() didn't reset all segments when given array of segments smaller than what was previously set.

  • Fixes for WireHttp cURL POST method issues caused by the 'expect' header and an extraneous boundary in the content-type header.

  • Fix for issue #1593 where $sanitizer->httpUrl() had by default allowRelative set to true, sometimes resulting in unexpected behaviour.

  • Fix for issue #1594 where Decimal field formatting was somewhat inconsistent.

  • Fix for issue #1595 where $sanitizer->markupToText() was timing out if the "newLine" param had an invalid value.

ProcessWire 3.0.202 also contains updates for improved PHP 8.1 compatibility, resolving a few newly found deprecation notices. More details about this week's updates can be found from the GitHub dev branch commit log.

That's all for our core updates section this week, but be sure to also check out the weekly update from Ryan at the ProcessWire support forum. Thanks!

New module: RockAnalytics

RockAnalytics is a brand new third party module from Bernhard Baumrock. This module provides easy integration with the Plausible analytics platform, implementing an admin page with embedded dashboard. And while the module doesn't inject the tracking code on your site, that's as simple as copy-pasting a single script tag into your template files.

Screen capture of the Plausible analytics dashboard, with data for website.

In case you're not yet familiar with Plausible, it is a lightweight web analytics solution advertised as a privacy friendly alternative to platforms such as Google Analytics. It doesn't set any cookies and — according to the authors of the platform — is fully compliant with GDPR, CCPA and PECR.

What's also nice about Plausible is that it's open source and available via GitHub. You can easily host your own instance if you prefer it that way, but they do also offer a paid hosting plan with a 30 day free trial. Again according to the authors the paid version is hosted in the EU and powered by European-owned cloud infrastructure.

You can install this module by cloning or downloading it from the RockAnalytics GitHub repository into your site's modules directory. And if you'd like to see the dashboard in action before giving Plausible a try, check out the demo dashboard for

Big thanks to Bernhard for developing this module and sharing it with us!

New module: Page Render Find/Replace

Page Render Find/Replace is another newly released third party module. In a nutshell this module is a wrapper around the Find/Replace Textformatter from Ryan, making it possible to apply replacements to rendered page content — which, in turn, may be preferable in some situations over more fine-grained field-by-field replacements.

Use cases for Page Render Find/Replace are likely to be quite similar to the ones that apply to the textformatter module, such as...

  • handling host name changes gracefully, making sure that there are no lingering references to the old host on your site,
  • replacing or updating product or service names, brand names, references to old functions in documentation, or
  • correcting markup issues or improving SEO by updating heading levels or adding additional classes or attributes

Page Render Find/Replace has a built-in logging feature: after enabling said feature, a log entry with page URL will be saved every time a replacement occurs, so that you can later review and fix the issues in source code or page content. And in case you need to limit the scope of changes, there's also a config setting for defining pages it applies to.

If you'd like to give this module a try, you can install it via the module's manager in the admin, or clone or download it from Page Render Find/Replace GitHub repository. If you have any questions or require additional assistance, visit the Page Render Find/Replace support forum thread.

Site of the week: Gärtnerei Hartmann

Our latest site of the week belongs to Gärtnerei Hartmann, a nursery located at Augsburg in Bavaria, south-east Germany.

While Augsburg is one of Germany's oldest cities, Gärtnerei Hartmann also has quite a lengthy history, having been founded back in 1931. Among other things they sell flower bouquets and house plants, offer an overwinter storage and maintenance service for large house plants, and design gardens.

In the Hartmann family, everything revolves around plants in the third generation. We pass this experience on to our customers with love and passion.

— Gärtnerei Hartmann

The Gärtnerei Hartmann website was created by Kasper Communications GmbH, and offers a gorgeous design, plenty of quality content laid out in varying content pages, and numerous high quality photographs. The site works smoothly on both mobile and desktop screens, and it appears that the content on this site is built with some sort of block based content builder.

The front-end of the site is largely custom-built, so no full-blown front-end framework here. Meanwhile it does make use of some popular third party tools and libraries, such as PhotoSwipe for the stylish image galleries and brainsum cookieconsent script as the cookie consent solution. As for third party ProcessWire modules, there's only one that we could spot here, and that would be the popular Pro module FormBuilder.

Big thanks to the folks at Kasper Communications GmbH for sharing this project with us, and our congratulations to Gärtnerei Hartmann for their splendid, ProcessWire powered website!

Stay tuned for our next issue

That's all for the 426th issue of ProcessWire Weekly. We'll be back with more news, updates, and content Saturday, 16th of July. As always, ProcessWire newsletter subscribers will get our updates a few days later.

Thanks for staying with us, once again. Hope you've had a great and productive week, and don't forget to check out the ProcessWire forums for more interesting topics. Until next week, happy hacking with ProcessWire!

Post a comment