Как мы можем добавить новые поля в новой вкладке в настройках пользователя в TYPO3 - PullRequest
0 голосов
/ 13 мая 2019

Как мы можем добавить новые поля на новой вкладке в настройках пользователя в TYPO3 версии 8.7?Наша проблема заключается в создании новой вкладки.

Я могу добавить новые поля на вкладку личных данных в настройках пользователя, но мне нужно создать новые поля в новой вкладке.Для пользовательских настроек администратора я добавил новую вкладку, но для пользовательских настроек я хочу попробовать это.У меня есть расширение, и с момента установки расширения оно будет дополнением.

Я пытался создать новую вкладку в fe_user.php.
Ранее я пытался изменить ext_tables.php, но это совсем не работает.

// Add some fields to FE Users table to show TCA fields definitions 
// USAGE: TCA Reference > $GLOBALS['TCA'] array reference >
// ['columns'][fieldname]['config'] / TYPE: "select" 
$temporaryColumns = array (
    'tx_examples_options' => array (
        'exclude' => 1,
        'label' => 'tx_examples_options',
        'config' => array (
            'type' => 'select',
            'showitem' => array (
                array('LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:fe_users.tx_examples_options.I.0', '1'),
                array('LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:fe_users.tx_examples_options.I.1', '2'),
                array('LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:fe_users.tx_examples_options.I.2', '--div--'),
                array('LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:fe_users.tx_examples_options.I.3', '3'),
            ),
            'size' => 1,
            'maxitems' => 1,
        )
    ),
    'tx_examples_special' => array (
        'exclude' => 1,
        'label' => 'tx_examples_special',
        'config' => array (
            'type' => 'user',
            'size' => '30',
            'userFunc' => 'Documentation\\Examples\\Userfuncs\\Tca->specialField',
            'parameters' => array(
                'color' => 'blue'
            )
        )
    ), 
);

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns(
    'fe_users',
    $temporaryColumns 
); 
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
    'fe_users',
    '--div--;newtab,tx_examples_options, tx_examples_special' 
);

Когда я изменился нафайл ext_tables.php

 $GLOBALS['TYPO3_USER_SETTINGS']['columns']['copy_directory'] = array(
       'label' => 'Alternative directory for saving copies',
       'type' => 'text',
       'table' => 'be_users',
    );
    \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToUserSettings('copy_directory','after:lang');

, затем он отображается на вкладке «персональные данные», но я хочу новую вкладку в настройках пользователя для пользователя без прав администратора.

1 Ответ

0 голосов
/ 14 мая 2019

В целом ваш код выглядит нормально.
Но вы не в том файле!
Избегайте ext_tables.php, если возможно.

Если вы измените что-либо на TCA, вы должны сделать это в Configuration/TCA/ для новых таблиц и Configuration/TCA/Overrides для улучшения существующих таблиц.
Используйте имена файлов в соответствии с таблицей, которую вы изменяете.

В вашем случае весь код должен находиться в Configuration/TCA/Overrides/fe_users.php.

И обязательно очистите все кэши, если вы разрабатываете что-нибудь с TCA!

...