New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sprachenabhängiges Eingabefeld vom Typ Auswahlliste (BE) #35

Closed
madi84 opened this Issue Jul 14, 2017 · 5 comments

Comments

Projects
None yet
2 participants
@madi84
Copy link

madi84 commented Jul 14, 2017

Gesucht wird eine Lösung für verknüpfte mehrsprachige Kataloge ohne für jede Sprache in eigenes Eingabefeld zu erstellt.

Beispiel: Eine Tabelle mit Produkten und eine Tabelle mit Zubehör. Auf der Produktseite soll das Zubehör mit dargestellt werden. Um dem Zubehör Produkte zuzuordnen erstellt man im Zubehör ein Eingabefeld vom Typ Auswahlliste und läd die Daten aus der Tabelle Produkte.

Bei Mehrsprachigkeit hat man nun aber das Problem, dass wenn man sich im Zubehör befindet, in der Auswahl alle Produkte in allen Sprachen anzeigt werden und anhand des Titels auch nicht unterscheiden kann.

Möglichkeit wäre vielleicht eine Option in den Einstellungen des Wrappers nur Wrapper mit dem gleichen Key zu berücksichtigen. Bei Mehrsprachigkeit wird ja eh dazu geraten ein neues Feld für die Sprachkeys zu erstellen.

@alnv

This comment has been minimized.

Copy link
Owner

alnv commented Jul 17, 2017

Ich würde auf die Wrapper in diesem Fall verzichten und alles "flach" halten. Eine Tabelle für Produkte und eine Tabelle für Zubehör.

Wähle unter Sprachwechsler-Einstellungen > Quelle > Aus eigener Tabelle dein Eingabefeld für Sprache aus. Alles andere funktioniert wie gehabt.

Der Vorteil ist, du kannst deine Datensätze problemlos nach Sprache filtern ohne dabei die Wrapper zu berücksichtigen.

@todo für die Zukunft

  • Ein Hook für eigene SQL Abfragen.
  • Joins für Elterntabelle um an die Wrapper Daten ranzukommen.
@madi84

This comment has been minimized.

Copy link
Author

madi84 commented Jul 27, 2017

So ganz versteh ich den Lösungsansatz leider nicht. Wie weiß das Modul, wenn ich im Backend das Zubehör XY (Deutsch) bearbeite, dass er mir in der Auswahlliste nur Produkte in Deutsch anzeigen soll?

Mein Problem ist ja, dass ich nicht sehe was Deutsch und Englisch ist weil alle Produkte gleich heißen. ich könnte lediglich für jedes Produkt ein neues Eingabefeld erstellen (z.B. "DE - Produkt A") und für die Auswahlliste verwenden. Habe es aber jetzt mit mehreren Auswahllisten umgesetzt, bei zwei Sprachen geht das noch:

Vorher:
Bitte wählen Sie das zugehörige Produkt aus: Produkt A, Produkt A, Produkt B, Produkt B, ...

Jetzt:
Bitte wählen Sie das zugehörige Produkt aus (EN): Produkt A, Produkt B,...
Bitte wählen Sie das zugehörige Produkt aus (DE): Produkt A, Produkt B,...

@alnv

This comment has been minimized.

Copy link
Owner

alnv commented Jul 28, 2017

Siehe hier #47
Ich würde den Produktnamen nicht in den Titel schreiben sondern ein eigenes Feld dafür anlegen.
Für den Titel würde ich eine Konvention anlegen. []

@madi84

This comment has been minimized.

Copy link
Author

madi84 commented Jul 28, 2017

Ok, das wäre dann wie das beschriebene neue Eingabefeld. Damit da kein Chaos entsteht wenn mehrere Personen daran arbeiten die sich nicht strikt daran halten, wär es evtl. sinnvoll ein Feld mit den Werten automatisch befüllen zu können.

Da das ja erst generiert werden kann wenn der Datensatz gespeichert wird könnte man ein verstecktes Feld verwenden und dort als Standard-Wert andere Feldnamen als Variable übergeben wie z.B.: {{name}} {{vorname}} {{alter}} = uniquie Feld "Max Mustermann 32"

@alnv

This comment has been minimized.

Copy link
Owner

alnv commented Aug 1, 2017

Neu in v1.5 => Es ist nun möglich bei der Auswahllisten Filterung auf die Werte der Elterntabelle zuzugreifen z.B { { elterntabelleFeldname } } => { { ctlg_wrapperID } }.

Weiter kann man alle Felder per dcaconfig.php überschreiben und ein eigenes options_callback implementieren z.B:

$GLOBALS['TL_DCA']['ctlg_immobilien']['fields']['myfield']['options_callback'] = [ 'MyClass', 'myFunction' ];

Sonst empfehle ich die Tabellen flach zuhalten und keine unnötigen Wrapper zu integrieren.

Da das ja erst generiert werden kann wenn der Datensatz gespeichert wird könnte man ein verstecktes Feld verwenden und dort als Standard-Wert andere Feldnamen als Variable übergeben wie z.B.: {{name}} {{vorname}} {{alter}} = uniquie Feld "Max Mustermann 32"

Siehe #47

@alnv alnv removed the todo label Aug 1, 2017

@alnv alnv closed this Aug 1, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment