Zum Inhalt springen

ifEmpty

Erstellt am 23. Januar 2008 · 9 Antworten · letzte Antwort am 24. Januar 2008

Tags: Frage

jeppo ·

Hallo,

ich habe eine ganz einfache frage. Um einen schönheitsfehler zu beseitigen, möchte ich der wert eines feldes wenn er leer ist mit einen alternativtext erweitern.
Praktisch wenn das feld eventtitle leer ist soll einen text gezeigt werden á la "Kein event".

...
renderObj = COA
renderObj {
	
	# Titel ausgeben
	10 = TEXT 
	10 {	
		field = eventtitle
		crop = 80|...|1
		wrap = <p class="textboxblack">|</p>
		ifEmpty.data = <p class="textboxblack">Kein event</p> ???
	}  			
}
...

leider geht mein bestehendes beispiel nicht, bzw. wenn das feld eventtitle leer ist bleibt einfach leer.

Kann mir jemand auf die sprünge helfen?

Vielen Dank im voraus

Mit freundlchen Grüßen

Jeppo

p.s.: seit über 6 monaten nicht mehr mit typo3 was gemacht und ich merke es :-(

jeppo ·

irgendwie will er nicht :-(

...
renderObj = COA
renderObj {
	
	# Titel ausgeben
	10 = TEXT 
	10 {	
		field = eventtitle
		crop = 80|...|1
		wrap = <p class="textboxblack">|</p>
		ifEmpty = <p class="textboxblack">Kein event</p> ???
	}  			
}
...

zeigt einfach nichts an.

jeppo ·

falls du so gemeint hast, das geht leider auch nicht:

...
renderObj = COA
renderObj {
	
	# Titel ausgeben
	10 = TEXT 
	10 {	
		field = eventtitle
		crop = 80|...|1
		stdWrap.wrap = <p class="textboxblack">|</p>
		stdWrap.require = 1
		ifEmpty = <p class="textboxblack">Kein event</p>
	}  			
}
...

😢

jeppo ·

es konnte auch nicht funktionieren denn die spalte eventtitle, ist in der DB, auch immer gefüllt, meine schuld.

Die aufgabe die ich mir vorgenommen habe, scheint mir (mit meine kenntnisse) unmöglich zu realisieren, zumindest mit typoscript.

Für diesen eventcalender soll der eventtitle im abhängigkeit der spalte dateend angezeigt werden.
Wenn die spalte dateend älter ist als gestern, dann soll bei eventtitle im bereich 10 bei renderObject, einen alternative text ausgegeben werden, sonst eben die event.
Es geht fast schon alles, nur leider wenn keine events da sind, dann bleibt der event feld leer.

Beigefügt mein bisheriges script:

...
20 = CONTENT
20 {
	table = tx_eventcalendar
	select {
		pidInList = 231
		
		andWhere {
			#aktuelles Datum minus einen tag
			data = date:U-84600
			wrap = dateend >= |		
		}

		orderBy = date
		max = 1	
	}

	renderObj = COA
	renderObj {
		
		# EventTitel ausgeben
		10 = TEXT 
		10 {	
  			field = eventtitle
  			crop = 80|...|1
  			wrap = <p class="textboxblack">|</p> 
                    # das geht nur solange im select zukünftigen events gefunden werden
		}
		
		# Datum ausgeben
		20 = TEXT
		20 {		
			field = date
			strftime = %d.%m.%Y
			data = date: U
			wrap = <p class="textboxgrau">|</p>
		}
	}
}
...

Wäre sehr dankbar wenn mir jemand helfen würde.

Schöne Grüßen

Jeppo

ArminB ·

moin,

mein Ansatz wäre mit override:

10 = TEXT
10 {   
  value = <p class="textboxblack">Kein event</p>
  override.cObject = TEXT
  override.cObject {
    required =1 
    field = eventtitle
    crop = 80|...|1
    wrap = <p class="textboxblack">|</p>
  }

}

Armin

ArminB ·
just2b schrieb

hi armin, lies doch mal das letzte posting 😉

georg

jetzt soll ich auch noch lesen.... 😃 😃 ..

naja, als Ansatz dann numRows..

Armin

jeppo ·

Hallo vielen dank,

mit override wäre eben gut gewesen wenn in der DB die spalte eventtitle leer gewesen wäre. Die ist aber leider immer gefüllt, das heisst die abfrage soll abhängig von der zeit sein (spalte dateend).

Jetzt habe ich solange, eine event die erst im Oktober abläuft reingemacht, damit immer was angezeigt ist. Es hat also noch ein bisschen zeit ;-)
Bis dahin hoffe ich schlau genug zu sein um selbst eine lösung zu finden.

Ciao

Jeppo