[FEATURE] Add signal for pre proccesing records
[Packages/TYPO3.CMS.git] / typo3 / sysext / core / Documentation / Changelog / master / Feature-52217-SignalForPreProccesingLinkvalidatorRecords.rst
1 =================================================================
2 Feature - #52217: Signal for pre proccesing linkvalidator records
3 =================================================================
4
5 Description
6 ===========
7
8 This signal allows for additional processing upon initialization of a specific record,
9 e.g. getting content data from plugin configuration in record.
10
11 Registering the signal: (in ext_localconf.php)
12
13 .. code-block:: php
14
15     $signalSlotDispatcher = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Extbase\SignalSlot\Dispatcher::class);
16     $signalSlotDispatcher->connect(
17         \TYPO3\CMS\Linkvalidator\LinkAnalyzer::class,
18         'beforeAnalyzeRecord',
19         \Vendor\Package\Slots\RecordAnalyzerSlot::class,
20         'beforeAnalyzeRecord'
21     );
22
23 ..
24
25 The slot class:
26
27 .. code-block:: php
28
29     namespace Vendor\Package\Slots;
30
31     use TYPO3\CMS\Linkvalidator\LinkAnalyzer;
32
33     class RecordAnalyzerSlot {
34
35         /**
36          * Receives a signal before the record is analyzed
37          *
38          * @param array $results Array of broken links
39          * @param array $record Record to analyse
40          * @param string $table Table name of the record
41          * @param array $fields Array of fields to analyze
42          * @param LinkAnalyzer $parentObject Parent object
43          * @return array
44          */
45         public function beforeAnalyzeRecord($results, $record, $table, $fields, LinkAnalyzer $parentObject) {
46             // Processing here
47             return array(
48                 $results,
49                 $record
50             );
51         }
52     }
53
54 ..
55
56 Impact
57 ======
58
59 Extensions may now perform any kind of processing for every record when validating content links.