ProcessWire Weekly #428

In the 428th issue of ProcessWire Weekly we'll take a quick dive into the weekly update from Ryan, introduce a couple of brand new third party modules, and more. Read on!

Welcome to the latest issue of ProcessWire Weekly. In this week's issue we'll take a closer look at the latest core updates, and also introduce a couple of new third party modules: WireframeRendererLatte, and EventLoader.

As always, we're also going to introduce a new site of the week. Our latest pick for the site of the week title belongs to the German IT consulting company Cloudflake — but more about that in just a bit, so keep on reading.

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

The latest weekly update from Ryan is focused on a rather major update coming to the core sometime in the near future: migration from our current rich text editor, CKEditor version 4, to a new one — CKEditor version 5.

Additionally this week's update contains a little writeup about Internet history, and how it was for those developing sites in the "early days". This part was inspired by one very old site that's still online after all these years.

Going from CKEditor 4 to 5, and what it means for us as a project

We've been quite happy with CKEditor 4, but this version is reaching the end of its life: it will be supported until 2023 and that's it. This means that there will be no new updates, including security ones, so in the long term sticking with CKEditor 4 as our primary RTE is not a good idea.

While migrating from CKEditor 4 to 5 may sound like a no-brainer, "just a version bump", CKEditor 5 is actually a complete rewrite. As such, this is going to require plenty of work from our side as well; features that directly interface with the editor — including image selector and link dialog — will require major updates behind the scenes.

From end-user (content editor) point of view the goal is to change as little as possible: our hope is that this migration will have very little impact, apart from slightly nicer new interface and possibly some optional features that were not previously available.

When this update was announced last week, it raised discussion about the future, other editors, and how good fit CKEditor 5 would be for us — and also about how things might or might not change. In his weekly update Ryan covers these topics, and also provides insight into how exactly the migration period will be handled.

Be sure to check out the weekly update from Ryan for more details about the CKEditor 5 update, as well as a little piece about Internet history, and what it was like to be in the business of building sites in the early 2000s. Thanks!

New module: WireframeRendererLatte

Wireframe Renderer Latte is one of our latest modules directory additions. This is an add-on module for the Wireframe output framework, and adds the option to author your view files, partials, and layouts with Latte instead of plain old PHP.

Syntax wise, Latte doesn't differ much from regular PHP templates — you just write your PHP code within {curly brackets}, and it gets automatically escaped using an approach called context-aware escaping. One interesting feature in Latte are the n:attributes, which make if..else and foreach statements largely obsolete:

<ul n:if="$page->numChildren(true)" class="menu">
    <li n:foreach="$page->children as $child">
        <a n:tag-if="!$child->hide_from_menu" href="{$child->url}">
            {$item->title}
        </a>
    </li>
</ul>

More details can be found from the official Latte documentation site.

For those of you not yet familiar with Wireframe, it's a module that adds a predefined, MVC style structure for developing ProcessWire powered sites. Wireframe introduces a bunch of new concepts to ProcessWire, including Controller classes and View layer, the latter of which is further split into partials, layouts, and components.

If you'd like to give this module a try, you can get it from the WireframeRendererLatte GitHub repository, install it via the built-in modules installer, or install it via Composer. Note that this module requires Wireframe; read more about Wireframe renderers here.

New module: Event Loader

Event Loader is another brand new third party module, developed by İskender TOTOĞLU. This module adds support for loading events from event files. Here events are a way of executing code when something happens, or a method is called.

An example of what an event file (e.g. /site/templates/configs/events/ready.hello-world.php) might look like:

<?php namespace ProcessWire;

return [
    'events' => [
        'Page::hello' => [
            'type' => 'method',
            'fn' => function (HookEvent $e) {
                $message = is_string($e->arguments(0)) ? $e->arguments(0) : '';
                $e->return = $message;
            }
        ]
    ]
];

After this file has been loaded (`EventLoader::load('/path/to/templates', 'ready.')`, you can call `$page->hello('World')` to execute the configured "hello" event method:

// echoes "World":
echo $page->hello('World');

For more details about the Event Loader module, additional code samples, and detailed instructions on installing the module, check out the modules directory entry. Big thanks to İskender TOTOĞLU for developing this module and sharing it with us!

Site of the week: Cloudflake

Our latest site of the week belongs to the IT consulting company Cloudflake, based in Freising, Germany. Cloudflake provides IT services for their customers, ranging from client management and security to project management and cloud consulting.

Our service takes you further: We create an individual IT concept for you, your company and your employees. We bring your data into the cloud - secure, simple and always accessible.

— Cloudflake

The ProcessWire powered site of Cloudflake was created by Kasper Communications GmbH, and features a very nice and modern design with some well placed animation effects to liven things up a bit. The site also has a strong mobile first vibe, with main menu hidden by default and large call to action contact buttons always visible.

As for behind the scenes details, the front-end of the site appears to be custom built, so no full-blown front-end framework in action here. Third party JS components used on the site include Swiper, PhotoSwipe, and skrollr, and the one and only third party ProcessWire module we could spot here would be FormBuilder.

Big thanks to the folks at Kasper Communications for sharing this project with us, and our congratulations to the client, Cloudflake, for their new, ProcessWire powered site!

Stay tuned for our next issue

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