<?php

namespace Uhura\Grossmarkt\Service;

use TYPO3\CMS\Core\DataHandling\DataHandler;

class CustomRteProcessor
{
	/**
	 * Хук для обработки данных перед сохранением
	 */
	public function processDatamap_postProcessFieldArray(
		string $status,
		string $table,
		string $id,
		array &$fieldArray,
		DataHandler $dataHandler
	) {
		// Поле, в котором обрабатывается контент
		$rteField = 'bodytext'; // Измени на нужное тебе поле

		if ($table === 'tt_content' && isset($fieldArray[$rteField])) {
			$fieldArray[$rteField] = $this->fixCiteTags($fieldArray[$rteField]);
		}
	}

	/**
	 * Убирает <p> внутри <cite> и возвращает правильную структуру
	 */
	private function fixCiteTags(string $content): string
	{
		// Удаляем <p> внутри <cite>
		$content = preg_replace('/<cite>\s*<p>(.*?)<\/p>\s*<\/cite>/is', '<cite>$1</cite>', $content);

		// Удаляем лишние пустые абзацы
		$content = preg_replace('/<p>\s*<\/p>/is', '', $content);

		return $content;
	}
}