Linkvalidator

First concept:

Extension Key: linkvalidator (already reserved under Patrick's name)

Programmers: Michael Miousse. Based in part on the initial work of cag_linkchecker.
Documentation: Patrick Gaumond

Other people involved: Jochen Rieger, Jonas Dubi, Dimitri König

The problem:

TYPO3 Core doesn't provide any mechanism to help correct missing or broken links. The closest extension available to do this on TER is cag_linkchecker. It's a BE module that check links « on demand » only.

Use cases

1. Small site
A website under 100 pages with a single TYPO3 admin
Just in time/on demand reports are ok since the website is quite small and the admin don't want to set a cron job/scheduler task.
2. Big site
With 1000 pages and many editors having « their » sections we need many tasks running off-peak times (overnight usually) and each is responsible for its own section and links validation.

Proposition:

Use cag_linkchecker as a basis with modfications for a new Core, sysext, sub-module to the Info Module with this extension key: linkvalidator.

At the moment, about 20% of the code was taken from cag_linkchecker and 80% is Infoglobe code. We always use Core functions and features when possible.

Type of checks :

Check internal links
Check external links
Check page type Externallinks
Check Filelinks
Check AOE LinkHandler links

Module home: Info

The module will reside under the BE module called « Info » and will be reached using the dropdown menu.

The Reports module can't be used because it's restricted to TYPO3 Admins.

Tables involved:

We tried using sys_registry as the table to stock our « broken links records » but there's not enough features in the API of sys_registry to make it usable.

New table will be named: tx_linkvalidator.

New features

Scheduler support
To make it possible to check thousands of links it's better to make the checks overnight. This new sysext supports TYPO3 Scheduler.

Email
When a report is done overnight while the server is under less stress, the manual will suggest starting a new job from TYPO3 Scheduler. Preferences for these tasks will be integrated into the tasks themselves.

New Tsconfig
Some Tsconfig will be available to set the type of checks like mentionned above and the email address to send report will also be stock in Tsconfig.

Here's a list of different parameters:
1) mod.linkvalidator.linktypes = internal, external,pagetypeexternal,filelinks,linkhandler (default except for linkhandler)

2)mod.linkvalidator.[tablename][fieldname].searchFields =
Default: page = media, tt_content = bodytext, header_link

3) mod.linkvalidator.checkhidden = 1
Default = 1

4) mod.linkvalidator.checkdeleted = 0
Default = 0

New fields in the linkvalidator Scheduler task

1) email =
Default = empty

2) emailonbrokenlinkonly = 1
Default = 1
If set to « 0 » then each time the task is run a report will be sent.

3)emailfile =
Default: EXT:linkvalidator/res/linkvalidatoreemail.tmpl

4) page =
Default=0
this is the page from where to start building the broken link list

5) depth=
Default = 999

6) tsconfig =
Default =
field for overriding page tsconfig

email report

The email report will consist of this templatable message:
Subject: « TYPO3 Linkvalidator report »
MSG: « This is a generated report for the website %s to inform you that %x broken link(s) have been found on the website.
Please login to %w to correct the link(s) »

Module Info → Linkvalidator Report

The report will seek thru tx_linkvalidator table and check user's rights. Based on that, the links will be presented in a list with pencils to the link to correct.
The report will also feature a « depth » menu.

Scheduler dependence

The Scheduler is mandatory for email reports generation and checks overnight.

Link list extensions

At the moment we can't be 100% sure that extensions providing « links directories » will be supported out-of-the-box but we will check the most popular and provide some TS examples for them at least.