---
title: "Configuration"
manual: "JW Tools 2"
version: "main"
permalink: "https://docs.typo3.org/permalink/jweiland/jwtools2:configuration@main"
source: "Configuration/Index.rst"
rendered: "2026-11-04T12:08:04+00:00"
---

# Configuration {#configuration}

Target group: **Developers, Integrators**

`jwtools2` initially does nothing after installation. Each feature has to be
activated manually with Extension Settings.

## Extension Settings {#extensionsettings}

-   [typo3EnableUidInPageTree](https://docs.typo3.org/permalink/jweiland/jwtools2:typo3enableuidinpagetree@main)
-   [typo3TransferTypoScriptCurrent](https://docs.typo3.org/permalink/jweiland/jwtools2:typo3transfertyposcriptcurrent@main)
-   [typo3RequiredColumnsForFiles](https://docs.typo3.org/permalink/jweiland/jwtools2:typo3requiredcolumnsforfiles@main)
-   [typo3PreventSavingContentWithInvalidFileMetaData](https://docs.typo3.org/permalink/jweiland/jwtools2:typo3preventsavingcontentwithinvalidfilemetadata@main)
-   [typo3DisableRecordsOnInvalidFileMetaData](https://docs.typo3.org/permalink/jweiland/jwtools2:typo3disablerecordsoninvalidfilemetadata@main)
-   [typo3ReplaceFrontendImagesWithInvalidMetaData](https://docs.typo3.org/permalink/jweiland/jwtools2:typo3replacefrontendimageswithinvalidmetadata@main)
-   [typo3PlaceholderImageApiUrl](https://docs.typo3.org/permalink/jweiland/jwtools2:typo3placeholderimageapiurl@main)
-   [typo3PlaceholderImageStorageFolder](https://docs.typo3.org/permalink/jweiland/jwtools2:typo3placeholderimagestoragefolder@main)
-   [enableFileMetaDataOverviewModule](https://docs.typo3.org/permalink/jweiland/jwtools2:enablefilemetadataoverviewmodule@main)
-   [typo3ExcludeVideoFilesFromFalFilter](https://docs.typo3.org/permalink/jweiland/jwtools2:typo3excludevideofilesfromfalfilter@main)
-   [typo3ApplyFixForMoveTranslatedContentElements](https://docs.typo3.org/permalink/jweiland/jwtools2:typo3applyfixformovetranslatedcontentelements@main)
-   [reduceCategoriesToPageTree](https://docs.typo3.org/permalink/jweiland/jwtools2:reducecategoriestopagetree@main)
-   [enableSqlQueryTask](https://docs.typo3.org/permalink/jweiland/jwtools2:enablesqlquerytask@main)
-   [enableContextMenuToUpdateFileMetadata](https://docs.typo3.org/permalink/jweiland/jwtools2:enablecontextmenutoupdatefilemetadata@main)
-   [enableCachingFrameworkLogger](https://docs.typo3.org/permalink/jweiland/jwtools2:enablecachingframeworklogger@main)
-   [enableReportProvider](https://docs.typo3.org/permalink/jweiland/jwtools2:enablereportprovider@main)
-   [sendUpdatableExtensionsWithSeverity](https://docs.typo3.org/permalink/jweiland/jwtools2:sendupdatableextensionswithseverity@main)
-   [solrEnable](https://docs.typo3.org/permalink/jweiland/jwtools2:solrenable@main)
-   [solrSchedulerTaskUid](https://docs.typo3.org/permalink/jweiland/jwtools2:solrschedulertaskuid@main)

### typo3EnableUidInPageTree {#typo3enableuidinpagetree}

Activate this settings to show page UIDs in front of page title in pagetree.
Yes, it's the same settings like:

options.pageTree.showPageIdWithTitle = 1

As user TSconfig is cached, please flush all caches after changing this setting.

### typo3TransferTypoScriptCurrent {#typo3transfertyposcriptcurrent}

This is a really special setting. It transports the value of `current` into
its Subproperties. Please have a look to following TypoScript:

```typoscript
tt_content.list.20.avalex_avalex.stdWrap {
  setContentToCurrent = 1
  cObject = CONTENT
  cObject {
    table = tx_drstmplmodule_domain_model_configuration
    select {
      pidInList = {$drs.root}
    }
    renderObj = TEXT
    renderObj {
      current = 1
      replacement {
        10.search = avalexDefaultChurch
        10.replace.data = FIELD:church
        20.search = avalexDefaultResponsible
        20.replace.data = FIELD:responsible
        30.search = avalexDefaultStreet
        30.replace.dataWrap = {FIELD:street} {FIELD:house_number}
        40.search = avalexDefaultZIP
        40.replace.data = FIELD:zip
        50.search = avalexDefaultCity
        50.replace.data = FIELD:city
      }
    }
  }
}
```

After generating the content of plugin Avalex we call `stdWrap` and set
`current` to the output of the plugin with `setContentToCurrent`. As each
pagetree has its own configuration record assigned, we have to retrieve this
configuration record with CONTENT which sends data to `renderObj` and now we
have a problem: We only have the data of configuration record available within
`renderObj`. As we have a completely new ContentObjectRenderer-object here
the `current` property is empty. So all the replacements in example will be
done on an empty string.

If you activate `typo3TransferTypoScriptCurrent` we make use of a hook in
TYPO3 and transfer the value of `current` into child ContentObjects.

This option will only work for cObj types CONTENT and RECORD.

### typo3RequiredColumnsForFiles {#typo3requiredcolumnsforfiles}

Add a comma separated list of column names of table `sys_file` or
`sys_file_metadata` to set these columns as required. If these columns are not
filled for an image it is not selectable in FileBrowser. It can not be inserted
into a ContentElement or record.

Example: `creator, copyright`

This setting only applies to images. It has the following effects:

-   An info message in the file browser lists the required columns.
-   Images with missing values can neither be selected with the checkbox and
    select button nor with a click on the file name. A click on the file name
    shows a notification instead.
-   Columns of `sys_file_metadata` are marked as required in the metadata
    form of images. Please flush all caches after changing this setting, as
    this is part of the cached TCA.

Files uploaded directly into a file field of a record (drag & drop, "Add media
by URL") do not pass the file browser. Activate
[typo3PreventSavingContentWithInvalidFileMetaData](https://docs.typo3.org/permalink/jweiland/jwtools2:typo3preventsavingcontentwithinvalidfilemetadata@main) to cover these, too.

### typo3PreventSavingContentWithInvalidFileMetaData {#typo3preventsavingcontentwithinvalidfilemetadata}

**Default**: 0

Only valid, if [typo3RequiredColumnsForFiles](https://docs.typo3.org/permalink/jweiland/jwtools2:typo3requiredcolumnsforfiles@main) is configured.

On creating or updating any record (regardless of table or field) all its file
relations to images with missing required columns will be disabled (hidden).
The rest of the record is saved as usual and a message explaining why is shown
in the backend.

### typo3DisableRecordsOnInvalidFileMetaData {#typo3disablerecordsoninvalidfilemetadata}

**Default**: 0

Only valid, if [typo3RequiredColumnsForFiles](https://docs.typo3.org/permalink/jweiland/jwtools2:typo3requiredcolumnsforfiles@main) is configured.

If the metadata of a file which is already in use gets edited and a required
column becomes empty, all records referencing this file will be disabled
(hidden). A message explaining why is shown in the backend. Once the metadata
is completed again, the affected records will be re-enabled automatically.

### typo3ReplaceFrontendImagesWithInvalidMetaData {#typo3replacefrontendimageswithinvalidmetadata}

**Default**: 0

Only valid, if [typo3RequiredColumnsForFiles](https://docs.typo3.org/permalink/jweiland/jwtools2:typo3requiredcolumnsforfiles@main) is configured.

Images with missing required columns will be replaced by a placeholder image in
frontend. The backend still shows the original image, so editors can find and
fix it.

### typo3PlaceholderImageApiUrl {#typo3placeholderimageapiurl}

**Default**: [https://placehold.co/](https://placehold.co/){width}x{height}/eeeeee/999999.png?text=Metadata+missing

Only valid, if [typo3ReplaceFrontendImagesWithInvalidMetaData](https://docs.typo3.org/permalink/jweiland/jwtools2:typo3replacefrontendimageswithinvalidmetadata@main) is
activated.

URL template to fetch the placeholder image. `{width}` and `{height}` will
be replaced with the requested processing dimensions. Leave empty to use the
placeholder image shipped with jwtools2 instead of an external API.

### typo3PlaceholderImageStorageFolder {#typo3placeholderimagestoragefolder}

**Default**: 1:/placeholder_images/jwtools2/

Only valid, if [typo3PlaceholderImageApiUrl](https://docs.typo3.org/permalink/jweiland/jwtools2:typo3placeholderimageapiurl@main) is set.

Combined identifier of the FAL folder used to cache placeholder images
downloaded from the API, so it is not called on every request.

> [!WARNING]
> **Attention**
>
> Do not use a path containing a folder named `_temp_` or `_recycler_`.
> Most TYPO3 installations block direct web access to these folders, which
> results in broken placeholder images in frontend.

### enableFileMetaDataOverviewModule {#enablefilemetadataoverviewmodule}

**Default**: 0

Adds a file metadata overview to the jwtools2 backend module. It lists images,
their metadata status and where they are referenced (content elements and
records of other extensions), with filters for missing metadata.

### typo3ExcludeVideoFilesFromFalFilter {#typo3excludevideofilesfromfalfilter}

Hidden files are normally hidden in filelist module of TYPO3. Ok, you can
activate hidden files in filelist in your User settings, but may be this
Checkbox was hidden by an Integrator or Administrator. Or maybe showing all
these system files like .htaccess, .htpasswd, .DS_Store is a little bit too
much. If your editor creates a new external video TYPO3 stored this video
information in a .youtube and/or .vimeo file. If a title could not be created
the files name is still ".youtube". On Mac and Linux Operating Systems files
starting with a dot are handled as hidden files. So it is not possible for an
editor to rename, edit or show this file. Activating this option will still not
show hidden files in general, except files with .youtube and .vimeo file ending.

### typo3ApplyFixForMoveTranslatedContentElements {#typo3applyfixformovetranslatedcontentelements}

If you move a content element (tt_content) from one col to another
(backend_layout) the related translated records will not be moved to new col.
This is a problem for over 11 years in TYPO3.

See: [https://forge.typo3.org/issues/21161](https://forge.typo3.org/issues/21161)

Activate this option to apply a patch (hook) to solve this problem. We add the
missing DB queries to move the related translated records to new colPos, too.

BUT: Currently I haven't found a solution to hook into JavaScript of TYPO3 to
move the translated records directly. So after a move of tt_content records you
have to reload the right frame on your own. If you have a cool idea how to solve
that the nice way feel free to create a PullRequest to jwtools2 ;-)

### reduceCategoriesToPageTree {#reducecategoriestopagetree}

Activate this settings to reduce all available sys_category records in
Categorytrees to categories which are created in current pagetree.

We try to get the current Page UID you're editing and slide up until we find a
page which is configured as `isSiteRoot`. Now we get all sys_category records
for this pagetree and remove all disallowed categories from Categorytrees.

### enableSqlQueryTask {#enablesqlquerytask}

Adds a new task to scheduler to execute your individual SQL-Query.

### enableContextMenuToUpdateFileMetadata {#enablecontextmenutoupdatefilemetadata}

Adds a new entry `Create/Update file metadata` into context menu of filelist
module to create a missing file metadata record or to update the existing
metadata record (sys_file_metadata).

This entry will read original width/height from file and uses them to create a
NEW file (imagemagick) with same dimension, 100% quality and colorspace RGB to
update width/height also in EXIF metadata. That's needed for the registered file
extractors like OnlineHelper and EXT:tika which may read width/heigth from EXIF
instead, which could be wrong in some cases. Because of different image tools
(Photoshop, Paint, Gimp) the original file may result in a different image size
after process with imagemagick/graphicsmagick.

### enableCachingFrameworkLogger {#enablecachingframeworklogger}

With help of the Caching Framework Logger you can analyze each cache entry just
before it was written to cache.

This feature is helpful to inform you, if a "wrong" cache entry was written.

If you activate that feature you (as administrator) have to create one or more
cache expression records on root page (PID: 0). Give it a title and enter an
expression. If you just search for a word in a cache entry leave checkbox for
regular expression untouched. Internally it will start a PHP:mb_strpos search,
so please be aware of case sensitive strings. For more complex search activate
checkbox for regular expression. It starts a PHP:preg_match search internally.
You don't need to prepend/append a delimiter. It uses "/" internally and escaped
values for you automatically.

### enableReportProvider {#enablereportprovider}

If EXT:reports is installed and activated this option will add additional
information to reports module. These information will also be available in
status report mail, if configured in scheduler.

Currently following information will be shown:

-   List of all (not only security related) updatable extensions incl. version number.
-   ...

### sendUpdatableExtensionsWithSeverity {#sendupdatableextensionswithseverity}

**Default**: info

Only valid, if option `enableReportProvider` was activated and you make use
of the `System Status Update (reports)` task.

The information about updatable extensions has a severity of type INFO by
default. It does not make sense for us to categorize bugfix extensions as
WARNING. But why should YOU decide about that?

There is a checkbox called \``Always send notification mail (not only on errors
or warnings)`` in ``System Status Update (reports)`\` task which is deactivated
by default. As we categorize updatable extensions as INFO you will not be
notified about them in status mail. But if you activate the checkbox in task
you will be notified about various system status and of cause updatable
extensions with each scheduler run. Yes, this can be a lot of mails and a lot
of content to search for the right section. Maybe a frustrating job.

Setting `sendUpdatableExtensionsWithSeverity` to `warning` will set severity
of updatable extensions to `WARNING`. Now, you can leave the checkbox in task
deactivated and you will only get mails, if there are warnings in your TYPO3
system and/or updatable extensions.

### solrEnable {#solrenable}

Activates Solr feature in our jwtools2 Backend module where you can manage your
Solr cores and clear individual index types.

### solrSchedulerTaskUid {#solrschedulertaskuid}

If you make use of our Solr Scheduler Task after activating `solrEnable` you
must copy and paste the UID of our Scheduler Task into this setting. We need it
to show Scheduler Task related information in our Solr backend module.
