ProcessWire Weekly #379

In the 379th issue of ProcessWire Weekly we'll cover the latest core updates, introduce a brand new third party module called FrontendForms, and more. Read on!

Welcome to the latest issue of ProcessWire Weekly! In this week's issue we'll cover the latest core updates, which consist mainly of bug fixes and small improvements. We're getting really close to the release date of a new master version of ProcessWire, so right now the focus strictly is in ironing out any remaining quirks.

In other news we're going to check out a new third party module called FrontendForms. Developed by Jürgen Kern, this module makes building forms and validating submitted form data a downright trivial task. And finally we're going to highlight a new site of the week, this time belonging to the building cooperative bogenständig eG from Freiburg, Germany.

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!

Latest core updates

This week's core updates, as Ryan explains in his latest weekly update, are again mainly focused on resolving issues reported via GitHub. We're currently closing in on releasing a new master version of ProcessWire; in fact that will likely happen as soon as within the next week.

We're very close to our next master version and unless anything new that's particularly pressing arises this coming week, I think we may be there next week.

— Ryan

To summarise, a total of eight issues were resolved this week in the dev branch. Among those were various UI fixes and improvements, IPv6 support for $session->getIP(), a fix for InputfieldTextTags when used in Repeater items, and a fix for an issue where single line input accepted multi-line content when edited via front-end editing mode.

While the dev branch should be pretty much ready to be merged to master by now, as always this is the time we'd very much appreciate if you could grab the latest version, give it a spin, and let us know if you run into any issues.

That's all for our core updates section this week. If all goes well we'll have a new master release to introduce next week — in the meantime be sure to also check out the weekly update from Ryan at the support forum. Thanks!

New module: FrontendForms

FrontendForms is a newly released module from Jürgen Kern. As the introduction at the FrontendForms GitHub repository states, this is a module for ProcessWire to create and validate forms on the frontend easily using the Valitron library.

One aspect that sets FrontendForms apart from the FormBuilder module is that there's no GUI for FrontendForms. Forms are built in code, using classes and methods provided by the module. There are plenty of ready to use inputfields included, and a rather long list of validation rules to combine them with.

Here's a little sneak peek into how this all comes together:

// let's build a simple contact form:
$form = new Form('contact_form');

// add a required text input for name:
$name = new InputText('name');
$name->setLabel('Name');
$name->setRule('required');
$form->add($name);

// add a required text input for email and make sure
// that the value is a valid email address:
$email = new InputText('email');
$email->setLabel('E-Mail');
$email->setRule('required');
$email->setRule('email');
$form->add($email);

// add a required textarea for message:
$message = new Textarea('message');
$message->setLabel('Message');
$message->setRule('required');
$form->add($message);

// add a submit button for the form:
$button = new Button('submit');
$button->setAttribute('value', 'Send');
$form->add($button);

if ($form->isValid()) {
    // form was submitted and all checks out — you can now
    // retrieve submitted values with $form->getValues()
}

// render our contact form:
echo $form->render();

For more details be sure to check out the FrontendForms support forum thread, as well as the FrontendForms GitHub repository — the latter of which contains a detailed guide for using the module, all the way from getting started guide to custom validation rules, hooking, multi-language support, and so on.

Big thanks to Jürgen for sharing this very interesting project with us!

Site of the week: bogenständig eG

Our latest site of the week belongs to bogenständig eG, a German cooperative with nearly 250 members working towards the goal of creating affordable living spaces for people for whom the existing housing market offers no solutions. Their target demographic includes — among others —people with disabilities or chronic illnesses.

The bogenständig eG website was crafted by designconcepts GmbH and combines vivid colours and hand drawn images, beautiful photography, and interesting typographic effects into an end result that feels equally polished and playful. Overall this is a pretty simple site, mainly focusing on explaining what bogenständig is, does, and stands for, as well as providing contact details for those interested in participating.

Behind the scenes the visible part of the site appears to be powered by the Uikit front-end framework. As for third party modules, there's only one that we could spot — the ever so popular caching and performance module ProCache.

Big thanks to the folks at designconcepts GmbH for sharing this project with us, and congratulations to the client, bogenständig eG, for their lovely new website. Downright stunning work, all things considered!

Stay tuned for our next issue

That's all for the 379th issue of ProcessWire Weekly. We'll be back with more news, updates, and content Saturday, 14th 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 Tuesday 31st of August 2021 13:19 pm

Paljon kiitoksia, Teppo. ;-)

Post a comment