Zum Inhalt springen

auf Selectorbox per TS zugreifen

Erstellt am 5. November 2009 · 13 Antworten · letzte Antwort am 5. November 2009

Tags: Frage

NedjemAnja ·

Hallo alle zusammen,

ich häng hier gerade an einem Problem. Habe ein FCE erstellt in dem man per Selectbox auswählen kann (JA/NEIN) wenn Ja ausgewählt wurde möchte ich, dass ein Attribut (class="") einen bestimmten Wert bekommt, ansonsten einen anderen.
Allerdings weiß ich nicht so recht, wie ich auf den ausgewählten Wert der Selectbox zugreifen kann. Habe bis jetzt folgendes

für die Selectbox (field_expand):

...
						<type>select</type>
						<items type="array">
							<numindex index="1" type="array">
								<numindex index="0">Ja</numindex>
								<numindex index="1">display:none;</numindex>
							</numindex>
							<numindex index="0" type="array">
								<numindex index="0">Nein</numindex>
								<numindex index="1"></numindex>
							</numindex>
						</items>
						<default>0</default>
...

für das Attribut:

	...				<etype>none</etype>					
					<typoscript>	
	10 = TEXT
	[field_expand = 0]
	  10.value = css_class_nein
	[else]
	  10.value = css_class_ja
	[end]
	
					</typoscript>
...

Anscheinend bekomme ich durch field_expand oder field_expand.key (Schuss ins Blaue) nicht den ausgewählten wert zurück, da im Frontend immer wieder class="css_class_ja" rauskommt. Weiß einer wie ich da drauf zugreifen kann bzw. was ich falsch mache?

Liebe Grüße
Anja

froemken ·

Sowas machst du mit der eigenschaft "if"

10 = COA
10.10 = TEXT
10.10.value = class_ja
10.10.if.value = 0
10.10.if.equals.field = field_expand
10.20 = TEXT
10.20.value = class_nein
10.20.if.value = 1
10.20.if.equals.field = field_expand

Code ist nicht getestet, aber ich denke in diese Richtung wird deine Lösung gehen.

froemken ·

Ein bisschen Eigeninitiative wäre schon gewesen:

<T3DataStructure>
	<ROOT type="array">
		<el type="array">
			<field_selector type="array">
				<tx_templavoila type="array">
					<TypoScript><![CDATA[
      10 = COA
      10.10 = TEXT
      10.10.value = class_ja
      10.10.if.value.field = field_test
      10.10.if.equals = Value 2
      10.20 = TEXT
      10.20.value = class_nein
      10.10.if.value.field = field_test
      10.10.if.equals = Value 1
       					]]></TypoScript>
				</tx_templavoila>
			</field_selector>
		</el>
	</ROOT>
</T3DataStructure>

Das funktioniert und ist getestet.

froemken ·

Ich hab die gar nicht gestaltet. Steht einfach nur der Standard Value 1, Value 2 und Value 3 drin.
Da dieses Feld immer SOFORT den Inhalt der Selektbox auf der Seite ausgibt, habe ich diesem Feld nicht "Element" zugeordnet, sondern "Not mapped". Dadurch kann der Kunde, zwar Werte auswählen, aber sie werden nicht mehr direkt auf der Seite angezeigt.
Dann habe ich ein zweites Feld erstellt als "Element" und habe als Element "[NONE]" ausgewählt und das mit meinem HTML gemapped.
Ob alles funktioniert habe ich getestet mit

10 = TEXT
10.field = field_test

Nachdem das also funktioniert hat, habe ich meinen Code von hier kopiert und die beiden Zeilen mit value und field vertauscht, weil equals kam mit der stdWrap-Eigenschaft nicht klar.

Stefan

NedjemAnja ·

hmmm habe das mal versucht, meine Selectbox ist nämlich gemappt (wird auch benötigt). Davon abhängig ob Ja oder Nein ausgewählt wird soll dann ein anders Element ein das Attribut 'class=""' verändern. Da meine Selectbox also abgeändert ist (siehe 1.Post - Zeile 4-11) sollte also mein TS so aussehen:

      10 = COA
      10.10 = TEXT
      10.10.value = class_ja
      10.10.if.value.field = field_expand
      10.10.if.equals = Nein
      10.20 = TEXT
      10.20.value = class_nein
      10.10.if.value.field = field_expand
      10.10.if.equals = Ja

Allerdingst steht jetzt immer in dem Attribut 'class' 'class_nein' drin :o

NedjemAnja ·

:o *räusper* ehm ja, dass hätt ich sehen müssen...
komischerweise gibts jetzt keine Ausgabe mehr...

      10 = COA
      10.10 = TEXT
      10.10.value = class_ja
      10.10.if.value.field = field_expand
      10.10.if.equals = Ja
      10.20 = TEXT
      10.20.value = class_nein
      10.20.if.value.field = field_expand
      10.20.if.equals = Nein

😢

NedjemAnja ·
<T3DataStructure>
	<meta type="array">
		<langDisable>1</langDisable>
	</meta>
	<ROOT type="array">
		<tx_templavoila type="array">
			<title>ROOT</title>
			<description>Wählen Sie das HTML-Element der Seite, das Sie als übergeordnetes Container-Element der Vorlage möchten.</description>
		</tx_templavoila>
		<type>array</type>
		<el type="array">
			<field_header type="array">
				<tx_templavoila type="array">
					<title>Überschrift</title>
					<sample_data type="array">
						<numIndex index="0">Wenn man auf diesen Text klickt wird ein Beschreibungstext sichtbar</numIndex>
					</sample_data>
					<eType>input</eType>
					<proc type="array">
						<HSC type="integer">1</HSC>
					</proc>
				</tx_templavoila>
				<TCEforms type="array">
					<config type="array">
						<type>input</type>
						<size>48</size>
						<eval>trim</eval>
					</config>
					<label>Überschrift</label>
				</TCEforms>
			</field_header>
			<field_text type="array">
				<tx_templavoila type="array">
					<title>Beschreibungtext</title>
					<sample_data type="array">
						<numIndex index="0"></numIndex>
					</sample_data>
					<eType>rte</eType>
					<TypoScript><![CDATA[
	10 = TEXT
	10.current = 1
	10.parseFunc = < lib.parseFunc_RTE
							]]></TypoScript>
					<proc type="array">
						<HSC type="integer">0</HSC>
					</proc>
				</tx_templavoila>
				<TCEforms type="array">
					<config type="array">
						<type>text</type>
						<cols>48</cols>
						<rows>5</rows>
						<softref>typolink_tag,images,email[subst],url</softref>
					</config>
					<defaultExtras>richtext:rte_transform[flag=rte_enabled|mode=ts_css]</defaultExtras>
					<label>Beschreibungtext</label>
				</TCEforms>
			</field_text>
			<field_expand type="array">
				<type>attr</type>
				<tx_templavoila type="array">
					<title>Soll die Slidebox eingeklappt sein?</title>
					<sample_data type="array">
						<numIndex index="0">display: none;</numIndex>
					</sample_data>
					<eType>select</eType>
				</tx_templavoila>
				<TCEforms type="array">
					<config type="array">
						<type>select</type>
						<items type="array">
							<numIndex index="1" type="array">
								<numIndex index="0">Ja</numIndex>
								<numIndex index="1">display:none;</numIndex>
							</numIndex>
							<numIndex index="0" type="array">
								<numIndex index="0">Nein</numIndex>
								<numIndex index="1"></numIndex>
							</numIndex>
						</items>
						<default>0</default>
					</config>
					<label>Soll die Slidebox eingeklappt sein?</label>
				</TCEforms>
			</field_expand>
			<field_header_class type="array">
				<type>attr</type>
				<tx_templavoila type="array">
					<title>Klasse für Überschrift</title>
					<sample_data type="array">
						<numIndex index="0"></numIndex>
					</sample_data>
					<eType>none</eType>					
					<TypoScript><![CDATA[

      10 = COA
      10.10 = TEXT
      10.10.value = class_ja
      10.10.if.value.field = field_expand
      10.10.if.equals = Ja
      10.20 = TEXT
      10.20.value = class_nein
      10.20.if.value.field = field_expand
      10.20.if.equals = Nein
	
					]]></TypoScript>
				</tx_templavoila>
			</field_header_class>
		</el>
		<section>1</section>
	</ROOT>
</T3DataStructure>
froemken ·

Cache geleert?

Hier mal mein XML, das immer noch klappt...vielleicht findet du ja was...

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<T3DataStructure>
	<meta type="array">
		<langDisable>1</langDisable>
	</meta>
	<ROOT type="array">
		<tx_templavoila type="array">
			<title>ROOT</title>
			<description>Select the HTML element on the page which you want to be the overall container element for the template.</description>
		</tx_templavoila>
		<type>array</type>
		<el type="array">
			<field_test type="array">
				<tx_templavoila type="array">
					<title>test</title>
					<description>test</description>
					<sample_data type="array">
						<numIndex index="0">[TEST]</numIndex>
					</sample_data>
					<eType>select</eType>
				</tx_templavoila>
				<TCEforms type="array">
					<config type="array">
						<type>select</type>
						<items type="array">
							<numIndex index="0" type="array">
								<numIndex index="0"></numIndex>
								<numIndex index="1"></numIndex>
							</numIndex>
							<numIndex index="1" type="array">
								<numIndex index="0">Value 1</numIndex>
								<numIndex index="1">Value 1</numIndex>
							</numIndex>
							<numIndex index="2" type="array">
								<numIndex index="0">Value 2</numIndex>
								<numIndex index="1">Value 2</numIndex>
							</numIndex>
							<numIndex index="3" type="array">
								<numIndex index="0">Value 3</numIndex>
								<numIndex index="1">Value 3</numIndex>
							</numIndex>
						</items>
						<default>0</default>
					</config>
					<label>test</label>
				</TCEforms>
				<type>no_map</type>
			</field_test>
			<field_selector type="array">
				<tx_templavoila type="array">
					<title>selector</title>
					<description>selector</description>
					<sample_data type="array">
						<numIndex index="0">[SELECTOR]</numIndex>
					</sample_data>
					<eType>none</eType>
					<tags>div:inner</tags>
					<TypoScript><![CDATA[
      10 = COA
      10.10 = TEXT
      10.10.value = class_ja
      10.10.if.value.field = field_test
      10.10.if.equals = Value 2
      10.20 = TEXT
      10.20.value = class_nein
      10.20.if.value.field = field_test
      10.20.if.equals = Value 1
       					]]></TypoScript>
				</tx_templavoila>
			</field_selector>
		</el>
	</ROOT>
</T3DataStructure>
NedjemAnja ·

aaah ja, ver*piep* jetzt hab ichs! :o

Danke dir vielmals!

Und für alle die es Interessiert hier die Lösung:

      10 = COA
      10.10 = TEXT
      10.10.value = class_ja
      10.10.if.value.field = field_expand
      10.10.if.equals = display:none;
      10.20 = TEXT
      10.20.value = class_nein
      10.20.if.value.field = field_expand
      10.20.if.equals =

-> ergo es werden die Werte aus field_expand verglichen (nicht die Labels)

froemken ·

Haztte auch schon an sowas gedacht, aber als du sagtest, dass es ja mit dem einen Wert funktioniert, habe ich da nicht weiter darüber nachgedacht.

Also...viel Erfolg weiterhin..

Stefan

PS: und mach einen Haken für gelöst...