From ebfe9353feac101ecc660d6744bb81067c5d1cc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tanel=20P=C3=B5ld?= Date: Mon, 25 Mar 2024 22:33:50 +0200 Subject: [PATCH] [FEATURE] vastly improved back end preview --- Classes/Preview/PersonnelPreviewRenderer.php | 178 ++++++++++++++---- .../Private/Templates/Backend/Preview.html | 35 ++++ 2 files changed, 175 insertions(+), 38 deletions(-) create mode 100644 Resources/Private/Templates/Backend/Preview.html diff --git a/Classes/Preview/PersonnelPreviewRenderer.php b/Classes/Preview/PersonnelPreviewRenderer.php index 64566ed..3d44c5a 100644 --- a/Classes/Preview/PersonnelPreviewRenderer.php +++ b/Classes/Preview/PersonnelPreviewRenderer.php @@ -17,62 +17,164 @@ namespace Brightside\Personnel\Preview; +use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Backend\Preview\StandardContentPreviewRenderer; use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Backend\View\BackendLayout\Grid\GridColumnItem; -use TYPO3\CMS\Backend\Preview\PreviewRendererInterface; +use TYPO3\CMS\Fluid\View\StandaloneView; +use TYPO3\CMS\Core\Domain\Repository\PageRepository; +use TYPO3\CMS\Core\Database\ConnectionPool; +use TYPO3\CMS\Core\Utility\MathUtility; -/** - * Contains a preview rendering for the page module of CType="textmedia" - * @internal this is a concrete TYPO3 hook implementation and solely used for EXT:frontend and not part of TYPO3's Core API. - */ class PersonnelPreviewRenderer extends StandardContentPreviewRenderer { public function renderPageModulePreviewContent(GridColumnItem $item): string { - $content = ''; - $row = $item->getRecord(); - if ($row['CType'] === 'personnel_frompages' || $row['CType'] === 'personnel_selected') { - if ($row['CType'] === 'personnel_frompages') { - $content = $this->linkEditContent('Persons from page: '. $row['pages'] .'', $row); - } - if ($row['CType'] === 'personnel_selected') { - $content = $this->linkEditContent('Selected persons: '. $row['tx_personnel'] .'', $row); - } - $content .= ''; } - return $content; + // Assign to template + $view->assign('personnelRecords', $personnelRecords); + $out = $view->render(); + return $this->linkEditContent($out, $record); } } diff --git a/Resources/Private/Templates/Backend/Preview.html b/Resources/Private/Templates/Backend/Preview.html new file mode 100644 index 0000000..aa7026c --- /dev/null +++ b/Resources/Private/Templates/Backend/Preview.html @@ -0,0 +1,35 @@ + + + +
+ +
+ + + + + +
+
+
+ {person.firstname} +
+
+
+
+ + +