TCA Override

Basic

Each Content Element type has to be registered for dataflow via TCA Overrides .
This is done with the function addDataflowFieldsToContentElement from

class Jar\Dataflow\Utilities\DataflowUtility

Jar\Dataflow\Utilities\DataflowUtility::addDataflowFieldsToContentElement($cType, $foreignTable, $configuration)
Parameters:
  • $cType (string) – CType of the content element.
  • $foreignTable (string) – Table name of the foreign table.
  • $enablePagination (bool) – Activates pagination options in Backend and outputs paginated elements.
  • $configuration (array) – Advanced configuration.
  • $configuration['foreignSortableColumns'] (array) – Whitelist of columns which are selectable for sorting.
  • $configuration['foreignConstraints'] (array) – For developers
\Jar\Dataflow\Utilities\DataflowUtility::addDataflowFieldsToContentElement('html', 'tx_j77template_utility_jobs', [
    'enablePagination' => true,
]);

For developers

array $foreignConstraints
Param bool $userFunc:
 userFunc
Param bool $parameters:
 Parameters for the userFunc.
\Jar\Dataflow\Utilities\DataflowUtility::addDataflowFieldsToContentElement('html', 'tx_j77template_utility_jobs', [
    'foreignConstraints' => [
        [
            'userFunc' => \EXT\CustomNamespace\Constraints\CustomConstraints::class . '->getListConstraints',
            'parameters' => [
                'hello' => 'world'
            ]
        ]
    ]
]);

The userFunc can be used to add custom contraints for the crawled items.
E.g. all items with the uid greater 1330 and less than 1432.

/**
* @param ExpressionBuilder $expressionBuilder
* @param array $params
* @return array
*/
public function getListConstraints(ExpressionBuilder $expressionBuilder, array $params = []): array {
    $table = $params['table'];
    $result = [
        $expressionBuilder->gte($table . '.uid', 1331),
        $expressionBuilder->lte($table . '.uid', 1431)
    ];
    return $result;
}