Die DataProcessors sind laut der offiziellen Doku eine exklusive Eigenschaft von FluidTemplate und PageView, darum befürchte ich dass du es an dieser Stelle nicht direkt dem Plugin hinzufügen kannst (Zumindest weiß ich nicht wie).
Du kannst aber den Aufruf der Methode, die im DataProcessor (https://api.typo3.org/12.4/classes/TYPO3-CMS-Frontend-DataProcessing-CommaSeparatedValueProcessor.html) genutzt wird, dem Domain Model hinzufügen und so dann im Fluid-Template darauf zugreifen.
Der Domain/Model/News.php bei den Gettern und Settern hinzufügen:
/**
* Returns the tabletext as a multi-dimensional array using CsvUtility.
*
* @param string $fieldDelimiter The delimiter for splitting columns, default is "|".
* @param string $fieldEnclosure The enclosure for field values, default is '"'.
* @param int $maximumColumns The maximum number of columns to process, default is 0 (no limit).
* @return array
*/
public function getTabletextAsArray(string $fieldDelimiter = '|', string $fieldEnclosure = '"', int $maximumColumns = 0): array
{
// The original value of the tabletext field
$originalValue = $this->tabletext;
// Converts the string into a multidimensional array
$processedData = \TYPO3\CMS\Core\Utility\CsvUtility::csvToArray(
$originalValue,
$fieldDelimiter,
$fieldEnclosure,
$maximumColumns
);
return $processedData;
}
Und dann kannst du es im Fluid-Template nutzen:
<table>
<tbody>
<f:for each="{newsItem.tabletextAsArray}" as="row">
<tr>
<f:for each="{row}" as="column">
<td>{column}</td>
</f:for>
</tr>
</f:for>
</tbody>
</table>
Wichtig ist zu wissen, dass es nicht automatisch dem NewsItem Objekt hinzugefügt wird und darum nicht bei Debuggen von NewsItem, oder _all ausgegeben wird, sondern der Wert explizit aufgerufen werden muss, um das Ergebnis der Methode zu erhalten.