Frontend Rendering 

TypoScript configuration for frontend image rendering, CSS classes, lazy loading, and lightbox integration.

TypoScript Configuration 

Frontend Rendering Setup 

The extension provides default configuration. You can customize it:

Changed in version 13.1.5

The legacy ImageRenderingController and ImageLinkRenderingController were replaced with unified ImageRenderingAdapter using the new service architecture. See Services API for details.

Frontend rendering configuration
lib.parseFunc_RTE {
    tags.img = TEXT
    tags.img {
        current = 1
        preUserFunc = Netresearch\RteCKEditorImage\Controller\ImageRenderingAdapter->renderImageAttributes
    }

    tags.a = TEXT
    tags.a {
        current = 1
        preUserFunc = Netresearch\RteCKEditorImage\Controller\ImageRenderingAdapter->renderLinkedImageAttributes
    }

    nonTypoTagStdWrap.HTMLparser.tags.img.fixAttrib {
        # Remove internal data attributes from frontend
        allparams.unset = 1
        data-htmlarea-file-uid.unset = 1
        data-htmlarea-file-table.unset = 1
        # Keep zoom attributes for popup/lightbox rendering (ImageRenderingController.php)
        # data-htmlarea-zoom.unset = 1
        # data-htmlarea-clickenlarge.unset = 1
        data-title-override.unset = 1
        data-alt-override.unset = 1
    }
}

lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.encapsTagList := addToList(img)
Copied!

Default CSS Class 

Add default class to all RTE images:

Default CSS class configuration
lib.parseFunc_RTE {
    nonTypoTagStdWrap.HTMLparser.tags.img.fixAttrib.class {
        default = img-fluid responsive-image
    }
}
Copied!

Lazyload Configuration 

Enable native browser lazy loading:

Template constants for lazy loading
styles.content.image.lazyLoading = lazy
# Options: lazy, eager, auto
Copied!

Manual TypoScript Inclusion 

Changed in version 13.4.0

TypoScript is no longer automatically loaded. Manual inclusion is required. See Frontend Rendering for inclusion options.

The extension requires manual TypoScript inclusion, giving you full control over load order and the ability to override settings in your site package.

Include via Static Template:

  1. Go to WEB > Template module
  2. Select your root page
  3. In Includes tab, add: CKEditor Image Support

Or import directly in your site package:

Direct import in site package TypoScript
@import 'EXT:rte_ckeditor_image/Configuration/TypoScript/ImageRendering/setup.typoscript'

# Now you can override settings:
lib.contentElement.settings.media.popup {
    directImageLink = 1
    linkParams.ATagParams.dataWrap = class="lightbox"
}
Copied!

TypoScript Reference 

Complete TypoScript Configuration Options 

Image Rendering 

Image tag processing
lib.parseFunc_RTE {
    tags.img = TEXT
    tags.img {
        current = 1
        preUserFunc = Netresearch\RteCKEditorImage\Controller\ImageRenderingAdapter->renderImageAttributes
    }
}
Copied!

HTML Parser Configuration 

HTMLparser attribute cleanup
lib.parseFunc_RTE.nonTypoTagStdWrap.HTMLparser.tags.img {
    fixAttrib {
        # Remove internal data attributes
        data-htmlarea-file-uid.unset = 1
        data-htmlarea-file-table.unset = 1
        # Keep zoom attributes for popup/lightbox rendering (ImageRenderingController.php)
        # data-htmlarea-zoom.unset = 1
        # data-htmlarea-clickenlarge.unset = 1
        data-title-override.unset = 1
        data-alt-override.unset = 1
    }
}
Copied!

Default CSS Classes 

Default and allowed CSS classes
lib.parseFunc_RTE.nonTypoTagStdWrap.HTMLparser.tags.img.fixAttrib.class {
    default = img-fluid
    list = img-fluid,img-thumbnail,rounded
}
Copied!

Lazy Loading 

Native browser lazy loading
# Template Constants
styles.content.image.lazyLoading = lazy
# Options: lazy, eager, auto
Copied!

Image Processing 

Image dimension processing
lib.parseFunc_RTE.nonTypoTagStdWrap.HTMLparser.tags.img {
    width =
    height =
    # Allows TYPO3 to process dimensions
}
Copied!

Encapsulation Configuration 

Image encapsulation in paragraphs
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines {
    encapsTagList := addToList(img)
    remapTag.img = p
}
Copied!