Zum Inhalt springen

Condition-Frage

Erstellt am 27. Februar 2009 · 10 Antworten · letzte Antwort am 3. März 2009

Tags: Frage

frOsT1337 ·

Hi Leute 🙂

Ich wollte mal was neues ausprobieren und eine if/else geschichte einbauen. Will nur noch nicht ganz klappen obwohl ich mit die referenz durchgelesen habe.

Ich hab folgendes vor. Ich habe ein Inhaltelement was auf jeder Seite angezeigt wird fest eingebaut. Das Inhaltselement ist ein Headerbild.
Jetzt möchte ich wenn jemand etwas in den linken Contentbereich macht das durch eine andere Stylesheet das globale Headerbild ausgeblendet wird und nur das headerbild im linken contentbereich im headerbereich angezeigt wird.

Das hab ich schon.

[IF Content im linken Inhaltsbereich ;)]


page.includeCSS {
file4 = fileadmin/ohne.css
}


[ELSE]


HAUPTBILD = CONTENT 
HAUPTBILD {
  table = tt_content
  select {
    pidInList = 8
    where = uid=1
  }
}


[GLOBAL]

Das Else funktioniert. Nur anstatt dem If weiss ich nicht was ich schreiben soll.

Oder ist dies mit typoscript garnicht möglich?

Grüße

frOsT

Julian.​Hofmann ·

Hallo frOsT.

Deiner Beschreibung kann ich zwar nicht ganz folgen, wann was angezeigtw erden soll, aber warum willst Du überhaupt abhängig vom (Nicht-)Vorhandensein von Content CSS-Dateien einbinden. Über CSS sollte sich doch auch erreichen lassen, dass eine Seite anders aussieht,w enn Inhalt da ist, als wenn keiner da ist. Dein linker Inhalt wird ja in einem DIV liegen, d.h. über dieses ansprechbar sein.

Viele Grüße
Julian

frOsT1337 ·

Hi Julian,

Ich hab das ganze so gemacht. In einem DIV liegt der Marker für das eine Headerbild was auf allen Seiten angezeigt wird.

Dann habe ich noch ein DIV in dem ein Marker für das Linke Contentelement ist.

Der Kunde soll die Headerbilder selber einpflegen können.

Deswegen habe ich gedacht wenn der Kunde für eine Seite ein Headerbild einbindet, dass das andere Globale Header bild durch eine andere Stylesheet nicht mehr angezeigt wird.

Ich könnte zwar mitm z-index das andere Bild einfach drüber legen, aber dann wird das Globale ja trotzdem geladen, was ja eigentlich nicht muss.

Weisst du was ich jetzt meine? 🙂

Grüße & Danke für deine Antwort.

frOsT

frOsT1337 ·

Eine Stelle fürs Headerbild, ja.

Standardmäßig ist es ein Headerbild. Und das spezifische Headerbild soll dann der Redakteur einpfelgen können.

Wie krieg ich denn die ifEmpty Funktion in meinen Fall rein?

Grüße

frOsT

Julian.​Hofmann ·

In CONTENT-Objekt steht die stdWrap-Funktion zur Verfügung. D.h. es kann dort via stdWrap.iEmpty geprüft werden, ob bisher Inhalt im Objekt vorhanden ist. ifEmpty selbst stellt auch wieder stdWrap zur Verfügung, wodurch es möglich ist, ein beliebiges cObject zu platzieren (in diesem Fall dann ein IMAGE-Objekt).

Müsste etwa klappen mit

#
#... HAUPTBILD wie gehabt, Rest weg
#
HAUPTBILD.stdWrap.ifEmpty.cObject = IMAGE
HAUPTBILD.stdWrap.ifEmpty.cObject.file = fileadmin/beispiel.jpg
frOsT1337 ·

Hm hab ich gemacht, aber so wie ich das versthe heisst das: Wenn das Hauptbild leer ist dann nehme bild x.

Aber das hauptbild is ja nie leer. dadrin ist ja das globale headerbild.

es muss ja heissen. Wenn linker inhaltsbereich leer ist dann nehme Hauptbild.

Da sinn davon ist ja das der kunde über den linken inhaltsbereich seinen header auf seinen seiten selber wechseln kann.

Grüße 🙂

frOsT

Julian.​Hofmann ·

Richtig verstanden.

Dann bauen wir das ganze doch mal von der Logik her anders auf:

HEADERGRAFIK = CONTENT
HEADERGRAFIK {
    # Suchen Inhalt in der Linken Spalte
    table = tt_content
    select {
        where = colPos = 1
        orderBy = sorting
        languageField = sys_language_uid
    }
}
# ...und wenn der leer ist, dann nehmen wir ihn von einer Default-Seite
HEADERGRAFIK.stdWrap.ifEmpty.cObject = CONTENT
HEADERGRAFIK.stdWrap.ifEmpty.cObject {
    table = tt_content
    select {
        pidInList = 8
        where = uid=1
    }
}

Damit hast Du in HEADERGRAFIK immer die "richtige" Grafik.

Vielleicht ist in Deinem Fall auch die Verwendung von Content-Sliding eine bessere Wahl. Einfach mal googeln... z.B. http://www.oliver-thiele.de/cms-typo3/tutorials/content-slide.html

frOsT1337 ·

Hey Julian,

Cool, das rennt 😃

Ich danke dir. Man merkt halt immer wieder. Ich bin Designer 😉

Und das mit dem Contentslide schau ich mir mal an.

Danke nochmal für deine Hilfe

Grüße & schönes Wochenende

frOsT

fantasmo ·

Hallo,

ich habe auch eine Condition-Frage:

Ich habe bemerkt, dass meine Seite im IE wegen dem XML-Prolog fehlerhaft aussieht.
Im iNet hab ich dann diesen TS-Code gefunden und eingefügt:

config {
[browser = msie]
xmlprologue = none
[global]
}

Das funktioniert einwandfrei, alles sieht jetzt auch im IE richtig aus.

Allerdings dachte ich, der xml-prolog würde dann im Firefox wieder oben erscheinen. Er ist aber auch da weg. Warum?
Hat mein Code eventuell nen kleinen Fehler? Und was bedeutet das [global]... das hab ich halt einfach so mit von dieser Internetseite mit kopiert.

PS: DASS dieser xmlprologue dasteht ist schon wichtig, oder? Deshalb wollt ich halt auch lieber, dass er in Firefox wieder dasteht.

Julian.​Hofmann ·

Hallo.

Bitte für neue Probleme auch neue Threads öffnen. Denn nicht immer ist's die gleiche Ursache und die gleiche Lösung.

Wenn die Condition wirklich wie gepostet im TS steht, dann funktioniert sie ziemlich sicher nicht einwandfrei. Denn Conditions dürfen nicht innerhalb von {}-Blöcken verwendet werden.

Viele Grüße
Julian