plugin.tx_xxx {
setting {
storagePid = 23
}
}
Voglio queste impostazioni di TYPO3 nel file di utilità. Per favore aiutatemi.Come ottenere le impostazioni di TYPO3 nei file di utilità?
plugin.tx_xxx {
setting {
storagePid = 23
}
}
Voglio queste impostazioni di TYPO3 nel file di utilità. Per favore aiutatemi.Come ottenere le impostazioni di TYPO3 nei file di utilità?
Il metodo precedente funziona solo in controller o classe di servizi prova sotto funzionerà in qualsiasi file PHP in 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'];
È possibile aggiungere sotto la riga nel controller.
$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'];
Penso che sarà utile a voi. Puoi anche usare queste impostazioni typo3 anche nei file di servizio.
Solo per TYPO3 backend
per il multi radice impostare dominio prima di ottenere la configurazione
$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);
Nota: Non dimenticate di estendere la classe con
\TYPO3\CMS\Extbase\Configuration\BackendConfigurationManager
in ordine per ottenere l'accesso per cui è protetta variabili
$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'];
Una buona risposta avrà sempre una spiegazione di cosa è stato fatto e perché è stato fatto in questo modo, non solo per l'OP ma per i futuri visitatori di SO. Per favore aggiungi qualche descrizione per far capire agli altri. :) –
copia della risposta di Vishal Tanna –
Ora, in TYPO3 8.X, currentPageId è protetto così, non siamo riusciti a impostare direttamente, e non ci sarebbe stato alcun metodo set definito nella classe principale. Di seguito è riportato il codice corretto in base alla nuova versione che potrebbe essere di aiuto. Grazie per la direzione corretta.
$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);
Penso che questo sia eccessivamente complicato. In un contesto extbase, è possibile consentire al framework di iniettarvi direttamente un ConfigurationManager. Quindi è possibile utilizzare '$ settings = $ configurationManager-> getConfiguration (\ TYPO3 \ CMS \ Extbase \ Configuration \ ConfigurationManagerInterface :: CONFIGURATION_TYPE_SETTINGS);', non è necessario il TS completo. – Jost
@Jost Sì, ho corretto la mia risposta. –