Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 3 additions & 10 deletions Classes/Hooks/TableConfigurationPostProcessing.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,22 +18,15 @@

class TableConfigurationPostProcessing implements TableConfigurationPostProcessingHookInterface
{
protected Registry $tcaRegistry;

/**
* @var Registry
*/
protected $tcaRegistry;

/**
* @param Registry|null $tcaRegistry
*/
public function __construct(Registry $tcaRegistry = null)
{
$this->tcaRegistry = $tcaRegistry ?? GeneralUtility::makeInstance(Registry::class);
}

public function processData()
public function processData(): void
{
$this->tcaRegistry->registerIcons();
}
}
}
14 changes: 5 additions & 9 deletions Classes/Listener/PageTsConfig.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,22 +14,18 @@

use D3M\Sce\Tca\Registry;
use TYPO3\CMS\Core\Configuration\Event\ModifyLoadedPageTsConfigEvent;
use TYPO3\CMS\Core\Utility\GeneralUtility;

class PageTsConfig
final class PageTsConfig
{
/**
* @var Registry
*/
protected $tcaRegistry;
protected Registry $tcaRegistry;

public function __construct(Registry $tcaRegistry = null)
public function __construct(Registry $tcaRegistry)
{
$this->tcaRegistry = $tcaRegistry ?? GeneralUtility::makeInstance(Registry::class);
$this->tcaRegistry = $tcaRegistry;
}

public function __invoke(ModifyLoadedPageTsConfigEvent $event): void
{
$event->addTsConfig($this->tcaRegistry->getPageTsString());
}
}
}
42 changes: 13 additions & 29 deletions Classes/Tca/Registry.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,16 @@
* of the License, or any later version.
*/

use TYPO3\CMS\Core\Exception;
use TYPO3\CMS\Core\Imaging\IconProvider\BitmapIconProvider;
use TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider;
use TYPO3\CMS\Core\Imaging\IconRegistry;
use TYPO3\CMS\Core\SingletonInterface;
use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
use TYPO3\CMS\Core\Utility\GeneralUtility;

class Registry implements SingletonInterface
final class Registry implements SingletonInterface
{
/**
* @param SceConfiguration $sceConfiguration
*/
public function configureSce(SceConfiguration $sceConfiguration): void
{
ExtensionManagementUtility::addTcaSelectItem(
Expand All @@ -33,7 +31,7 @@ public function configureSce(SceConfiguration $sceConfiguration): void
$sceConfiguration->getLabel(),
$sceConfiguration->getCType(),
$sceConfiguration->getCType(),
$sceConfiguration->getGroup()
$sceConfiguration->getGroup(),
]
);

Expand All @@ -42,7 +40,7 @@ public function configureSce(SceConfiguration $sceConfiguration): void
} else {
$fieldsArray = [];
foreach ($sceConfiguration->getFields() as $fieldName => $fieldConfig) {
$fieldsArray[] = $fieldName . ($fieldConfig['label'] ? ';' . $fieldConfig['label'] : '');
$fieldsArray[] = $fieldName . (isset($fieldConfig['label']) ? ';' . $fieldConfig['label'] : '');
}
$generalTab = implode(',', $fieldsArray);
}
Expand Down Expand Up @@ -86,10 +84,10 @@ public function configureSce(SceConfiguration $sceConfiguration): void
$GLOBALS['TCA']['tt_content']['types'][$sceConfiguration->getCType()]['showitem'] = $showitem;

$overrides = [];
foreach ($sceConfiguration->getFields() as $fieldName => $fieldConfig) {
if ($fieldConfig['columnOverrides']) {
foreach ($sceConfiguration->getFields() as $fieldName => $fieldConfig) {
if (isset($fieldConfig['columnOverrides'])) {
$columnOverrides = $fieldConfig['columnOverrides'];
if ($columnOverrides['allowedFileTypes']) {
if (isset($columnOverrides['allowedFileTypes'])) {
$columnOverrides['overrideChildTca']['columns']['uid_local']['config']['appearance']['elementBrowserAllowed'] = $columnOverrides['allowedFileTypes'];
}
$overrides[$fieldName]['config'] = $columnOverrides;
Expand All @@ -104,12 +102,12 @@ public function configureSce(SceConfiguration $sceConfiguration): void

public function registerIcons(): void
{
if (is_array($GLOBALS['TCA']['tt_content']['sceConfiguration'])) {
if (isset($GLOBALS['TCA']['tt_content']['sceConfiguration'])) {
$iconRegistry = GeneralUtility::makeInstance(IconRegistry::class);
foreach ($GLOBALS['TCA']['tt_content']['sceConfiguration'] as $sceConfiguration) {
if (file_exists(GeneralUtility::getFileAbsFileName($sceConfiguration['icon']))) {
$provider = BitmapIconProvider::class;
if (strpos($sceConfiguration['icon'], '.svg') !== false) {
if (str_ends_with($sceConfiguration['icon'], '.svg')) {
$provider = SvgIconProvider::class;
}
$iconRegistry->registerIcon(
Expand All @@ -125,7 +123,7 @@ public function registerIcons(): void
$existingIconConfiguration['provider'],
$existingIconConfiguration['options']
);
} catch (\TYPO3\CMS\Core\Exception $e) {
} catch (Exception $_) {
}
}
}
Expand All @@ -134,22 +132,7 @@ public function registerIcons(): void

/**
* Adds TSconfig
*
* @param array $TSdataArray
* @param int $id
* @param array $rootLine
* @param array $returnPartArray
* @return array
*/
public function addPageTS($TSdataArray, $id, $rootLine, $returnPartArray): array
{
if (empty($GLOBALS['TCA']['tt_content']['sceConfiguration'])) {
return [$TSdataArray, $id, $rootLine, $returnPartArray];
}
$TSdataArray['default'] = $this->getPageTsString();
return [$TSdataArray, $id, $rootLine, $returnPartArray];
}

public function getPageTsString(): string
{
if (empty($GLOBALS['TCA']['tt_content']['sceConfiguration'])) {
Expand All @@ -170,8 +153,9 @@ public function getPageTsString(): string
}
}

$pageTs = '';
foreach ($groupedByGroup as $group => $sceConfigurations) {
$groupLabel = $GLOBALS['TCA']['tt_content']['columns']['CType']['config']['itemGroups'][$group] ? $GLOBALS['TCA']['tt_content']['columns']['CType']['config']['itemGroups'][$group] : $group;
$groupLabel = $GLOBALS['TCA']['tt_content']['columns']['CType']['config']['itemGroups'][$group] ?: $group;

$content = '
mod.wizards.newContentElement.wizardItems.' . $group . '.header = ' . $groupLabel . '
Expand All @@ -195,4 +179,4 @@ public function getPageTsString(): string

return $pageTs;
}
}
}
Loading