ProcessWire Weekly #259

In the 259th issue of ProcessWire Weekly we're going to take a quick look at the latest core development and Pro module news from Ryan, introduce a brand new third party module called Mystique, and check out the website of Medical Practice Success. Read on!

Welcome to the 259th issue of ProcessWire Weekly. This time we've got some news regarding core development and the FormBuilder Pro module directly from Ryan, a new third party module from İskender Totoğlu – Mystique, the config file based field creation tool – and a brand new site of the week belonging to a company called Medical Practice Success.

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!

Weekly update from Ryan, and some minor core updates

In terms of core development the past week has been somewhat quiet, and according to Ryan we're going to wait another week or so until bumping the core version. In a forum update Ryan shares details on what's been going on on his side during the past few weeks, and how it's led to the development of a new feature for FormBuilder.

Minor core updates in the dev branch

This week there were only a couple of minor fixes introduced to the dev branch: visual improvement to disabled select fields – and a small clarification to the link editor path settings, clarifying that by making links "absolute" we actually mean the absolute path from the site root instead of absolute URLs complete with a protocol and domain.

Stripe support for FormBuilder

According to the forum post, after building a few individual solutions for Stripe payments for his clients Ryan decided that this would make for a great addition to the FormBuilder Pro module. The key point here is to provide easy one-off payment features without the hassle of setting up a full-blown web shop (using Padloper, or other similar solutions).

What this means in practice is that in the next upcoming version of FormBuilder you'll be able to add a Stripe payment input to your form just by adding a new field of type “Stripe payment for FormBuilder”, and defining some basic settings for it, such as the amount to charge.

This solution is based on the Stripe Elements API, and has the additional benefit that things like credit card numbers never hit your own server, so there's no need to worry about things such as PCI compliance (which can be complicated and potentially costly to set up.) That's one thing less for you to worry about!

You can find a more in-depth introduction to the FormBuilder Stripe feature from the weekly update thread at the support forum, and if you have any questions or suggestions, feel free to post them to that thread as well. Thanks.

New module: Mystique Fieldtype and Inputfield by İskender Totoğlu

Mystique is a relative newcomer as a ProcessWire module. This Fieldtype and Inputfield combination – which, in case you were wondering, was indeed named after the Marvel character – is a configuration file based field creation module.

A Mystique field presents itself as a fieldset in the Admin, but the process of creating one is different from most other ProcessWire fields:

  1. Create a new field via the Admin GUI, and select Mystique as the fieldtype. Add this field to a template. (Nothing unusual here so far.)
  2. Create a configuration file for your field, e.g. /site/template/configs/Mystique.name-for-your-field.php. This configuration file is a regular PHP file returning an array with certain predefined keys:
<?php namespace ProcessWire;
/**
 * Resource : testing-mystique
 */
return [
    'title' => __('Testing Mystique'),
    'fields' => [
        'text_field' => [
            'label' => __('You can use short named types'),
            'description' => __('In file showIf working like example'),
            'notes' => __('Also you can use $input->set() method'),
            'type' => 'text',
        ],
        'another_text' => [
            'label' => __('Another text field (default type is text)')
        ],
    ],
];
  1. Edit your field in the Admin and from the Input tab select your newly created configuration file as the "Resource" for that field.

Note that the example above includes just the basic settings. You can define things like `showIf` conditions, max lengths, and other settings for the fields via the configuration file as well. After setting things up you can edit the field values in the Page Editor just like you would edit fields belonging to a regular fieldset, and access them via the API:

echo $page->mystique_field_name->text_field;
echo $page->mystique_field_name->another_text;
// and so on

What makes Mystique particularly interesting is that the data model is stored as PHP right from the get-go, which means that it'll be easy to sync between environments, include in version control, and so on. Technically you can reuse configuration files between fields as well, although in most cases that probably wouldn't make sense.

The downside here is that since Mystique doesn't create additional ProcessWire fields but rather stores data in JSON format, searching that data is somewhat limited. While you can search individual Mystique "subfields" (mystique_field_name.text_field=term), the search operator is always automatically replaced with %=.

Big thanks to İskender Totoğlu for sharing this module with us – Mystique is a very interesting new module, and we're thrilled to have it at our disposal!

Site of the week: Medical Practice Success

Our latest site of the week belongs to Medical Practice Success, or MPS for short. MPS is a company focusing on delivering tailored medical billing / revenue optimization solutions to their Texas, Louisiana, Arkansas, Oklahoma, Alabama, and New Jersey based clients' various revenue cycle operations.

The recently released ProcessWire powered website of MPS was built by Joe Regan, and contains a wide range of different content types thanks to the unique page builder approach running behind the scenes. Joe took the time to write a lengthy case story of this very interesting project to the showcase forum area, and here are some key points we picked:

  • The front-end of the site is based on the Uikit 3 front-end framework.
  • Content is managed using a custom-built Page Builder solution, complete with layouts, containers, grids, cells, various component types, and so on – here's a video showcasing how you add a new content page to the MPS site.
  • Instead of using page hierarchy for building menu elements, there's a complete menu builder solution included in the admin backend as well.
  • Third party modules used on this site include Inputfield Ace Extended, MarkInPageTree, Breadcrumb Dropdowns, Prev/Next Tabs, and Hanna Code.

Overall this is a good-looking website with a very interesting approach running behind the scenes, so definitely not your typical ProcessWire website – if such a thing even exists.

Big thanks to Joe for sharing this project and all those behind the scenes details with us, and our congratulations to MPS for their new website!

Stay tuned for our next issue

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