[Frage] extbase 6.x übersetzten datensatz laden TYPO3-Version: -

  • volk0r volk0r
    Padawan
    0 x
    59 Beiträge
    3 Hilfreiche Beiträge
    18. 06. 2014, 10:58

    hi,

    ich schreibe gerade an einer extension, wo ich auf übersetzte datensätze unabhängig von sys_language_uid zugreifen muss.

    anhand eines vorhandenen objektes der default sprache versuche ich so ein objekt der übersetzten version zu laden.

    1. $querySettings->setRespectSysLanguage(false);
    2. $querySettings->setSysLanguageUid(1);
    3.  
    4. $query = $this->createQuery();
    5. // [ ... ]
    6. // ab hier einfache query geschichten

    allerdings scheint das komplett ignoriert zu werden und ich stehe langsam auf dem schlauch. man findet auch nur leute, die das gleiche problem haben, aber keine wirkliche lösung.

    gibts da irgendwas, was ich beachten muss? fakt ist, ich kann nicht auf sys_language_uid zugreifen, da ich ein backend modul schreibe, und hier quasi die verwaltung der objekte "neu erfinden" muss. und hier eben auch die umschaltung zwischen den sprachen, um die objekte zu speichern.

    wäre über jeden tipp dankbar.

    lg, volker.


  • 1
  • jenses jenses
    Flash Gordon
    0 x
    3087 Beiträge
    106 Hilfreiche Beiträge
    19. 06. 2014, 09:42

    Zitiert von: volk0r

    gibts da irgendwas, was ich beachten muss?

    Tja, die Reihenfolge deiner Anweisungen ist schon nicht ganz unwichtig, von den anderen Fehlern mal abgesehen:

    1. ...
    2. $query = $this->createQuery();
    3. ...
    4. $query->getQuerySettings()->setSysLanguageUid(1);
    5. ...
    6. return $query->execute();

  • volk0r volk0r
    Padawan
    0 x
    59 Beiträge
    3 Hilfreiche Beiträge
    24. 06. 2014, 09:21

    hi. danke für deine antwort. zum thema reihenfolge. in $querySettings war das querysettingsobjekt enthalten, das habe ich dann schon noch im query objekt verändert. hab aber auch die reihenfolge komplett umgeschrieben. das alles brachte keinen erfolg.

    zum zweiten: "von den anderen fehlern mal abgesehen".

    welche fehler wären das?

    darüber hinaus habe ich mittlerweile rausgefunden, das wenn ich einen übersetzten datensatz laden will, und ich das über eine eigene sql anweisung machen würde, bekomme ich bis zu einem bestimmten zeitpunkt zwar ein ergebnis, in der Typo3DbBackend.php in der methode doLanguageAndWorkspaceOverlay() wird dann aber geprüft, ob es sich um einen übersetzten datensatz handelt mit hilfe des TCA und dem key "transOrigPointerField". ist dem so, wird der originale geladen und mein ergebnis ist so nicht mehr verfügbar.

    und ab diesem punkt steige ich aus.

    evtl. gibts ja hier tipps und tricks, wo man mal nachlesen könnte.

    danke und lg, volker.

  • volk0r volk0r
    Padawan
    0 x
    59 Beiträge
    3 Hilfreiche Beiträge
    24. 06. 2014, 15:02

    bin mittlerweile einen schritt weiter, aber immer noch nicht am ende.

    1. $query = $this->createQuery();
    2. $query->getQuerySettings()->setRespectSysLanguage(false);
    3. $query->getQuerySettings()->setSysLanguageUid(1);
    4. $query->getQuerySettings()->setLanguageUid(1);
    5. $query->getQuerySettings()->setLanguageMode('ignore');
    6. $query->getQuerySettings()->setLanguageOverlayMode("hideNonTranslated");
    7. $query->matching($query->equals('sys_language_uid', 1));
    8. return $query->execute();

    liefert mir das queryresult objekt zwar mit einem ergebnis zurück, aber offensichtlich wirds irgendwo nochmal verarbeitet, so das es nicht angezeigt werden kann, weil ich mich in meinem modul nicht im kontext der entsprechenden sprache zu befinden scheine.

  • 1