Ich fummel jetzt schon Stunden am gleichen Problem und lauf gegen die Wand #angry#
Ich habe eine mehrsprachige Extension mit dem Kickstarter erstellt. Bei den lokalisierten Datensätzen sollen manche Felder vom Default-Datensatz übernommen werden. Das klassische Beispiel ist das Bild vom Default-Datensatz. Aus diesem Grund habe ich in der tca.php bei diesen Feldern folgendes hinzugefügt:
'bild' => array (
'exclude' => 0,
'l10n_mode' => 'exclude',
...
),
Diese Felder erscheinen nun beim Lokalisieren auch nicht mehr. Im Frontend sieht es nun so aus, dass bei L!=0 diese mit 'l10n_mode' => 'exclude' gesetzten Felder leer sind. Es werden also nicht die Werte vom Default-Datensatz genommen.
Ich habe inzwischen so viele Sachen, die ich im Netz gefunden habe, probiert und bekomme es trotzdem nicht hin, dass einfach der Wert vom entsprechenden Default-Datensatz genommen wird. Sitze auf dem Schlauch und hoffe auf Hilfe von Euch.
Hier noch einige relevante Einstellungen und Codeschnipsel.
SETUP:
config {
# SprachVariable L initialisieren
linkVars = L(1-2)
uniqueLinkVars = 1
# Standardsprache UID 0 -> Deutsch
sys_language_uid = 0
language = de
locale_all = de_DE.utf-8
htmlTag_langKey = de_DE
# Verhalten beim Umschalten der Sprache
sys_language_mode = content_fallback
sys_language_overlay = hideNonTranslated
}
Ausschnitt List-View:
function listView() {
[...]
# Datensätze holen
$select = '*';
$table = 'tx_extname_tabelle';
$where = 'pid = '.$this->pid[0].' AND sys_language_uid='.$GLOBALS['TSFE']->config['config']['sys_language_uid'].''.
$this->cObj->enableFields($table);
$order = '';
$group = '';
$limit = '';
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery($select, $table, $where, $group, $order, $limit);
while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
[...]
$markerArray['###BILD'##'] = $this->pi_linkTP($fullname,array($this->prefixId.'[item]'=> $row['uid']),1);
$liste .= $this->cObj->substituteMarkerArrayCached($singlerow,$markerArray);
}
$subpartArray['###ROW###'] = $liste;
return $this->cObj->substituteMarkerArrayCached($subpart,$markerArray,$subpartArray,array());
}
Ich habe bei [...] nur Dinge weggelassen, bei denen ich sicher bin, dass sie absolut nichts mit dem Problem zu tun haben.
Irgendwie muss die DB-Abfrage wohl anders sein. Aber wie?