Добавление более одного значка в папки хранения расширений в дереве страниц - TYPO3 LTS 9.5.13 - PullRequest
0 голосов
/ 03 февраля 2020

Я хочу добавить несколько пользовательских значков для папок хранения в TYPO3 LTS 9.5.13

Все пути к файлам относятся к root вашего расширения / typo3conf / ext / my_extension /. Добавлен следующий код в ext_localconf. php

if (TYPO3_MODE === 'BE') {
    /**
     * register icons
     * Icon for plugin selection in content element will be loaded automatically
     *     if to be found in /Resources/Public/Icons/Extension.svg
     */
    $ext = 'ipm_tpl_site_template';
    $icons = [
        $ext . '-info-circle' => 'info-circle-solid.svg',
        $ext . '-exclamation-circle' => 'exclamation-circle-solid.svg',
    ];
    $iconRegistry = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Imaging\IconRegistry::class);
    foreach ($icons AS $id => $filename) {
        $iconRegistry->registerIcon(
            $id,
            $iconRegistry->detectIconProvider($filename),
            ['source' => 'EXT:' . $ext . '/Resources/Public/Icons/' . $filename]
        );
    }
}

И этот код в /Configuration/TCA/Overrides/pages.php

defined('TYPO3_MODE') || die();

$ext = 'my_extension';
$iconRef = $ext . '-info-circle';
$iconRef2 = $ext . '-exclamation-circle';

$addToModuleSelection = true;
foreach ($GLOBALS['TCA']['pages']['columns']['module']['config']['items'] as $item) {
    if ($item['1'] == $ext) {
        $addToModuleSelection = false;
        break;
    }
}

if ($addToModuleSelection) {
    $GLOBALS['TCA']['pages']['ctrl']['typeicon_classes']['contains-' . $ext] = $iconRef;
    $GLOBALS['TCA']['pages']['columns']['module']['config']['items'][] = [
        0 => 'LLL:EXT:' . $ext . '/Resources/Private/Language/locallang_backend.xlf:contains_notes',
        1 => $ext,
        2 => $iconRef
    ];

    $GLOBALS['TCA']['pages']['ctrl']['typeicon_classes']['contains-' . $ext] = $iconRef2;
    $GLOBALS['TCA']['pages']['columns']['module']['config']['items'][] = [
        0 => 'LLL:EXT:' . $ext . '/Resources/Private/Language/locallang_backend.xlf:contains_instructions',
        1 => $ext,
        2 => $iconRef2
    ];
}

И это в locallang_backend. xlf

<trans-unit id="contains_notes">
    <source>IPM: This page contains notes</source>
</trans-unit>
<trans-unit id="contains_instructions">
    <source>IPM: This page contains instructions</source>
</trans-unit>

Значок "-exclamation-circle" виден, как вы можете видеть на скриншоте. Несколько пользовательских значков для папки хранения в TYPO3 - вкладка "Использование в качестве контейнера" ​​

Но "-info-circle" не отображается. Раскрывающееся меню предоставляет четыре параметра: «Пустой», «Веб-сайт FE_Users, IPM - эта страница содержит примечания, IPM - эта страница содержит конструкции». Но каждый раз, когда я использую одно из двух моих условий, оно автоматически переключается на «IPM - эта страница содержит конструкции». Можно ли добавить более одного значка? Имя расширения в [] одинаково для обоих значков. Может ли это быть проблемой?

Версия: LTS 9.5.13 PHP: 7.2.22 Сервер: Apache

...