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;
}