Hallo,
ich versuche gerade von einem Datensatz die default Sprache auszulesen egal welcher Language-Parameter gerade an der URL hängt.
Prinzipiell möchte ich alle (default und übersetzten) Datensätze bekommen und bin bis jetzt so weit gekommen:
function getLLCategories($categoryUid) {
$query = $this->createQuery();
$query->getQuerySettings()->setRespectSysLanguage(FALSE);
$query->matching($query->logicalOr($query->equals('l10n_parent', $categoryUid),$query->equals('uid',$categoryUid)));
$query->setOrderings(array('sys_language_uid' => Tx_Extbase_Persistence_QueryInterface::ORDER_ASCENDING));
$categories = $query->execute();
return $categories;
}
Das funktioniert super solange meine sys_language_uid = 0 ist:
'Kategoriename ' - sys_language_uid
'Kategorie (de)' - 0
'Kategorie (en)' - 1
'Kategorie (fr)' - 2
Sobald ich aber eine andere Sprache einstelle bekomme ich den Datensatz der eigentlich in der sys_language_uid 0 auf Deutsch sein sollte immer in der übersetzten Sprache (wenn es eine Übersetzung gibt)
'Kategorie (en)' - 1
'Kategorie (en)' - 1
'Kategorie (fr)' - 2
Habe auch versucht eine Funktion zu machen die mir nur diesen einen Datensatz ausliest:
function getDefaultCategory($categoryUid) {
$query = $this->createQuery();
$query->getQuerySettings()->setRespectSysLanguage(FALSE);
$query->matching($query->logicalAnd($query->equals('uid', $categoryUid),$query->equals('sys_language_uid', 0)));
$category = $query->execute();
return $category;
}
Habe hier auch schon extra ein sys_language_uid=0 dazugegeben und dachte, dass mit $query->getQuerySettings()->setRespectSysLanguage(FALSE); die Sprache quasi komplett ignoriert wird aber ich bekomme den Datensatz immer übersetzt zurück (was ich in dem Fall eben nicht mag)
Liebe Grüße,
Matthias