Image aus Templavoila mit Fallback-Bild (ifEmpty, isFalse)

Hallo Freunde,
ich hatte das Problem, wenn ich ein Bild in TemplaVoila als “Image-Field” setze, wird mir nie ein Fallback Bild angezeigt. Nach langem Suchen, Testen & Probieren habe ich folgende Lösung entwickelt.

Wie wo was warum:
Was: field_backimg wird als Image-Field festgelegt.
Wo: In den Seiten-Eigenschaften.
Was: Man kann pro Seite ein Bild auswählen und definiert somit das Hintergrundbild.
Warum: Der Kunde soll ein Hintergrundbild selber bestimmen können, aber auch ein Fallback-Bild bekommen, wenn er keins wählt.

Das Problem:
Im normalem Fall wird durch TemplaVoila Folgendes geschrieben:

10 = IMAGE
10.file.import = uploads/tx_templavoila/
10.file.import.current = 1
10.file.import.listNum = 0
10.file.maxW = 200

Damit kann man aber dann kein Default-Fallback-Bild definieren, da das “current = 1” alles überschreibt. Auch die ifTrue, ifFalse & ifEmpty fassen hier bei nicht.

Die Lösung:
Man bindet das Bild nicht mit “current = 1” ein, sondern holt sich die Daten über “import.data” aus dem Feld. Somit macht man das gleiche wie “current = 1” nur das man dann ein Fallback-Bild setzen kann.

10 = IMAGE
10 {
	file = fileadmin/user_upload/backgrounds/default.jpg
	file {
		import = uploads/tx_templavoila/
		import.data = field:field_backimg
		import.listNum = 0
	}
	# optional Pagetitle als alt/titletag
	altText.data= levelfield :-1, title, slide
	#titleText.data= levelfield :-1, title, slide
}

Viel Spaß damit,
Marc

Typo3 mit Flashbanner + vererbung | Unterseiten aber nur Bild (tt_content)

Hallo liebe Freunde,
wenn man in Typo3 doch mal Flash verwenden will, gibt es eine tolle EXT: Flash Player Integration (SWF Object)

Wenn man nun den Banner auch noch auf die Unterseiten vererben möchte (beispielhafte Einstellung im TS von TemplaVoila-Mapping):

20 = CONTENT
20 {
source.current = 1

## by marc
table = tt_content
select {
select.pidInList.if.isTrue.field=tt_content
selectFields = tt_content.*
where = tt_content.colPos=3
groupBy = tt_content.uid
leftjoin = pages ON(pages.uid = tt_content.pid) AND INSTR(pages.tx_templavoila_flex, CONCAT(‘index=”vDEF”>’, tt_content.uid))>0
}
## by marc – end

stdWrap.required = 1
stdWrap.dataWrap =

|

 


slide = -1
}

 

[…] Sollte man das Plugin nicht direkt einbinden, sondern per Typoscript.
Damit hat man direkt auch die Möglichkeit alle Paramater übergeben und wenn der Kunde doch mal auf den Unterseiten doch nur noch ein Bild zu sehen ist statt immer die gleiche Animation, ist es durch ein paar Teilen mehr (siehe PIDinRootline) das auch alles kein Thema mehr 😉

flash.produkt < plugin.tx_yejjswfobject_pi1 flash.produkt { flash_record { flashmovie = fileadmin//user_upload/xxxx/xxxx/banner.swf width = 980 height = 320 requiredversion = 8 alternativecontent = 3700 } ts_content { flashParams ( wmode|transparent loop|false ) } } [PIDinRootline = 215,250,238,435,240,241] flash.produkt = RECORDS flash.produkt.tables = tt_content flash.produkt.source = 3700 [end] [/code]

 

Fazit: Die Art etwas mit Typoscript einzubinden ist zwar im ersten Moment nervig und etwas aufwändig, aber kann bei einer großen Webseite das Leben echt leicht machen. Bei mir würde es in dem Fall von 8 Flashbanner und 500 Unterseiten ca. 2 Stunden Arbeit ersparen.

Ich wünsche euch viel Spaß damit und tolle Internseiten 😉
Grüße, euer Marc

TemplaVoila – Selectbox mit Ausgabe über Typoscript

Hallo zusammen, so kann man mit TypoScript und TemplaVoila direkt etwas an den Content rendern.
Hier die genauen Schritte wie das gemacht wird.

Erst gehen wir in TemplaVoila in die Edit-Ebene:

1) Erstellen eines Feldes in TemplaVoila “Not mapped”
1a) fieldname: field_checker
2) Element Preset: Selecter Box
3) unter Form die Parameter angeben

<type>select</type>
<items type="array">
	<numIndex index="0" type="array">
		<numIndex index="0">nein</numIndex>
		<numIndex index="1">0</numIndex>
	</numIndex>
	<numIndex index="1" type="array">
		<numIndex index="0">ja</numIndex>
		<numIndex index="1">1</numIndex>
	</numIndex>
</items>
<default>1</default>

Wobei: numIndex index=”0″ der Wert ist, den man im Backend sieht, und der numIndex index=”1″, der Wert womit gearbeitet wird.

Nach dem das fertig ist, gehen wir in unser TemplaVoila-Feld wo wir in meinem Beispiel, etwas einfügen wollen.
Es geht auch so, dass man sich ein eigenes Feld macht.

Mein Feld ist ein Plugin, welches eingeladen werden soll, wenn der Wert auf “Ja” also “1” gesetzt ist.

# default by templaVoila
	 5 = LOAD_REGISTER

	 10 = RECORDS
	 10.source.current=1
	 10.tables = tt_content
	 # 10.wrap = <!--TYPO3SEARCH_begin--> | <!--TYPO3SEARCH_end-->

	 15 = RESTORE_REGISTER
# default - end

70 = COA
70 {
	 if.value = 1
	 if.equals.field = field_checker
	 insertData = 1
	 10 = TEXT
	 10.value = Das sehe ich wenn das Feld "Ja" ausgewählt ist
}

75 = COA
75 {
	 if.value = 0
	 if.equals.field = field_checker
	 insertData = 1
	 10 = TEXT
	 10.value = Das sehe ich wenn das Feld "nein" ausgewählt ist
}

Somit haben wir zudem die Möglichkeiten einen Text, Class oder sogar ein Modul einzuladen.
Dazu ist es für die Redakteure am einfachsten mit einer Select-box das Verhalten auszuwählen.

Liebe Grüße
Marc