ProcessWire Weekly #452

The 452nd issue of ProcessWire Weekly brings in all the latest news from the ProcessWire community. Modules, sites, and more. Read on!

Welcome to the latest issue of ProcessWire Weekly. This week we're thrilled to announce that there's a new stable master/main version of ProcessWire available — 3.0.210! As usual Ryan has a blog post detailing the key features included in this release.

In other news we're going to check out a new third party module called Google Place Details, and as always pick a new site of the week. 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!

New stable release for ProcessWire, 3.0.210, is now available

This week's blog post from Ryan is all about the latest stable release of ProcessWire, 3.0.210. Previous stable release (3.0.200) was from May 20, 2022 so this version has been in the works for quite a while — and it shows, as there are numerous big features and major upgrades included.

ProcessWire 3.0.210 is the result of hard work from Ryan and our growing list of contributors. This version was in the works for more than six months, from May 2022 to January 2023.

New and updated features in ProcessWire 3.0.210

In his post, Ryan has divided the updates into seven main groups, covering all the key features included in this new version. Here are some highlights from this release:

  • Admin-related improvements, which include
    • login screen updates (among other things a way to avoid unnecessary CSRF related issues),
    • template edit screen updates and multi-language admin experience improvements,
    • new “usage” info section for the field edit screen, and
    • new page editor Inputfield visibility mode "Tab", which makes any inputfield display as a tab.
  • $page improvements, which include
    • new method $page->getMultiple($keys),
    • $page->get() improvements including full support of dot syntax regardless of output formatting state and support for brackets ([]) support for forcing multi-value returns, and
    • support for a $page->getPageListLabel() method which enables custom page classes to return markup specific for the label in the page list.
  • $pages improvements, which include
    • 301 redirects for paths ending with index.php,
    • FieldtypeOptions support for the $pages->findJoin() method, and
    • support for fetching template properties with $pages->findRaw().
  • Inputfield improvements, which include
    • new renderFlags option that lets one define that an inputfield should be "sticky", rendering it before or after other inputfields,
    • new methods for adding classes to different parts of an Inputfield,
    • ability to configure classes for the above mentioned elements interactively in the Inputfield configuration, and
    • inputfields.js updates that enable better error handling and improved field reloading support, and
    • various all-new API level improvements and options.
  • Notifications improvements, which include
    • the ability to include separate label and notice text for messages, and
    • easy way to specify the message icon.
  • Comments system improvements, which include
    • a new separate comments editor,
    • the ability to add comments or replies from within the module,
    • support for custom fields via meta(), setMeta(), getMeta(), and removeMeta() methods,
    • new allowChildren() method to Comment class, and
    • comments.js updates so that it now allows deselecting stars in cases where the user might've accidentally clicked on a stars input.
  • Other API improvements, which include
    • the ability to add new items to WireArrays with $items[] = $item syntax,
    • IDN, UTF-8, ASCII, and DNS support options for $sanitizer->email(),
    • $hookable option for wireClassExists to also look for hookable versions of the specified method, and
    • new Debug::toStr() method.

... and more. As always, in addition to aforementioned feature updates there are also numerous smaller improvements, bug fixes, and refactorings included in this release, improving the overall quality, performance, and future potential of the core.

For more details, in-depth explanations, and code samples, be sure to check out the blog post from Ryan. ProcessWire 3.0.210 is available right now via the downloads at processwire.com as well as the GitHub repository, so be sure to give it a spin!

New module: Google Place Details for ProcessWire

Google Place Details is a brand-new third party module developed by the first-time module author Stefan Thumann, and one of the latest modules to land in our modules directory. As the name suggests, it can be used to fetch information about a place from the Google Maps API, useful for customer testimonials sections and similar features.

In order to use the Google Place Details module you'll need to obtain an API key from Google. This is at least for now free until specific quota is reached, but you do need a credit card, and of course there could be charges if your use goes over the free quota. After configuring the module with your API key and place ID you can request data from the API, which is returned as JSON:

$details = $modules->get('GooglePlaceDetails')->getPlaceDetails();
foreach ($details['result']['reviews'] as $review) {
echo "<h4>{$review['author_name']}</h4>";
echo "<p>{$review['text']}</p>";
}

For users that want to get things up and running quick, there's also a method available that generates markup right out of the box:

echo $modules->get('GooglePlaceDetails')->getUIKitMarkupExample();

For more examples and a sample of what the data returned by Google Maps API might look like, be sure to check out the Google Place Details support forum thread. In case you'd like to give this module a try, you can install it via the modules installer in the admin, or get the source code from the Google Place Details GitHub repository.

Big thanks to Stefan Thumann for sharing this project with us, and congratulations for your first published module!

Site of the week: Petibol

Our latest site of the week is that of Petibol, which is a Portuguese company developing and producing Expanded Polypropylene (EPP) and EPS components and packaging. Their new website is a co-project from SuperTINY agency and GOdesign.

This is a beautifully designed and multi-lingual site with various small effects, including transitions that occur while scrolling the content, as well as various purpose built GIF animations used to give the message itself a bit of extra boost. Despite there being plenty of content here as well, the way things are laid out make it all super easy to read, and keep the reader's interest up.

As for behind the scenes details, the showcase forum thread for the Petibol website provides us with some pointers: the front-end was built with SCSS and JavaScript, with no major libraries involved, while content is managed using a Repeater powered block builder. The end result is a super clean and performant site, with next to none external dependencies — which, as the showcase forum thread also points out, is in itself a very real benefit in terms of future maintenance.

Big thanks to Helder Cervantes of SuperTINY agency for sharing this project with us, and our congratulations to both the team behind the website, as well as the client for their new, ProcessWire powered website. Great work from everyone involved!

Stay tuned for our next issue

That's all for the 452nd issue of ProcessWire Weekly. We'll be back with more news, updates, and content Saturday, 14th of January. 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