plugin.tx_xxx { setting { storagePid = 23 } }
Я хочу эту настройку TYPO3 в файле утилиты. Пожалуйста, помогите мне.
Вышеуказанный метод работает только в классе контроллера или служб, попробуйте ниже, он будет работать в любых файлах PHP в Extension.
$objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\Extbase\\Object\\ObjectManager'); $configurationManager = $objectManager->get('TYPO3\\CMS\\Extbase\\Configuration\\ConfigurationManager'); $extbaseFrameworkConfiguration = $configurationManager->getConfiguration(\TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface::CONFIGURATION_TYPE_FULL_TYPOSCRIPT); $storagePid = $extbaseFrameworkConfiguration['plugin.']['tx_guesthouse_guesthouse.']['settings.']['storagePid'];
Вы можете добавить строку ниже в свой контроллер.
$objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager'); $configurationManager = $objectManager->get('TYPO3\\CMS\\Extbase\\Configuration\\ConfigurationManager'); $setting = $configurationManager->getConfiguration(\TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface::CONFIGURATION_TYPE_SETTINGS); $ts_config = $setting['plugin.']['tx_xxxx.']['settings.']['storagePid'];
Я думаю, это будет полезно для вас. Вы также можете использовать эти параметры typo3 в файлах служб.
Только для TYPO3 Backend
Для многоузлового набора root перед получением конфигурации
$configurationManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Configuration\\BackendConfigurationManager'); $configurationManager->currentPageId = ROOT_PID_OF_YOUR_DOMAIN; $extbaseFrameworkConfiguration = $configurationManager->getTypoScriptSetup(); //Following will be resultant array, find your required stuff from it print_r($extbaseFrameworkConfiguration);
Примечание . Не забудьте расширить свой класс с помощью
\TYPO3\CMS\Extbase\Configuration\BackendConfigurationManager
, чтобы получить доступ к его защищенным переменным
Теперь, в Typo3 8.X, currentPageId защищен, поэтому мы не могли установить его напрямую, и не было бы определенного метода, определенного в базовом классе. Ниже приведен правильный код в соответствии с новой версией, которая может вам помочь. Спасибо за правильное направление.
$configurationManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Configuration\\BackendConfigurationManager'); \TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump($configurationManager); $configurationManager->getDefaultBackendStoragePid(); $extbaseFrameworkConfiguration = $configurationManager->getTypoScriptSetup(); //Following will be resultant array, find your required stuff from it \TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump($extbaseFrameworkConfiguration);
$objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager'); $configurationManager = $objectManager->get('TYPO3\\CMS\\Extbase\\Configuration\\ConfigurationManager'); $setting = $configurationManager->getConfiguration(\TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface::CONFIGURATION_TYPE_SETTINGS); $ts_config = $setting['plugin.']['tx_xxxx.']['settings.']['storagePid'];