ProcessWire 2.5.6 updates + drafts progress

Add page screen now with AJAX helper

The add page module (ProcessPageAdd) now alerts you as you are typing if the selected page name is already used by another page. Likewise, it gives you an "Ok" if there are no conflicts with your page name. Previously, it would modify the page name for you to make it unique automatically, but you wouldn't know about that until after submitting the form. Now you get alerted to the uniqueness of your new page's name as you are typing it.

Fixes with ProcessWire in fastcgi environments

We discovered a couple of issues with ProcessWire 2.5 running in a PHP fastcgi environment, at least when combined with certain versions of PHP 5.3. Worst case scenario was that PW would simply not run in that environment, as PHP's method_exists() would incorrectly generate a fatal error. This is apparently a known issue in some versions of PHP 5.3, but one that must not be often seen. This week we finally saw it in a way we could duplicate, and we found a workaround. It's easier for us to workaround it than it is to get your web host to change their PHP version in many cases, so that's what we did.

Another scenario we fixed this week (which may also be related to PHP 5.3 fastcgi environments) was that you'd receive a message about a module dependency not being met, on every page in the admin. In our test case, that module dependency was for LanguageTabs, but the issue actually didn't have anything to do with LanguageTabs. Instead, the issue was one in PW's core not descending to a deep enough level of dependencies. For whatever reason, we've only seen it need to descend to that level in the PHP 5.3/fastcgi environment, but can't be certain it's limited to that. Regardless, if you've seen messages about missing dependencies in the admin when you shouldn't, you may want to test out ProcessWire 2.5.6 dev.

Drafts for published pages, now in development

Jumping beyond the core, we've been working this week on draft capability for published pages, which will also include some nice workflow additions. Currently ProcessWire drafts are essentially unpublished pages. But there have been requests for keeping a separate draft version of already published pages. So that's what is being worked on here.

At the very basic level, when the drafts module is installed, your usual "Save" button on each page instead becomes separate "Publish" and "Save Draft" buttons (or just "Save Draft" if the user doesn't have page-publish permission). When you save a draft, the changes aren't visible on the front-end of the site, except to you when previewing it. The only significant limitation to mention here is that some fields can't be saved as drafts, specifically repeaters and PageTable, though we may be able to support PageTable later on. Otherwise, all Fieldtypes should work. In fact, all of the other core Fieldtypes and ProFields already work with it even in our early state of development.

Introducing drafts in this manner also is a good opportunity for us to introduce some nice workflow improvements, like isolating who can create drafts and who can approve and publish them. So that will be part of it. Likewise, a diff to compare published and draft versions is coming as well. I'll have more information in the coming weeks as we get further along with it.

Next week

Next week we'll be making some updates and enhancements to the image resize functions thanks to more great contributions from Horst. He's got some really incredible stuff somewhat related to this in development too!


  • Nikolaus


    • 5 years ago
    • 10
    This sounds great! Are there any updates on the page draft feature yet? This would be the one missing thing for me right now ;)

    Wouldn't draft development also make versioning possible? Meaning that the old versions of a page will be saved to other page IDs but can still be shown or republished from within the page editor?

  • ryan


    • 4 years ago
    • 10
    Good timing, the initial beta release of ProDrafts should be tomorrow!
  • Moose1


    • 4 years ago
    • 00
    I would also love to know if there's been any updates on the draft feature as of late. We'd love to get this feature out to our users.
    • Moose1


      • 4 years ago
      • 00
      Wow!! Very timely! Thanks very much, Ryan. We will certainly be checking this out!

    Twitter updates

    • This week we’ve got a few new and interesting core updates in progress, though none quite ready to release just yet. So rather than releasing version 3.0.154 today, I thought we'd instead take a brief look at what’s coming over the next few weeks… More
      3 April 2020
    • ProcessWire 3.0.153 (dev) focuses on comments field updates, significant refactoring/improvements to ProcessWire’s core Template class and PagesLoader class (which is used by the pages API variable), and we introduce a useful new pages API method— More
      20 March 2020
    • ProcessWire 3.0.152 core updates— This week we have some major improvements to our core date/time Inputfield, as well as a new ability to specify your own custom classes for Page objects— More
      6 March 2020

    Latest news

    • ProcessWire Weekly #308
      In the 308th issue of ProcessWire Weekly we're going to take a look at some upcoming core and pro module updates, check out two all-new third party modules, and more. Read on! / 4 April 2020
    • ProcessWire updates and additions in progress
      This week we’ve got a few new and interesting core updates in progress, though none quite ready to release just yet. So rather than releasing version 3.0.154 today, I thought we'd instead take a brief look at what’s coming over the next few weeks. This post covers all the details.
      Blog / 3 April 2020
    • Subscribe to weekly ProcessWire news

    “Indeed, if ProcessWire can be considered as a CMS in its own right, it also offers all the advantages of a CMF (Content Management Framework). Unlike other solutions, the programmer is not forced to follow the proposed model and can integrate his/her ways of doing things.” —Guy Verville, Spiria Digital Inc.