Zum Inhalt springen

Eigene Extension Auswahlfeld in Flexform

Erstellt am 2. August 2005 · 2 Antworten · letzte Antwort am 2. August 2005

Tags: Frage

SomeBdyElse ·

Hallo!

Ich bastel an einer Extension, die im FE (im BE auswählbare) Farbfelder anzeigen soll. Die Farben liegen in einer Tabelle mit Titel und RGB-Code. Da die Felder auch beschriftet sind brauche ich mehrsprachige Titelfelder. Ich würde nun gerne

- Den Farbcode immer aus der Defaultlanguage auslesen und nur den Titel mehrsprachig überlagern.

- In dem Select-Feld meiner Flexform pro Farbfeld immer nur einen Eintrag stehen haben. Dabei ist es mir egal ob hier die Titel der Defaultlanguage oder andere zur Auswahl stehen.

Jetzt könnte man natürlich wie bei den tt_news Kategorien die Titel alle in einem Datensatz sammeln. Es wäre nur toll wenn sich diese Farbfelder genau wie die normalen Contentelemente übersetzen lassen und man nicht ein neues Konzept lernen muss.. Hat jemand eine Idee?

Das XML meiner Flexform:

<t3datastructure>
	<meta />
		<langdisable>1</langdisable>
	</meta>
	<root>
		<type>array</type>
		<el>
			<colors>
				<tceforms>
					<label>LLL:EXT:coloboxes/locallang_db.php:tt_content.pi_flexform.choice</label>
					<config>
						<type>select</type>
						<foreign_table>tx_colorboxes_color</foreign_table>
						<size>10</size>
						<minitems>0</minitems>
						<maxitems>20</maxitems>
					</config>
				</tceforms>
			</colors>
		</el>
	</root>
</t3datastructure>

Ich könnte hier mit einem <foreign_table_where> nur die Default-Datensätze zur Auswahl anbieten. Aber dann bekomme ich auch nur dessen ID.. Wie wähle ich dann in meinem PHP Code die richtige Spracheüberlagerung aus?

Freue mich sehr über Hilfe!

Einen netten Gruß
SomeBdyElse

SomeBdyElse ·

Ein erster Schritt ist gemacht. Durch ops Anleitung auf

#22855

bin ich auf den l10n_mode gestoßen. Durch hinzufügen von "l10n_mode" => "exclude" zu den Feldangaben in meinem TCA Array konnte ich das Codefeld ausblenden. Also

$TCA['tx_colorboxes_colors']['colums']['code']['l10n_mode'] = "exclude";

in der TCA.php blendet das Feld "code" in den Übersetzungsdatensätzen aus.

Bleibt leider noch das (größere) Problem mit dem beschränken der Auswahl..

SomeBdyElse ·

*pling* okay, man kann einfach mit

<foreign_table_where>
AND tx_colorboxes_color.sys_language_uid = 0 </foreign_table_where>

begrenzen. Hier _werden_ die Datensätze der Originalsprache aber dann im PHP-Code mit orbs Code nach "noch zu klären wäre: wann/wie sind Overlays zu benutzen?" überlagert.

Jetzt bliebe noch eins: Beim Einbinden des Plugins sollen die Farbfelder für alle Übersetzungen nur einmal in der defaultlanguage ausgewählt werden, während der Titel über dem Plugin übersetzbar sein soll. Die Auswahl ist in einer Flexform konfiguriert. Kann ich auch dort einfach einen l10n_mode für ein einzelnes Feld setzen?