Zum Inhalt springen

Problem mit TCA und ###REC_FIELD_sys_language_uid###

Erstellt am 11. Dezember 2008 · 4 Antworten · letzte Antwort am 30. Juni 2010

Tags: Frage

febo ·

Hi Leute,

um mir bei der Bearbeitung von Datensätzen bei bestimmten Feldern nur die Datensätze der gleichen Sprache anzeigen zu lassen, verwende ich im TCA meiner Extension folgenden Eintrag:

"foreign_table_where" => "AND (sys_language_uid=###REC_FIELD_sys_language_uid### OR sys_language_uid='-1' OR sys_language_uid='0') ORDER BY tx_meineext_categorien.titel",

Habe ich also z.B. einen Datensatz - sagen wir einen Benutzer - in Englisch angelegt und öffne den Datensatz, dann werden mir nur die Kategorien in englischer Sprache angezeigt.

Möchte ich nun aber einen neuen Datensatz anlegen bekomme ich folgenden Fehler:

...AND (sys_language_uid= OR sys_language_uid='-1' OR sys_language_uid='0')

Die erste Abfrage sys_language_uid= hat keinen Wert. Ist ja auch klar, da der neue Datensatz ja noch keine Sprache zugewiesen bekommen hat. Und genau da liegt das Problem. Wie kann ich beim Anlegen eines neuen Datensatzes die erste Abfrag weglassen bzw. die Abfrage so gestalten dass ich keinen Fehler zurück bekomme.

Für Hinweise die zur Aufklärung dieses Problems führen ist eine Belohnung in Form eines Danke schön! ausgeschrieben. 😃

Gruß

febo

febo ·

Hi,

ich nochmal

nun habe ich mir gedacht, ich könnte den Teil der t3lib_befunc der für den Austausch des Markers verantwortlich ist austauschen indem ich die Klasse erweiter bzw. die entsprechende Function tausche. Leider klappt dies nicht wie bei den xclasses.

Der Versuch über einen Eintrag in der ext_localcon.php ein tausch entsprechender Funktioniert in der t3lib_befunc zu realisieren klappt irgendwie nicht. Hier mal der String:

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_befunc.php']['exec_foreign_table_where_query'] = 'EXT:meineext/class.asd_t3lib_befunc.php:asd_t3lib_befunc->exec_foreign_table_where_query';

Im Script liegt die gleiche Funktion wie in der t3lib_befunc nur mit einem "Hallo Welt" in einer var_dump() Anweisung um zu sehen ob es funktioniert. Leider nicht.

Hat jemand einen rat?

Gruß

febo

febo ·

und wenn man die Lösung erstmal gefunden hat, findet sich auch in diesem Forum der passende Beitrag.

#53568

Schönen Abend noch

Gruß

febo

schittl ·

Hallo febo,

kannst Du mir bitte nochmal sagen wie Du das Problem gelöst hast? Der Link funktioniert nicht mehr.#angry#

Hintergrund:
Ich muss die Funktion "exec_foreign_table_where_query" übersteuern, da ich dbal nutze und wenn ich Daten im BE ändern möchte, wo eine Releation zu einer MM-Tabelle besteht, kommt folgende Meldung:

DBAL fatal error: Tables in this list "tx_xxxxxxx_typ, pages" didn't use the same DB handler!

Oder gibt es eine andere Lösung?

mfg
schittl