ProcessWire Weekly #430

In the 430th issue of ProcessWire Weekly we're going to check out some brand new third party modules, a new site of the week, and more. Read on!

Welcome to the latest issue of ProcessWire Weekly. This week we've got a total of three brand new third party modules to check out — Language Field Export/Import module from Ryan, FindMerge from Robin Sallis, and RockFrontend from Bernhard Baumrock.

As always we'll also introduce a new site of the week, which this time belongs to Dr. Cornelia Kneser, a psychotherapist based in Lörrach, Germany. Her new site was built by designconcepts GmbH, and looks absolutely gorgeous.

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!

In the blog this week: introducing the Language Field Export/Import module

In this week's post at the blog Ryan introduces the Language Field Export/Import module, which is a new, publicly available (non-commercial) module developed by Ryan with support from Update AG and Oliver Arnoczky.

The Language Field Export/Import module in a nutshell

Simply put, the Language Field Export/Import module adds support for exporting data from multi-lingual fields into various formats suitable for translators to work on, and importing said data back to ProcessWire once it has been translated.

The admin page for the Language Field Export/Import module, with settings for source and target language, fields and pages to export, file format, and other export options.

Currently JSON — with XLIFF-inspired structure, with some additions to better support web context — and CSV are supported as export/import file types. JSON is primarily intended for dedicated translation tools, while CSV is for spreadsheet software.

Language Field Export/Import vs. built-in translation tools

While ProcessWire's built-in translation tools are already quite intuitive, they of course rely on the translator translating the content directly in the page editor. There are a few common situations where the approach provided by this module may be preferable:

  • When working with third party translators, it's a often a requirement — or at the very least strongly recommended — that you provide them with a translation file to work on. Even if this might be negotiable, with this module there's no need to.
  • With export/import files, translators don't require access to the ProcessWire site — or any experience or knowledge about using the system, for that matter. Again this can be quite helpful when working with third party translators.
  • Exported/imported files may contain data for as many pages/fields as necessary. In addition to potentially making the translation process smoother, this can also be tremendously useful if using automated tools as a part of the process.

Note: when we talk about built-in translation tools here, we're referring to multi-lingual fields and the tools available via page editor. When it comes to static string translations, similar import/export tools are already a built-in part of the core translations manager.

For more details about this module, including screenshots and instructions for various steps of the translation process, be sure to check out the weekly blog post from Ryan. Thanks!

New module: FindMerge

FindMerge is a new third party module developed by Robin Sallis. This module adds a Pages::findMerge($selectors, $options) method, used for merging the results of multiple selectors into a single, efficient, paginated set of results.

List of available options:

  • "limit" (integer) for setting the limit used for pagination.
  • "start" (integer) for setting the start value for pagination.
  • "excludeExisting" (boolean, defaults to true) for choosing if pages already matched by earlier selectors should be skipped over for later selectors.
  • "keepFirst" (boolean, defaults to true) for defining whether it's the first or the last instance of a page matching multiple selectors that should be kept.

Here's what the basic usage of this method looks like:

$results = $pages->findMerge([
    'title%=weekly', // title must contain the word "weekly"
    'publish_from>=2021-0101', // publish date must 2021 or later
    'template=post, sort=title, limit=15', // 15 posts in alphabetical order
], 25);

In the example above we used a little shortcut, where instead of $options array we just provided the method with an integer, which then gets treated as the value of the "limit" option. Additional instructions and in-depth code samples can be found from the FindMerge support forum thread.

If you'd like to give this module a try, you can install it via the built-in modules manager, or download or clone the module files from the FindMerge GitHub repository. Big thanks to Robin for sharing this very useful module with us!

New module: RockFrontend

One of the latest third party modules to hit the modules directory is a very interesting project from Bernhard Baumrock: RockFrontend. RockFrontend is, as Bernhard explains, a progressive frontend module for ProcessWire. Essentially it's a collection of a few front-end development tools and patterns, bundled into a single module:

  • Browser live reloading and LESS utility features (which require the LESS module)
  • Project structure based around _main.php and optional section and layout files
  • Bundled "blank" and "Uikit" base site profiles and a Uikit framework downloader
  • Support for template engines, with built-in support for the Latte engine
  • Front-end editing support via the ALFRED JavaScript library

Here's a rather detailed video, in which Bernhard introduces the RockFrontend module and walks us through the steps required for setting it up, and rapidly building custom sites using various features provided by the module:

If you'd like to give RockFrontend a try, you can install it via the modules manager in ProcessWire admin, or clone or download the module files from the RockFrontend GitHub repository. For more details, check out the RockFrontend support thread.

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

Site of the week: Dr. Cornelia Kneser

Our latest site of the week belongs to Dr. Cornelia Kneser, a psychological psychotherapist based in the town of Lörrach, southwest Germany.

The website of Dr. Kneser was created by designconcepts GmbH, and for one stands out from the crowd due to the design, which is a beautiful combination of elegant simplicity and hand-drawn sketches. The UI on this site is about as minimal as it can be: content is all on a single column, and slide-out menu, fixed logo, and minimal footer are the only repeating UI elements.

As for behind the scenes details, it looks like the front-end of this site is built on top of the Uikit front-end framework, with additional dynamic effects powered by the barba.js JavaScript transitions library. As for third party ProcessWire modules, the only one that we could identify is the commercial caching and minification solution ProCache.

Big thanks to the folks at designconcepts GmbH for sharing this project with us, and our congratulations to Dr. Kneser for her gorgeous new ProcessWire powered website!

Stay tuned for our next issue

That's it for the 430th issue of ProcessWire Weekly. We'll be back with more news, updates, and content Saturday, 13th of August. 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!

This post has 1 comment:

Andreas Scheffczyk on Wednesday 24th of August 2022 14:51 pm

Thank you very much for mentioning our site.

Post a comment