[TYPO3-mvc] How to read the settings from typoscript in a model
Sebastian Schreiber
me at schreibersebastian.de
Tue Nov 8 19:21:18 CET 2011
Am 08.11.2011 18:54, schrieb Malte Beran:
> Hi Georg,
> I have an attribute called video. In getVideo() i check if a flv file
> exists with the uid as filename.
> The path to the files is stored in typoscript.
>
>
> 2011/11/8 Georg Ringer<typo3 at ringerge.org>
>
>> Hi,
>>
>> Am 08.11.2011 16:51, schrieb Malte Beran:
>>> Hi guys,
>>> is it possible to read the ts settings from my ext within a model
>>> (Tx_Extbase_DomainObject_AbstractEntity) ?
>> no and this sounds like definitly wrong. what are you planning to do? ^^
>>
>> georg
>> _______________________________________________
>> TYPO3-project-typo3v4mvc mailing list
>> TYPO3-project-typo3v4mvc at lists.typo3.org
>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-project-typo3v4mvc
>>
> _______________________________________________
> TYPO3-project-typo3v4mvc mailing list
> TYPO3-project-typo3v4mvc at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-project-typo3v4mvc
I would create a service class:
class Tx_MyExtKey_Service_SettingsService implements t3lib_Singleton {
/**
* @var mixed
*/
protected $settings = NULL;
/**
* @var Tx_Extbase_Configuration_ConfigurationManagerInterface
*/
protected $configurationManager;
/**
* Injects the Configuration Manager and loads the settings
*
* @param Tx_Extbase_Configuration_ConfigurationManagerInterface An
instance of the Configuration Manager
* @return void
*/
public function
injectConfigurationManager(Tx_Extbase_Configuration_ConfigurationManagerInterface
$configurationManager) {
$this->configurationManager = $configurationManager;
}
/**
* Returns all settings.
*
* @return array
*/
public function getSettings() {
if ($this->settings === NULL) {
$this->settings =
$this->configurationManager->getConfiguration(Tx_Extbase_Configuration_ConfigurationManagerInterface::CONFIGURATION_TYPE_SETTINGS);
}
return $this->settings;
}
/**
* Returns the settings at path $path, which is separated by ".",
e.g. "pages.uid".
* "pages.uid" would return $this->settings['pages']['uid'].
*
* If the path is invalid or no entry is found, false is returned.
*
* @param string $path
* @return mixed
*/
public function getByPath($path) {
return
Tx_Extbase_Reflection_ObjectAccess::getPropertyPath($this->getSettings(), $path);
}
}
If you are using Extbase 1.4 you can have an injectMethod in your Model:
/**
*
* @param Tx_MyExtKey_Service_SettingsService $settingsService
*/
public function
injectSettingsService(Tx_MyExtKey_Service_SettingsService
$settingsService) {
$this->settingsService = $settingsService;
}
And then you can call your ts-setting in your model via
$this->settingsService->getByPath('yourSetting);
------------
But as Georg mentioned, you should try to avoid such things.
Good luck
--
Sebastian Schreiber
(Medieninformatiker B.Sc.)
(TYPO3 Certified Integrator)
Schanzenstraße 27, Schlosserei 4
D-51063 Köln
T 0221 677 88 541
M 0176 431 05 790
Skype schreibersebastian.de
me at schreibersebastian.de
www.schreibersebastian.de
Steuernummer: 217 / 5269 / 4675
More information about the TYPO3-project-typo3v4mvc
mailing list