TSconfig Reference

Default configuration: https://github.com/sypets/brofix/blob/main/Configuration/TsConfig/Page/pagetsconfig.tsconfig

User-Agent

required

Property
mod.brofix.linktypesConfig.external.headers.User-Agent
Data type
string
Description

This is what is sent as "User-Agent" to the external site when checking external URLs. It should contain a working URL with contact information.

User-Agent = Mozilla/5.0 (compatible; Mysite LinkChecker/1.1; +https://mysite.com/imprint.html
Copied!
Default
If not set, a default is automatically generated using the email address from Global Configuration $GLOBALS['TYPO3_CONF_VARS']['MAIL']['defaultMailFromAddress'].

linktypes

optional

Property
mod.brofix.linktypes
Data type
string
Description

Comma separated list of hooks to load.

Possible values:

db: Check links to database records (pages, content elements).

file: Check links to files located in your local TYPO3 installation.

external: Check links to external files.

This list may be extended by other extensions providing a linktype checker.

Default
db,file,external

searchFields.[table]

optional

Property
mod.brofix.searchFields.[table]
Data type
string
Description

Comma separated list of table fields in which to check for broken links. Broken Link Fixer only checks fields that have been defined in searchFields.

Broken Link Fixer ships with sensible defaults that work well for the TYPO3 core. Not all fields which contain links are currently checked though. You can configure additional fields for extensions.

Example

Only check for bodytext in tt_content:

mod.brofix.searchFields.tt_content = bodytext
Copied!

Add checks for news and calendarize events:

mod.brofix.searchFields.tx_news_domain_model_news = bodytext
mod.brofix.searchFields.tx_calendarize_domain_model_event = description
Copied!
Default
pages = media,url
tt_content = bodytext,header_link,records
Copied!

excludeCtype

optional

Property
mod.brofix.excludeCtype
Data type
string
Description
Exclude specific content types from link checking. 'html' is not checked by default, because the parsing for links does not always work correctly and may cause a number of links to be displayed as broken, which are in fact ok (false positives).
Default
html

doNotCheckContentOnPagesDoktypes

optional

Property
mod.brofix.check.doNotCheckContentOnPagesDoktypes
Data type
string
Description

Comma separated list of page types on which content should not be checked. This still means the pages will get checked.

This is for example by default the cause for the page types shortcut and external link.

Default
3,4 (Link to external URL, shortcut)

doNotCheckPagesDoktypes

optional

Property
mod.brofix.check.doNotCheckPagesDoktypes
Data type
string
Description
Comma separated list of page types which should not be checked. This means if a page has a doktype which is listed in this list, we do not do any link checking on the page.
Default
6,7,199,255 (Backend User section, Mount Point, Menu Separator, Recycler)

doNotTraversePagesDoktypes

optional

Property
mod.brofix.check.doNotTraversePagesDoktypes
Data type
string
Description
Comma separated list of page types which should not be traversed. This means if a page has a doktype which is listed in this list, we do not do any link checking on subpages of these pages (and subpages of the subpages etc.).
Default
6,199,255 (Backend User section, Menu Separator, Recycler)

doNotCheckLinksOnWorkspace

optional

Property
mod.brofix.check.doNotCheckLinksOnWorkspace
Data type
int
Description
This option is used to enable or disable checking links that are created in Workspace, by default, the links created on workspaces will be checked and reported.
Default
0

reportHiddenRecords

optional

Property
mod.brofix.reportHiddenRecords
Data type
int
Description

Whether links to hidden records should be treated as broken links.

Default
1

depth

optional

Property
mod.brofix.depth
Data type
int
Description
Default depth when checking with console command
Default
999 (for infinite)

Accept

optional

Property
mod.brofix.linktypesConfig.external.headers.Accept
Data type
string
Description
HTTP request header "Accept". It is recommended to leave the default value and not change this.
Default
*/*

Accept-Language

optional

Property
mod.brofix.linktypesConfig.external.headers.Accept
Data type
string
Description
HTTP request header. It is recommended to leave the default value and not change this.
Default
*

Accept-Encoding

optional

Property
mod.brofix.linktypesConfig.external.headers.Accept-Encoding
Data type
string
Description
HTTP request header. It is recommended to leave the default value and not change this.
Default
*

timeout

optional

Property
mod.brofix.linktypesConfig.external.timeout
Data type
int
Description
Timeout for HTTP request.
Default
10

redirects

optional

Property
mod.brofix.linktypesConfig.external.redirects
Data type
int
Description
Number of redirects to follow. If more redirects are necessary to reach the destination final URL, this is handled as broken link.
Default
5

excludeLinkTarget.storagePid

required (if "exclude URL" functionality should be available for non-admin editors)

Property
mod.brofix.excludeLinkTarget.storagePid
Data type
int
Description

The pid of the storage folder which contains the excluded link target records. If you want to enable editors to add URLs to list of excluded URLs, you must change this (it must be != 0).

Create a central folder to store the excluded URLs or create one for each site.

Excluded link targets (=URLs) are treated as valid URLs. This can be used for the rare case that an URL is detected as broken, but is not broken. This may be the case for some sites which require login credentials, but also for common sites where the automatic link checking mechanism yields false results.

Default
0

excludeLinkTarget.allowed

optional

Property
mod.brofix.excludeLinkTarget.allowed
Data type
string
Description

Allowed link types which can be excluded. By default, it is only possible to exclude external URLs. If you would like to make this available for page links too, add additional link types, e.g.

allowed = external,db
Copied!

You can set it to empty to disable the "exclude URL" functionality:

allowed =
Copied!
Default
external

linkTargetCache.expiresLow

optional

Property
mod.brofix.linkTargetCache.expiresLow
Data type
int
Description

When the link target cache expires in seconds. Whenever an external URL is checked or rechecked, the link target cache is used. Once the cache expires, the URL must be checked again.

The value means that the information for external URLs is retained for that time without having to access the external site.

2 different values are used for expiresLow and expiresHigh so that the target will usually not expire during the on-the-fly checking which would lead to delays.

As a rule of thumb, use the interval for full checking (e.g. 1 day for once a day checking) and multiply that with a factor of 1 to 10 for expiresLow. Add another interval for expiresHigh.

The interval for expiresLow will be used for full checking via the console command.

# checking links daily, use 7 as factor:
#  1 day * 7 * (seconds per day)
#  1 * 7 * 24*60*60
linkTargetCache.expiresLow = 604800
#  1 * 8 * 24*60*60
linkTargetCache.expiresHigh = 691200
Copied!
Default
604800 (7 days)

linkTargetCache.expiresHigh

optional

Property
mod.brofix.linkTargetCache.expiresHigh
Data type
int
Description
See tsconfiglinktargetcacheexpires for description
Default
691200 (8 days)

crawlDelay.seconds

optional

Property
mod.brofix.crawlDelay.seconds
Data type
int
Description

The minimum number of seconds that must have passed between checking 2 URL for the same domain.

If the required time has already passed since an URL of the same domain was last checked, the wait is not performed.

This helps to prevent that external sites are bombarded with requests from our site.

This is a pragmatic approach to make sure that a minimum delay is used when checking URLs of the same site. As a site may have multiple domains or several domains may be used by the same site, this will not always get the desired result, but it is a "good enough" approach.

This will not be used for on-the-fly checking, only for checking via the console command task.

crawlDelay.seconds = 10
Copied!
Default
5

crawlDelay.nodelay

optional

Property
mod.brofix.crawlDelay.nodelay
Data type
string
Description

Do not use the crawlDelay.seconds wait period for these domains

crawlDelay.nodelay = example.org,example.com
Copied!
Default
empty

report.docsurl

optional

Property
mod.brofix.report.docsurl
Data type
string
Description

Add a documentation URL. This will add an "i" button to the broken link report with a link to the documentation.

Add a link to the official documentation:

report.docsurl = https://docs.typo3.org/p/sypets/brofix/main/en-us/Index.html
Copied!
Default
Empty

report.recheckButton

optional

Property
mod.brofix.report.recheckButton
Data type
int
Description

Whether to show the "Check links" button. By default, the button is available for "admin" users, but not for regular editors.

Deactivate the button for non-admin users (default):

mod.brofix.report.recheckButton = -1
Copied!

Activate button if depth=0 (current page) is selected:

mod.brofix.report.recheckButton = 0
Copied!

Enable the button in User TSconfig with depth "infinite" (for a user or group):

page.mod.brofix.report.recheckButton = 999
Copied!

If the current depth <= recheckButton, the button will be displayed. This makes it possible to not only control whether checking is possible, but also the depth

Default
-1 (do not show button for non-admin users)

mail.recipients

required

Property
mod.brofix.mail.recipients
Data type
string
Description
Set the recipient email address(es) of the report mail sent by the console command. Can be several, separated by comma.
Example
mod.brofix.mail.recipients = sender@example.org
Copied!
Default
This is empty by default. $GLOBALS['TYPO3_CONF_VARS']['MAIL']['defaultMailFromName'] and $GLOBALS['TYPO3_CONF_VARS']['MAIL']['defaultMailFromAddress'] is used if this is empty.

mail.fromname

required (unless set in $GLOBALS['TYPO3_CONF_VARS']['MAIL']['defaultMailFromName'])

Property
mod.brofix.mail.from
Data type
string
Description
Set the from name of the report mail sent by the console command.
Example
mod.brofix.mail.from = Sender
Copied!
Default
This is empty by default. $GLOBALS['TYPO3_CONF_VARS']['MAIL']['defaultMailFromName'] is used if this is empty.

mail.fromemail

required (unless set in $GLOBALS['TYPO3_CONF_VARS']['MAIL']['defaultMailFromEmail'])

Property
mod.brofix.mail.from
Data type
string
Description
Set the from email of the report mail sent by the console command.
Example
mod.brofix.mail.from = sender@example.org
Copied!
Default
This is empty by default. $GLOBALS['TYPO3_CONF_VARS']['MAIL']['defaultMailFromEmail'] is used if this is empty.

mail.replytoemail

optional

Property
mod.brofix.mail.replytoemail
Data type
string
Description
Set the replyto email of the report mail sent by the cron script.
Default
Empty

mail.replytoname

optional

Property
mod.brofix.mail.replytoma,e
Data type
string
Description
Set the replyto name of the report mail sent by the cron script.
Default
Empty

mail.subject

optional

If this is not set explicitly, a subject will be auto-generated.

Property
mod.brofix.mail.subject
Data type
string
Description
Set the subject of the report mail.
Default
Empty, auto-generated

mail.template

optional

Always uses the default template CheckLinksResults if not supplied.

Property
mod.brofix.mail.template
Data type
string
Description
Set the template name of the report mail. If $GLOBALS['TYPO3_CONF_VARS']['MAIL']['format'] equals 'both', CheckLinksResults.html and CheckLinksResults.txt must exist.
Default
CheckLinksResults

mail.language

optional

Property
mod.brofix.mail.language
Data type
string
Description
Use this language for the report sent via email.
Default
en