Zum Inhalt springen

Imageswap Anzeige nach dem 2 Bild

Erstellt am 28. April 2009 · 7 Antworten · letzte Antwort am 5. Mai 2009

Tags: Bilder, Frage

Steinvirus ·

hi leute,

ich habe ein problem mit dem lib.imageswap auf meiner seite.
ich habe das ganze von hier http://www.rggooglemap.com/dev/fun/ts-image-swap.html übernehmen können.
läuft soweit auch. das einzige problem das ich habe ist das wenn ich nur ein bild einfüge das dieses aleine angezeigt wird.was ich jedoch nicht möchte. anzeigen in so fern das es unten im klein formart auftaucht und den anfang zur gallerie bildet.
ich möchte doch die gallerie anzeige erst nach dem 2 bild haben. also das dann 2 bilder da sind.

wenn eins alleine darsteht sieht das halt nicht gut aus ;-)

mir wurde zu einer if-abfrage geraten doch leider weiß ich nicht wie ich das angehen/umsetzen soll. natürlich habe ich gegoogelt ;-) und dabei dieses gefunden: http://typo3blogger.de/if-abfrage-mit-typoscript/comment-page-1/#comment-28203 doch leider weiß ich damit nichts anzufangen o.O

seite ist lokal und noch nicht ubloaden bereit deswegen kein link.

mfg
steini

Steinvirus ·

Guten morgen alle,

also ich bin immer noch nicht weiter zwischendurch hatte ich den ganzen code zerschossen XD jetzt hab ich ihn wieder neu eingefühgt.. das hatte ich probiert:

10.if.isTrue.field = listNum = 1
20 <.10
20.file.import.listNum = 1
20.if.isFalse.field = listNum = 2

leider weiß ich immer noch nicht weiter deswegen bitte ich nochmals um hilfe.. vill denke ich einfach nicht genug nach aber ich komme nicht auf die lösung

Steinvirus ·

hallo leute,

ich fange gleich an zu weinen ... ich bin echt alles abgegrasst.... 😢 vill solte ich aufgeben .. ich verstehe es einfach nicht ... ich möchte es verstehen aber es geht nicht in meinen schädel rein

steini

Tosta ·

Hi Steini,

du Armer! Deine ifs sind falsch. Kein Wunder, ist auch ein bisschen tricky, hab ich gerad letztens noch mit gekämpft. TYPO3 bringt auch mich immer wieder zum Heulen.

Bei if musst du einmal equals bzw. eine der is-Eigenschaften und dann die value-Eigenschaft setzen. Beide Male kannst du einen Direktwert oder über stdwrap zuweisen. (Am besten nachzulesen in O'Reilly's TYPO3 Kochbuch.)

Hilft aber alles erst mal nicht, weil listNum kein Feld ist, das du abfragen kannst (dein Code sieht so aus, als wenn du es versuchtest), sondern eine Funktion, die aus einer Werteliste den Wert an der angegebenen Position herausholt:

listDemo = COA
listDemo {
  10 = TEXT
  10 {
    value = A,B,C
    listNum = 1
    wrap = Erster: |
  }
  20 < .10
  20 {
    listNum = 2
    wrap = Zweiter: |
  }
  30 < .10
  30 {
    listNum = 3
    wrap = Dritter: |
  }
}

Hier liefert jedes Element von listDemo jeweils einen Buchstaben aus der Liste, die dem value zugewiesen wurde.

Jetzt willst du -- wenn ich dich richtig verstanden habe -- unterschiedliche Verarbeitung der Bilder-Liste, je nach dem, ob 1 Bild oder mehr Bilder enthalten sind. Ich würde dazu zunächst ein COA-Element definieren mit listNum = 2 und hier feststellen, ob dieses Listenelement leer ist, und dem entstprechend ein Register setzen (statt listNum muss hier glaubich preIfEmptyListNum verwendet werden, es soll ja nicht zu einfach werden!). Danach kann in Abhängigkeit von dem Registerwert die eine oder andere Darstellung gewählt werden -- und hier kommt dann doch noch if zur Geltung.

Das so weit als Anregung. Für Details ist es mir jetzt zu spät. Alles Gute!

Tosta

Steinvirus ·

Guten morgen tosta,

ich habe echt probiert das irgentwas zu machen aber alles was ich machte versaute mir meinen code.

auch mit dem beispiel was du mir gegeben hast weiß ich leider nicht was ich anfangen soll.. ich durchblicke das Typoskript noch nicht. kannst du mir vill nochmal erklären wie ich die if-verbindung setze ?

mfg
steini

Steinvirus ·

Guten morgen,

ich habe den code jetzt so bearbeitet

lib.imageswap = COA
lib.imageswap {
	# BIG IMAGE
	1 = IMAGE
	1 {
		file {
			maxW = 400
			maxH = 257

			import= uploads/media/
			import.data = levelmedia: -1,slide
			import.listNum = 0
			import.override.field = media
		}
		params = name="image_big" id="bigimg"
	}

	# SMALL THUMBS
	10 <.1
	10 {
		file {
			maxW = 125
			maxH = 125
		}
		params = onclick="swap('image_big', this)" id="smallimg"!
		
		longdescURL.cObject = IMG_RESOURCE
		longdescURL.cObject.file {
			import.data = TSFE:lastImageInfo|origFile
			maxW = 400
			maxH = 257
		}
	}
	20 <.10
	20.file.import.listNum = 1
	20 {	
		value = A
		listNum = 1
		 		
	}
	30 <.10
	30.file.import.listNum = 2
	30 {	
		value = B
		listNum = 2
		 		
	}
	40 <.10
	40.file.import.listNum = 3
	40 {	
		value = c
		listNum = 3
		
	}
	50 <.10
	50.file.import.listNum = 4
	60 <.10
	60.file.import.listNum = 5	
	70 <.10
	70.file.import.listNum = 6
	80 <.10
	80.file.import.listNum = 7
	
	# JS
	100 = TEXT
	100.value (
		<script type="text/javascript">
		  <!--
		  function swap(imgname,image) 
		  { document.images[imgname].src = image.getAttribute('longdesc'); }
		  //-->
		</script>	
	)
}

leider ohne erfolg, ich verstehe noch nicht ganz was es mit dem preIfEmptyListNum auf sich hat. Und leider weiß ich auch nicht wie man das ganze mit der if-abfrage in einer kombinatsion verwendet. ich bitte nochmals um hilfe.

hier das buch das du mir empfolen hast aber ich habe da nur fragezeichen auf den augen
http://books.google.de/books?id=xayL0Ckq60kC&pg=PA343&dq=typo3+preIfEmptyListNum#PPA344,M1 ?.?

MFG

Steinvirus

Tosta ·

Hi Steini,

ich kann dir nur empfehlen, mindestens Kapitel 9.3 des TYPO3 Kochbuchs in Ruhe und konzentriert zu lesen. Es ist nicht sofort verständlich, aber nach dem 3. oder 4. Lesen fällt der eine oder andere Groschen...

TypoScript treibt mich regelmäßig in Depression, aber inzwischen habe ich erkannt, dass es eine Gewöhnungssache ist. Bei der zweiten Website lief schon manches besser, und beim aktuellen Projekt sehe ich Manches schon als interessante Herausforderung. Aber ich hab jetzt auch über zwei Jahre Kampf hinter mir.

Inzwischen habe ich mir folgende Vorgehensweise angewöhnt: Wenn ich eine TypoScript-Funktion noch nicht kenne, versuche ich, in ganz kleinem Rahmen dahinter zu kommen. Dazu baue ich mir übersichtliche Elemente, über deren Ausgabe ich die Funktionsweise erkennen kann. Für if beispielsweise:

tt_content.textpic.15 = TEXT
tt_content.textpic.15 {
  if.isTrue.field = rte_enabled
  value = Rich-Text-Editor ist abgeschaltet
  wrap = <p><b>|</b></p>
}
tt_content.textpic.16 = TEXT
tt_content.textpic.16 {
  if.isFalse.field = rte_enabled
  value = Rich-Text-Editor ist eingeschaltet
  wrap = <p><b>|</b></p>
}

So wird bei jedem textpic-Inhaltselement nach der Überschrift und vor dem eigentlichen Text die Meldung »Rich-Text-Editor ist abgeschaltet« bzw. »... eingeschaltet« ausgegeben, je nach dem wie im Backend die entsprechende Checkbox gesetzt ist. (Nebenbei lernst du hier auch Prinzipielles über TYPO3: Ein Feld, das rte_enabled, heißt, hat die genau umgekehrte Semantik, die sein Name vermuten lässt! Kein Witz: Wenn rte_enabled gesetzt, also true ist, ist der RTE ausgeschaltet.)

Diese paar Zeilen sind übersichtlich, schnell zu verändern, und ihr Effekt ist leicht zu erkennen. Jetzt kannst du andere if-Funktionen ausprobieren; und so kommst du Schritt für Schritt dem Verständnis näher. Gehe mit listNum genauso vor, bis du es verstanden hast. Danach kannst du langsam deine komplexe Bilder-Anzeige entwickeln, aber bleibe bei den kleinen Schritten: Immer ein bisschen was ändern und sofort prüfen, was dadurch passiert.

Dabei lese ich immer wieder die Erläuterungen im Kochbuch. Es gibt inzwischen bei Hanser auch ein TypoScript-Buch, das ich nicht kenne. Vielleicht bringt das ja auch was.

Manchmal ist es auch erhellend, im TypoScript Object Browser nachzusehen, wie Funktionalität in Standards (z.B. lib.stdheader benutzt wird.

Bestimmte Lösungen mit TypoScript hinzubekommen ist auf jeden Fall bei mir eine Sache der Zeit, d.h. manchmal Wochen oder Monate, in denen ich es immer wieder mal probiere. Irgendwann kommt eine Erleuchtung, und ich bin wieder einen Schritt weiter.

Tosta

Steinvirus ·

Danke für die tipps ich werde das ganze probieren und versuchen ^^ wenn ich es nicht schaffen sollte melde ich mich nochmal und wenn ich eine löung habe poste ich sie hier

MfG
Steini