Hallo Zusammen
In Controllern kann ich mittels
$this->settings['mySettingParam'];
auf meine gesetzten TS Konstanten zugreifen. Soweit ich im Code von Extbase sehe, besitzt die Klasse Tx_Extbase_Validation_Validator_AbstractValidator jedoch kein Attribute 'settings'. Wie kann ich in einem Validator TS Constants abfragen? Ich benötige sie, um die genauigkeit der Validation festzulegen.
Jemand hat die Lösung schon gefunden:
#102125
Zitat:
class Tx_MyExtension_Service_TsLoader {
/**
* Gibt fuer $_EXTKEY das 'plugin.'-Array (ohne Punkte) zurueck
*
* @param string Extension-Key z.B.'tx_extbase'
* @param boolean true für plugin TS, falls für config TS
* @return array
*/
public static function getTsSetup($_EXTKEY, $plugin = true) {
// TypoScript von $_EXTKEY laden
$settings = t3lib_div::makeInstance('Tx_Extbase_Configuration_FrontendConfigurationManager')->loadTypoScriptSetup();
return self::removeDots($settings[$plugin ? 'plugin.' : 'config.'][$_EXTKEY.'.']);
}
/**
* Entfernt Punkte in dem TypoScript-Array
*
* @return void
*/
private static function removeDots($settings) {
$conf = array();
foreach ($settings as $key => $value)
$conf[self::removeDotAtTheEnd($key)] = is_array($value) ? self::removeDots($value) : $value;
return $conf;
}
/**
* Entfernt einen Punkt am ende von $string
*
* @param string $string
* @return string $string
*/
private static function removeDotAtTheEnd($string) {
return preg_replace('/\.$/', '', $string);
}
}
Aufruf:
$extbaseTs = Tx_MyExtension_Service_TsLoader::getTsSetup('tx_extbase', false);