Initial Commit
This commit is contained in:
1 parent
4f495177e4
commit
b6d2142214
166 files changed
+13952
-178
No files matched your search
@@ -0,0 +1,86 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Evomedien\Vitec\Preview;
|
||||
|
||||
use TYPO3\CMS\Backend\Preview\StandardContentPreviewRenderer;
|
||||
use TYPO3\CMS\Backend\View\BackendLayout\Grid\GridColumnItem;
|
||||
use TYPO3\CMS\Core\Service\FlexFormService;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Fluid\View\StandaloneView;
|
||||
use Evomedien\Vitec\Domain\Repository\UsecaseRepository;
|
||||
|
||||
/**
|
||||
* Preview class for the Usecaseshow plugin
|
||||
*/
|
||||
class UsecaseshowPluginPreview extends StandardContentPreviewRenderer
|
||||
{
|
||||
/**
|
||||
* @param GridColumnItem $item
|
||||
* @return string
|
||||
*/
|
||||
public function renderPageModulePreviewContent(GridColumnItem $item): string
|
||||
{
|
||||
$record = $item->getRecord();
|
||||
|
||||
$view = GeneralUtility::makeInstance(StandaloneView::class);
|
||||
$view->setTemplatePathAndFilename('EXT:vitec/Resources/Private/Templates/Preview/Usecaseshow.html');
|
||||
|
||||
// Parse FlexForm data
|
||||
$flexFormService = GeneralUtility::makeInstance(FlexFormService::class);
|
||||
$flexFormData = $flexFormService->convertFlexFormContentToArray($record['pi_flexform'] ?? '');
|
||||
|
||||
// Get usecase data if selected
|
||||
$usecaseData = null;
|
||||
$usecaseUid = (int)($flexFormData['settings']['usecase'] ?? 0);
|
||||
|
||||
if ($usecaseUid > 0) {
|
||||
$usecaseRepository = GeneralUtility::makeInstance(UsecaseRepository::class);
|
||||
$usecase = $usecaseRepository->findByUid($usecaseUid);
|
||||
if ($usecase) {
|
||||
$usecaseData = [
|
||||
'uid' => $usecase->getUid(),
|
||||
'title' => $usecase->getTitle(),
|
||||
'subtitle' => $usecase->getSubtitle(),
|
||||
'description' => $usecase->getDescription()
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
// Get layout setting
|
||||
$layout = $flexFormData['settings']['layout'] ?? 'default';
|
||||
|
||||
// Assign variables to view
|
||||
$view->assignMultiple([
|
||||
'record' => $record,
|
||||
'flexFormData' => $flexFormData,
|
||||
'usecase' => $usecaseData,
|
||||
'layout' => $layout,
|
||||
'pluginName' => 'Usecaseshow'
|
||||
]);
|
||||
|
||||
return $view->render();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param GridColumnItem $item
|
||||
* @return string
|
||||
*/
|
||||
public function renderPageModulePreviewHeader(GridColumnItem $item): string
|
||||
{
|
||||
$record = $item->getRecord();
|
||||
|
||||
// Parse FlexForm to get usecase info for header
|
||||
$flexFormService = GeneralUtility::makeInstance(FlexFormService::class);
|
||||
$flexFormData = $flexFormService->convertFlexFormContentToArray($record['pi_flexform'] ?? '');
|
||||
|
||||
$usecaseUid = (int)($flexFormData['settings']['usecase'] ?? 0);
|
||||
|
||||
if ($usecaseUid > 0) {
|
||||
return '<strong>🎯 Usecase Show Plugin</strong> <small>(Usecase ID: ' . $usecaseUid . ')</small>';
|
||||
}
|
||||
|
||||
return '<strong>🎯 Usecase Show Plugin</strong> <small style="color: orange;">(No usecase selected)</small>';
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user