plugin.tx_xxx {
setting {
storagePid = 23
}
}
मैं उपयोगिता फ़ाइल में यह TYPO3 सेटिंग्स चाहता हूं। कृपया मेरी मदद करें।उपयोगिता फ़ाइलों में TYPO3 सेटिंग्स कैसे प्राप्त करें?
plugin.tx_xxx {
setting {
storagePid = 23
}
}
मैं उपयोगिता फ़ाइल में यह TYPO3 सेटिंग्स चाहता हूं। कृपया मेरी मदद करें।उपयोगिता फ़ाइलों में TYPO3 सेटिंग्स कैसे प्राप्त करें?
उपर्युक्त विधि केवल नियंत्रक या सेवा वर्ग में काम करती है, यह नीचे प्रयास करें विस्तार में किसी भी PHP फाइलों में काम करेगी।
$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'];
मुझे लगता है कि यह आपके लिए सहायक होगा। आप सेवाओं की फाइलों में भी इस टाइपो 3 सेटिंग्स का उपयोग कर सकते हैं।
के लिए typo3 बैकएंड
बहु डोमेन निर्धारित रूट के लिए प्राप्त करने से पहले केवल विन्यास
$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
के साथ अपने वर्ग का विस्तार करने के पहुंच प्राप्त करने के लिए क्रम में के लिए यह अब चर
$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 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);
मुझे लगता है कि यह अत्यधिक जटिल है। एक एक्सटेबेस संदर्भ में, आप ढांचे को सीधे कॉन्फ़िगरेशन प्रबंधक को इंजेक्ट करने दे सकते हैं। फिर आप '$ सेटिंग्स = $ कॉन्फ़िगरेशन मैनेजर-> प्राप्त कॉन्फ़िगरेशन (\ TYPO3 \ CMS \ Extbase \ कॉन्फ़िगरेशन \ कॉन्फ़िगरेशन मैनेजरइंटरफेस :: CONFIGURATION_TYPE_SETTINGS) का उपयोग कर सकते हैं; ', आपको पूर्ण टीएस की आवश्यकता नहीं है। – Jost
@ जोस्ट हां सही मैंने अपना जवाब सही किया। –