[TYPO3-german] ['config']['language'] im BE auslesen -> Erstellen einer BE Extension

Robert Wunsch gincalua at googlemail.com
Thu Jul 16 08:52:52 CEST 2009


Rupert Germann wrote:
> hi,
> 
> du könntest zwar auch im BE das TS parsing anwerfen - aber das wäre wohl
> etwas viel Aufwand um nur einen einzigen Wert zu bekommen.
> 
> setze doch einfach die default language noch mal in TSConfig. Hier kommst du
> ohne problem an den Wert mit:
> 
> $pagesTSC = t3lib_BEfunc::getPagesTSconfig($pid);
> $lang = $pagesTSC['defaultLanguage'];
> 
> hth
> rupert
> 
> 
> Robert Wunsch wrote:
> 
>> Hallo,
>>
>> ich versuche eine Extension zu schreiben, die Texte direkt im Backend in
>> die jeweilige Sprache per Google-Translation übersetzt.
>>
>> Ich habe mir also die 'lorem_ipsum'-Extension geschnappt und passe diese
>> an, so dass beim drücken auf den Knopf der Inhalt des Elements per Ajax
>> übersetzt wird.
>>
>> $GLOBALS['TCA'][$PA['table']]['ctrl']['languageField']
>> (gibt 'sys_language_uid' zurück)
>>
>> $PA['row']['sys_language_uid']
>> (gibt die SprachID zurück, also 0,1 )
>>
>> Ich kann also die Sprach UID herraus finden. Prima.
>>
>> Aber nun möchte ich herrausfinden, ob die Sprache Englisch, Französisch,
>> Deutsch etc. ist.
>> Das klappt bei allen algelegten Sprachen auch ganz gut:
>> list($row) =
>> $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('*','sys_language','uid='
> $PA['row']['sys_language_uid']
>> );
>>
>> Was mache ich aber mit der DEFAULT Sprache?
>>
>> Im Frontend könnte ich das TSFE benutzen:
>> GLOBALS['TSFE']->config['config']['language']
>>
>> Aber das hab ich leider nicht im BE.
>>
>> Habt ihr ne Idee?
>>
>> Vielen Dank und liebe Grüsse an Alle!
>>
>> Robert Wunsch
> 

Hallo Rupert,

Tja, dann läufts mal wieder auf eine Design Entscheidung raus.
Viel Performanceverlust, oder eine zusätzliche Konfiguration beim 
installieren.

Ich denke ich versuche es mit Deiner Variante, Rupert. Vielen Dank!

Es ist halt prinzipiell unmöglich an das TS in den Templates vom BE aus 
heranzukommen, oder? Ich meine OHNE die Renderingmaschiene des Frontends 
zusätzlich in Bewegung zu setzten, also so ähnlich:

function loadTypoScriptForBEModule($extKey) {
	require_once(PATH_t3lib . 'class.t3lib_page.php');
	require_once(PATH_t3lib . 'class.t3lib_tstemplate.php');
	require_once(PATH_t3lib . 'class.t3lib_tsparser_ext.php');
	list($page) = t3lib_BEfunc::getRecordsByField('pages', 'pid', 0);
	$pageUid = intval($page['uid']);
	$sysPageObj = t3lib_div::makeInstance('t3lib_pageSelect');
	$rootLine = $sysPageObj->getRootLine($pageUid);
	$TSObj = t3lib_div::makeInstance('t3lib_tsparser_ext');
	$TSObj->tt_track = 0;
	$TSObj->init();
	$TSObj->runThroughTemplates($rootLine);
	$TSObj->generateConfig();
	return $TSObj->setup['plugin.'][$extKey . '.'];
}


oder? So würde ich ja dran kommen.

Beste Grüsse,
Robert


More information about the TYPO3-german mailing list