ProcessWire 3.0.121 core updates and more

ProcessWire 3.0.121

ProcessWire 3.0.121 is on the dev branch and this should be considered release candidate 1 (RC1) of our next master branch version. Relative to 3.0.120 this version fixes a few minor issues, though nothing big enough to document here.

I know I've mentioned it before, but just to repeat: if you come across any issues that are not present on the current master version (version 3.0.98) please let me know. A good way to do this is to post the issue report and indicate that it is exclusive to the dev branch.

Of course, it's always worthwhile to post issue reports regardless of how long they've been around. But with release candidate versions, at minimum we want to make sure the next master version doesn't introduce any new issues relative to the existing master.

If you've already posted such an issue and it's not been fixed yet, please post a reply in the report and indicate it's an issue on the dev branch that's not in the master, and I'll be specifically looking for any of these this week.

I've been scouting all over the issue reports this week looking for anything that fits this criteria (dev branch specific), and I've actually not found any issues that do yet (that I can remember). Though there's plenty of issue reports, so I've been focused on fixing those that have little possibility of introducing new issues or need significant post-fix testing. I'll save fixing any issues that might need more marination time on the dev branch until after the next master is out. Thanks to all of you that have been helping out in our issues repository!

Clear image variations (Page Action module)

Today I posted a new PageAction module in the ListerPro board. This one is called PageActionClearImageVariations. When installed with ListerPro, this page action enables you to clear variation files of images on any pages. This is useful if you've got extra image files lying around, perhaps containing old image sizes no longer in use.

This was originally developed for the ProcessWire sites directory, where we generate a couple different sizes of each image, for more than 800 sites. When working on the site redesign, the needed dimensions changed. All the files having the old dimensions were no longer needed, so this tool helped clear out hundreds of megabytes of unnecessary images. The following screenshot outlines the filters available to select which images should be cleared:

This module is available for download now to ListerPro subscribers in the support board in the ProcessWire forums (requires login). This accompanies the other existing PageAction modules for ListerPro which enable you to apply actions to any number of pages at once. These include:

  • CSV Page Export
  • Set Field Values
  • Delete/Trash Pages
  • Send Emails
  • Move Pages
  • Set Page Status
  • Clear image variations (new)

A couple new modules in production

Some of you asked about the search engine demonstrated in the screenshots last week. I've developed it as a module and am likely going to add it to the ProDevTools set of modules once completed. The module lets you search not just pages, but any other kind of data you want to search. That's how we've got it searching the ProcessWire API and modules directory right now, which aren't searched as pages. It does this by letting you add the implementation for performing the search, while it handles the the logic for determining when and where each part should be called. You add new search types and provide the implementation for each like this:

$search = $modules->get('ProSiteSearch');
$search->add('Name of search', function($q, $limit){
 // find & return results ($q is the search text)

Here's an abbreviated version of what my /site/templates/search.php on the new website looks like:

$search = $modules->get('ProSiteSearch');

$search->add('Showcase', function($q, $limit) {
  return pages()->find("template=sites, limit=$limit, title~=$q");

$search->add('API', function($q, $limit) {
  $api = wire('modules')->get('ProcessWireAPI');
  return $api->search($q, [ 'limit' => $limit ]);

// and so on...
$search->add('Modules', function($q, $limit) { ... });
$search->add('Blog', function($q, $limit) { ... });
$search->add('General', function($q, $limit) { ... }); 

The module handles the rest in terms of AJAX/JSON output and provides all the data necessary for your regular search results output. It comes with examples using Uikit 3, but does not have any framework-specific dependencies.

In addition to that, I've also recently been working on ProMailer which is a module I developed for managing the weekly newsletter distribution. This is something I actually developed a few years ago, but have recently been improving it and making it more into something that might also be helpful to others. The module is useful if you want to do your email newsletter production, distribution and subscriber management in-house, rather than outsourcing to an external service like MailChimp. That's how we do it at, and have for several years. Though the module has been kind of bare-bones (since I've been the only user of it), but I've been recently improving upon it not just for the new website, but also hopefully to share too.

Thanks for reading, have a great weekend and enjoy the ProcessWire Weekly!


  • HMCB


    • 2 years ago
    • 21
    Thanks Ryan! These are two pro modules I’ll definitely purchase when released.

    With the mail module, does it throttle delivery so we fly under the radar with our hosting companies?

    • ryan


      • 2 years ago
      • 41
      Thanks! Yes, it does throttle delivery, and you can tell it how many messages to deliver per request. It simply uses a meta refresh tag to work its way through the list, so you leave your window open and can watch it progress. It's simple, but I've been doing it this way for many years and it works quite well. Though when it comes to email distribution, I think it's better to use a dedicated SMTP service designed for bulk distribution rather than a web host. I find that web hosts are rarely ideal even for transactional email, much less bulk distributions, though I suppose if you get everything right on the DNS side it would work just fine too.
  • HMCB


    • 2 years ago
    • 31
    Also, here’s an interesting new development with regards Gmail.

  • Jakub Pawlak

    Jakub Pawlak

    • 2 years ago
    • 20
    Great feature. Can't wait till I will have chance to play with this tool pro tool.

NextProcessWire 3.0.123 new master


Happy Holidays! This latest master version of ProcessWire contains hundreds of new additions, fixes, optimizations and more. This post covers all the highlights. More 

Twitter updates

  • ProcessWire 3.0.161 adds support for selector operator stacking, enabling you automatically broaden searches in a single pages.find() call— More
    26 June 2020
  • ProcessWire 3.0.160 adds powerful new text-searching operators, bringing a new level of power to page-finding API calls, especially when it comes to search engine type queries. Post also includes a demo search engine where you can test it all out live— More
    19 June 2020
  • Preview of ProcessWire 3.0.160 with auto-enable of two-factor authentication, new version of TfaEmail and TfaTotp, and new selector operators coming next week. More
    12 June 2020

Latest news

  • ProcessWire Weekly #320
    In the 320th issue of ProcessWire Weekly we're going to check out the latest core updates (ProcessWire 3.0.161), a new third party module called Fieldtype Runtime only, an IndieWeb themed article from Francesco Schwarz, and more. Read on! / 27 June 2020
  • Powerful new text-searching abilities in 3.0.160
    In ProcessWire 3.0.160 we’ve got some major upgrades and additions to our text-search abilities. This brings a whole new level of power to $pages->find() and similar API calls, especially when it comes to search engine type queries.
    Blog / 19 June 2020
  • Subscribe to weekly ProcessWire news

“We chose ProcessWire because of its excellent architecture, modular extensibility and the internal API. The CMS offers the necessary flexibility and performance for such a complex website like ProcessWire offers options that are only available for larger systems, such as Drupal, and allows a much slimmer development process.” —xport communication GmbH