ProcessWire Weekly #324

In the 324th issue of ProcessWire Weekly we'll cover ProcessWire 3.0.163, ProCache v4, two brand new third party modules, and more. Read on!

Welcome to the latest issue of ProcessWire Weekly! In this issue we're going to check out the latest ProcessWire core updates — version 3.0.163, available right now via the dev branch — as well as the latest version of the commercial ProCache module (v4).

Two newly released third party modules, AppApi and Page Reference Default Value, will also be covered in this issue, and last but not least we've got a shiny new site of the week belonging to the German digital agency known as deux.

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.

ProcessWire 3.0.163 and ProCache v4

In his latest weekly update posted at the support forum Ryan introduced ProcessWire 3.0.163, as well as a new version of one of his popular commercial modules, ProCache. We'll cover some of the most prominent new features for both here, but as always, be sure to visit the forum thread for more details.

According to Ryan we're getting close to releasing a new master version of ProcessWire. This could come out as soon as end of the month or the beginning of August, and what it mostly means in terms of core development is that in the next few weeks the focus will be more on bugfixes and general improvements than on adding new features.

What's new in ProcessWire 3.0.163?

Probably the most notable new feature introduced by this week's commits is something called configurable module upload (or install) options. What this means in practice is that there's now a new config setting called "moduleInstall", which you can use to specify exactly how new modules can be installed:

$config->moduleInstall = [
    // allow install from ProcessWire modules directory?
    'directory' => true,

    // allow install by module file upload?
    'upload' => 'debug',

    // allow install by download from URL?
    'download' => 'debug',

The values above are the new defaults, but you can tweak these settings to your liking. Possible values for each item are boolean true (always allow), string "debug" (allow while the site is in debug mode), and boolean false (never allow).

As for why this feature needs to exist, think of it this way: once a site is online, it can be potentially risky to install new modules, especially if you don't have the tools and know-how to resolve issues that it might cause. Allowing module installs by developers only is the safest approach, no question about that, but since we don't want to enforce this on every site out there, we'll let the developers make that choice on a case-by-case basis.

Another new feature in 3.0.163 is the ability to find input variables with $input->post->find() and $input->get->find() — or findOne(), if you only want a single result. This feature supports wildcards (such as title_*) as well as regular expressions, and looks for results in the name and (optionally) value of the input variable. For more details check out the comments block for WireInputData::find().

Introducing ProCache v4

Some of the new features you can find from ProCache v4 we already covered last week in ProcessWire Weekly #323, but you can find a revised and updated list from Ryan's weekly update post.

As we've already mentioned, ProCache v4 is indeed a major upgrade. The codebase of the entire module been refactored, .htaccess rules have been revisited, there are new settings for trailing space handling, some all-new cache clearing features have been added, and there are lots of new hookable methods for power users.

If you've already purchased a license for ProCache, you can download the latest version from the downloads thread at the support forum. If not, this would be a great time to take a closer look and perhaps consider purchasing the module (and thus supporting the development of ProcessWire).

That's it for the core updates section this week. Be sure to visit the weekly update at the support forum for more details on both ProcessWire 3.0.163 and ProCache v4, and keep on reading for more ProcessWire related news and updates!

New module: AppApi

AppApi is a new module by Sebastian Schendel, the author of the Twack component module featured in our 310th issue. Now, the gist of AppApi is that it provides an easy way to build JSON API endpoints on top of ProcessWire.

Right out of the box this module provides...

  • simple routing definition,
  • authentication (three different authentication-mechanisms ready to use: PHP sessions, single JWT authentication, or double JWT authentication),
  • access-management via UI, and
  • multiple different applications with unique access-rights and authentication-mechanisms.

The module provides a GUI for defining applications, each of which has an API key of its own and may use a different authentication mechanism. Routes can be defined in code, and for each of them you can specifically state which HTTP methods they apply to. These routes form the endpoints of your API, and each must be connected to a static method of a class.

There's also an option to create groups of routes, which means that you could, for an example, create different API versions and then use /v1/posts/ for the initial version and /v2/posts/ for a newer version, etc. And, last but perhaps not least, this module works well together with the Twack module, providing support for AJAX components.

There's very extensive documentation available for AppApi at the GitHub repository, so be sure to check that out as well. Big thanks to Sebastian for developing this module and sharing it with us — amazing work!

New module: Page Reference Default Value

Page Reference Default Value is a brand new module developed by Robin Sallis. While most ProcessWire core inputfield types that can already be used with a Page Reference field support a "Default value" setting, this module extends that support for the following core inputfield types:

  • Page List Select
  • Page List Select Multiple
  • Page Autocomplete (single and multiple)

The GUI used for selecting the default value makes use of a Page List Select inputfield, which is probably a bit easier for most users than a simple text input asking for an ID.

Check out the support forum thread for Page Reference Default Value for more details. Thanks to Robin for developing this module, and sharing it with us. Great work!

Site of the week: deux

Our latest site of the week belongs to deux, which is a digital agency based in Hamburg, Germany. Deux is a multi-talented agency run by owner and designer Dominik Wigger: they provide a full range of services from branding to advertising and web design.

According to the sites directory entry this website was designed around a two column layout to represent their two skillsets: design and development. For the most part this site is a one-pager with the sole exception of case stories, each of which has a page of its own. The overall design looks just fantastic, the site is easy to use, and the content feels well thought out.

As for what's going on behind the scenes here, we really can't say much about that; the front-end of this site seems to be largely handcrafted, and there are no obvious traces of well known third party modules here either. Either way the site looks and works just great, so no complaints from us here either.

Big thanks to Dominik Wigger of deux for sharing this project with us — the site looks great, and we're happy to have it featured in our sites directory!

Stay tuned for our next issue

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

Post a comment