TextformatterProcessImages by Robin S

A Textformatter that processes <img> tags within rich text content.

Process Images

A basic, proof-of-concept Textformatter module for ProcessWire. When the Textformatter is applied to a rich text field it uses Simple HTML DOM to find <img> tags in the field value and passes each img node through a hookable TextformatterProcessImages::processImg() method.

This is a very simple module that doesn't have any configurable settings and doesn't do anything to the field value unless you hook the TextformatterProcessImages::processImg() method.

Hook example


When added to /site/ready.php the hook below will replace any Pageimages in a rich text field with a 250px square variation and wrap the <img> tag in a link to the original full-size image.

For help with Simple HTML DOM refer to its documentation.

$wire->addHookAfter('TextformatterProcessImages::processImg', function(HookEvent $event) {

    // The Simple HTML DOM node for the <img> tag
    /** @var \simple_html_dom_node $img */
    $img = $event->arguments(0);
    // The Pageimage in the <img> src, if any (will be null for external images)
    /** @var Pageimage $pageimage */
    $pageimage = $event->arguments(1);
    // The Page object in case you need it
    /** @var Page $page */
    $page = $event->arguments(2);
    // The Field object in case you need it
    /** @var Field $field */
    $field = $event->arguments(3);

    // Only for images that have a src corresponding to a PW Pageimage
    if($pageimage) {
        // Set the src to a 250x250 variation
        $img->src = $pageimage->size(250,250)->url;
        // Wrap the img in a lightbox link to the original
        $img->outertext = "<a class='lightboxclass' href='{$pageimage->url}'>{$img->outertext}</a>";
    }

});

Install and use modules at your own risk. Always have a site and database backup before installing new modules.

Latest news

  • ProcessWire Weekly #520
    In the 520th issue of ProcessWire Weekly we'll check out some of the latest additions to the ProcessWire module's directory, share some highlights from the latest weekly update from Ryan, and more. Read on!
    Weekly.pw / 27 April 2024
  • ProFields Table Field with Actions support
    This week we have some updates for the ProFields table field (FieldtypeTable). These updates are primarily focused on adding new tools for the editor to facilitate input and management of content in a table field.
    Blog / 12 April 2024
  • Subscribe to weekly ProcessWire news

“We chose ProcessWire because of its excellent architecture, modular extensibility and the internal API. The CMS offers the necessary flexibility and performance for such a complex website like superbude.de. ProcessWire offers options that are only available for larger systems, such as Drupal, and allows a much slimmer development process.” —xport communication GmbH