ProcessWire Weekly #626

The 626th issue of ProcessWire Weekly brings in all the latest news from the ProcessWire community. Modules, sites, and more. Read on!

Welcome to the latest issue of ProcessWire Weekly! In this week's issue we're going to check out the latest core updates, along with some of the latest additions Ryan has made to his AgentTools module.

In other news we've got a set of two new third party modules to introduce, both created by Maxim Semenov: WirePDF and Page Markdown. And, as always, we're also going to highlight a new site of the week; this week that site belongs to a luxury resort located in the West Coast of British Columbia, Sonora Resort.

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: ProcessWire 3.0.261

We've got a new weekly update from Ryan, in which he covers the latest news regarding core development, as well as for the AgentTools AI module. Here's a summary of what's new in ProcessWire version 3.0.261, our latest dev release as of this writing:

  • New API.md documentation files were added for $session, $config, $files, $database, $input, $sanitizer, and PagesRaw.
  • LazyCron was updated with CLI support for running jobs (php index.php lazycron run), and an option to disable HTTP execution of scheduled tasks.
  • $modules was updated to include its own set of command-line tools, accessible (just like all our new CLI commands) via php index.php.
  • Two new methods were added to the WireHooks class: getStaticHooks() and hooksToStrings(), latter one being useful e.g. for debugging.
  • The core now has a new abstraction layer for vendor-specific database dialects. Currently MySQL is the only built-in dialect, but in the future we may bundle in support for other vendors, such as SQLite.

In addition there have been miscellaneous improvements to the core and some bug fixes, so there's quite a lot going on right now. What is also interesting is what Ryan mentions about potential future ideas in his post: merging tests into the core, and potentially at some point in the near future jumping to ProcessWire 4.x.

AgentTools v12 and other Pro modules

As for AgentTools, version 12 of this module brings in some interesting new additions:

  • New Page Engineer Fieldtype provides a page editing assistant with the ability to make page edits — write or summarize text, import data from external sources, generate image descriptions, manage child pages, and so on.
  • An upgrade to the migrations system makes it possible to copy/paste migrations between dev and production sites.
  • A new "tattletale" feature detects requests that could compromise the security of your site or that seem otherwise suspicious and automatically prevents the user from making further requests for an hour, and sends an email to the site admin regarding the request and what caused it to be flagged.

Ryan has also released new versions of Pro modules FieldtypeTable, FieldtypeCombo, FieldtypeCustom, and FieldtypeRepeaterMatrix, with more updates on the way. These updates include API documentation, updates based on AI code reviews, and more.

That's all for our core updates section this week. For more details, be sure to check out the weekly update from Ryan at the ProcessWire support forum. Thanks!

New module: WirePDF

WirePDF is a new third-party module from Maxim Semenov. This module can convert ProcessWire pages to PDF documents, but it also includes various advanced features:

  • Support for two PDF libraries: mPDF (recommended) and Dompdf.
  • Support for all native ProcessWire fields, as well as ProFields Table, Repeater, RepeaterMatrix, and Combo.
  • 14 font options, including DejaVu Sans for multilingual support.
  • Extensive configurability, with options to set margins, paper sizes, headers and footers, and watermarks.
  • Support for password-protecting generated PDF files.
  • Automatic filtering of external images that can't be embedded.

The module also automatically detects external images that can't be embedded in PDF, handles single and multi value image and file fields, and has proper support for UTF-8, including cyrillic and other international characters. Once everything has been set up properly, using the module to convert any page to a PDF file is straightforward:

$page->toPdf([
    'filename' => 'my-page.pdf',
]);

For more details, check out the module's entry in the ProcessWire modules directory, or the README file bundled with the module. They cover creating a template used for rendering PDF files, the module's API and various options you can provide when converting a page (e.g. custom HTML or template), configuration options, etc.

If you'd like to give this module a try, you can clone or download it from the WirePDF GitHub repository, or install it via the built-in modules manager in admin. Note that Composer is also needed in order to install the PDF library. If you have questions or need help getting started, head down to the WirePDF support forum thread.

Big thanks to Maxim Semenov for creating this module and sharing it with us!

New module: Page Markdown

Page Markdown is another new third-party ProcessWire module from Maxim Semenov. Page Markdown adds the ability to export pages directly from the admin interface into markdown files, and has support for most ProcessWire field types — including complex ProFields and Repeater Matrix:

  • The module adds a new "Export to Markdown" button to the page edit form.

  • CKEditor and TinyMCE content (tables, lists, headings, links, bold/italic) is automatically converted into standard Markdown syntax.

  • Native handling for ProFields Table, Combo, and Repeater Matrix.

  • Option to use field labels as headings, global ignore lists for fields or field types, customizable datetime formatting, and (optional) automatic empty tag and non-breaking space cleanup.

If you'd like to give this module a try, you can install it via the built-in modules manager in admin, or clone or download it from the PageMarkdown GitHub repository. If you have questions for the author or require additional assistance, head down to the dedicated PageMarkdown support forum thread.

Thanks to Maxim Semenov for creating this very useful module and sharing it with us!

Site of the week: Sonora Resort

Our latest site of the week is that of Sonora Resort, a luxury wilderness resort located on a remote island within British Columbia’s Discovery Islands archipelago in Canada.

Sonora Resort is a jewel amid one of Canada's most alluring and pristine environments. Uncompromising eco-adventure travel meets elegant accommodation, warm hospitality and five-star facilities.

Sonora Resort started out in 1979 as a rustic fishing lodge, and has since then grown into a well known wilderness resort. They offer luxury accommodation, experiences ranging from helicopter rides and fishing trips to spa treatments and yoga sessions, and a culinary experience that changes by the season, drawing from local, sustainable harvest.

The Sonora Resort website features a gorgeous design with plenty of content and quality photographs from the resort and wilderness. Thanks to all that, browsing this site is quite an experience in itself, not to mention that the site feels fast and responsive as well.

As for some behind the scenes details, the front-end of this site appears to be custom-built, and there are no obvious signs of a full-blown front-end framework here. The CSS part seems to follow BEM and SMACSS type patterns, and some of the non-core ProcessWire module we could spot in action include PrivacyWire, FormBuilder, and ProCache.

Our congratulations to Sonoar Resort for their ProcessWire powered website — it's looking really good, so definitely a great job from everyone involved in this project!

Stay tuned for our next issue

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