Hallo,
ich stehe gerade vor einem Problem, das bestimmt schon mehrfach gelöst wurde. Allerdings finde ich keine wirkliche Lösung. Womöglich verwende ich aber auch einfach nur die falschen Suchbegriffe.
Ich habe in einer Extension in einer Tabelle eine Auswahlliste mit eingebaut, mit z.B. 4 Einträgen. Die Werte sind 0-3 und die Labels in je zwei Sprachen angegeben. Die Standard-Ausgabe der Extension liefert mir immer nur den jeweiligen ausgewählten Wert 0-3, was ja auch erstmal in Ordnung ist.
Wie komme ich denn nun von diesem Wert zum entsprechenden Label?
Also meine Idee ist jetzt, das TCA Array auseinander zu fummeln und mir dort den LL Eintrag für das Label raus zu holen. Aber gibt es dafür nicht eine fertige Funktion von TYPO?
Also entweder aus der locallang.php mittels
$this->pi_getLL('myext_label')
damit zieht er sich den entsprechenden Eintrag respektive der sprache "de" "en" "dk" usw. - je nachdem ob vorhanden o. nicht und wie deine Spracheinstellungen sind...
oder halt aus der DB mittels:
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
'uid, name',
'tx_myext_table',
'sys_language_uid='$syslanguage ' $this->cObj->enableFields('tx_myext_table'),
$groupBy = '',
$orderBy = '',
$limit = ''
);
Stichwort "sys_language_uid"
--edit--
Bei itemLabels musst Du halt gegebenenfalls das ganze in eine Schleife packen und den String zusammen basteln (concadinieren o.s.ä.)
for ($i=0;$i<3;$i++) {
$myVars[] = $this->pi_getLL('myext_label_'.$i)
}
Das "Problem" ist ja, dass die Item-Labes bzw. der Verweis auf die locallang in der tca.php im TCA - Array definiert ist.
Ich habe es jetzt mit einer Funktion
getSelectorValuesFromTCA($table, $fieldname, $selectedValues)
gelöst.
Allerdings habe ich die Lösung zu Hause, werde es dann später mal nachtagen.
edit: Es handelt sich dabei nicht um eine SelectorBox der "aktuellen" pi-Klasse, sondern einer referenzierten. Hoffe, das war jetzt halbwegs verständlich ^^