if Anweisung mit TS...ich checks nicht [Gelöst]

  • caomhan caomhan
    Jedi-Ritter
    0 x
    133 Beiträge
    1 Hilfreiche Beiträge
    03. 02. 2010, 15:00

    Hallo liebe Kollegen,

    habe hier eine Seite in der ich checken will:
    Gibt es "links", "normal" und "rechts" Inhalt -> 3-spaltige Layout
    Gibt es "normal" und "rechts" Inhalt -> 2-spaltige Layout
    Gibt es nur "normal" Inhalt -> 1-spaltiges Layout

    Raffe die if-Anweisungen aber nich wirklich. Die if führt das was darunter steht aus wenn Anweisung erfüllt, oder? In dem Fall wenn True (3-spaltig) bzw. wenn True & False (2-spaltig).

    Aber es werden mir (nach 2 Stunden rumfriemlen nur mit den if-gedöns scheinbar willkürlich :) ) immer irgendwelche Layouts nicht oder zuviel angezeigt (Beim testen mit Inhalten in den entsprechenden Spalten).

    Hier der TS Code für den content:

    [TS]content = COA
    content {
    10 = COA
    10 {
    if {
    isTrue.numRows = styles.content.getLeft
    isTrue.numRows = styles.content.getRight
    }
    10 = TEMPLATE
    10 {
    template = FILE
    template.file = fileadmin/template/content/3_spaltig.html
    marks {
    content_1 = CONTENT
    content_1 {
    table = tt_content
    select.where = colPos = 1
    }

    content_2 = CONTENT
    content_2 {
    table = tt_content
    select.where = colPos = 0
    }

    content_3 = CONTENT
    content_3 {
    table = tt_content
    select.where = colPos = 2
    }
    }
    }
    }

    20 = COA
    20 {
    if {
    isFalse.numRows = styles.content.getLeft
    isTrue.numRows = styles.content.getRight
    }
    10 = TEMPLATE
    10 {
    template = FILE
    template.file = fileadmin/template/content/2_spaltig.html
    marks {
    content_1 = CONTENT
    content_1 {
    table = tt_content
    select.where = colPos = 0
    }

    content_2 = CONTENT
    content_2 {
    table = tt_content
    select.where = colPos = 2
    }
    }
    }
    }

    30 = COA
    30 {
    if {
    isFalse.numRows = styles.content.getRight
    isFalse.numRows = styles.content.getLeft
    }
    10 = TEMPLATE
    10.template = FILE
    10.template.file = fileadmin/template/content/1_spaltig.html
    10.marks {
    content_1 = CONTENT
    content_1 {
    table = tt_content
    select.where = colPos = 0
    }
    }
    }
    }[/TS]

    Vll. schaut ihr euch mal die if-Anweisungen an. Hab da jetzt ewig dran rumgebastelt und hin und her gemacht. Aber komme nicht weiter. Bei google stehen ebenfalls nur änhliche Code-Schnipsel aber keine richtige Erklärung für dumme wie mich :)

    Grüße,
    caom

    Edit:

    Bzw. was ich beim testen bemerke (ist ja auch klar) das gilt für die Inhalte der ganze Seite. Was mache ich denn, wenn ich auf derselben Seite oben drei spalten möchte, darunter eine spalte und darunter wieder zwei spalten?


  • 1
  • einpraegsam.net einpraegs...
    MacGyver
    0 x
    9340 Beiträge
    80 Hilfreiche Beiträge
    03. 02. 2010, 16:00

    1. 2x if.isTrue untereinander überschreibt sich selbst
    2. nicht = sondern < bei styles.content.getLeft (etc...)
    3. du musst if verschachteln, wenn du zwei if Anweisungen mit & verknüpfen willst

    in2code.de - Wir leben TYPO3
    - Möchtest du TYPO3 komplett verstehen? Eigene Erweiterungen erstellen? Bei uns gibt es auch Schulungen https://www.in2code.de/produkte/typo3-schulungen/
    - Die Arbeit mit TYPO3 macht dir Spaß? Du stehst auf Berge? Komm zu uns! https://www.in2code.de/agentur/karriere/

  • caomhan caomhan
    Jedi-Ritter
    0 x
    133 Beiträge
    1 Hilfreiche Beiträge
    04. 02. 2010, 12:47

    Alles klar, vielen Dank!

    Es funkt nun soweit.
    Aber wie erwartet habe ich dennoch keine möglichkeit auf einer Seite ein dreispaltiges und darunter z.B. ein zweispaltiges Layout zu erstellen.

    Wie kann ich denn sowas anstellen?

    Dank und Gruß,
    caom

  • topshopper topshoppe...
    Sternenflotten-Admiral
    0 x
    181 Beiträge
    0 Hilfreiche Beiträge
    04. 02. 2010, 12:54

    Hallo,

    leider benutzt Du kein TemplaVoila. Damit könntest Du relativ einfach die Spaltigkeit (1-, 2-, 3-, 4- usw. Spalten) alleine durch FlexibleContentElemtns (FCE) und CSS sehr elegant lösen! Und damit tolle Layouts produzieren.

    Wenn Du umsteigst, sag Bescheid, dann kann ich Dir helfen.

  • caomhan caomhan
    Jedi-Ritter
    0 x
    133 Beiträge
    1 Hilfreiche Beiträge
    04. 02. 2010, 12:58

    Also mit TemplaVoila ist das möglich.
    Das kommt als übernächstes Kapitel in meinem Buch :)

    Aber da ich das in jedem Fall möchte (unterschiedliche Layouts auf einer Seite) werde ich direkt mal die entsprechenden Seiten aufschlagen und mich ran setzen.

    Hast du zufällig Skype, falls das Buch (oder eben ich) versagt =)?
    Ansonsten würde ich mich wieder hier melden.

    Edit:
    Also es hat soweit alles gut funktioniert. Alles schön "gemappt". Bis auf einen <div>-Bereich (content_picture) da sagt er mir nach dem Mappen "! No Content found". Bei allen anderen ist ein Häkchen und es funktioniert.

    Woran wird das liegen?

    Edit #2:
    Ahh, ich doof. content_picture lag in dem bereits gemappten "content".
    Flott geändert -> funkt.

    So, da nu alles soweit wie vorher läuft schau ich mir das mit den Inhalten mal an.

    Und da alle guten Dinge 3 sind:
    Edit #3:
    Also für mich scheint TemplaVoila jetzt keine weitere Layoutmöglichkeit in diesen Bereichen zu erbringen. Sind diese "FCEs" noch zusätzliche erweiterungen oder sind die in TV schon enthalten?

    Verliere gerade den Durch- und Überblick.

    Übrigens gefällt mir TemplaVoila soweit ganz gut :)

  • topshopper topshoppe...
    Sternenflotten-Admiral
    0 x
    181 Beiträge
    0 Hilfreiche Beiträge
    04. 02. 2010, 16:03

    Hi,

    Du benutzt die FCEs für die Spaltigkeit. D.h. Du hast für 2-Spalten ein FCE und für 3-Spalten ein FC. Ein 4-spaltiges Layout kannst Du durch Verschachtelung von 2 zwei-spaltigen FCEs erreichen.

    Beispiel 2 Spalten.
    HTML-Template

    [HTML]<div class="2column">
    <div class="leftColumn">
    </div>
    <div class="rightColumn">
    </div>
    <div class="clearer">
    </div>
    </div>

    [/HTML]

    Im CSS schreibst Du zB.:
    [HTML]div.2column { width=800px; float:left;}
    div.leftColumn {width=400px; float:left;}
    div.rightColumn {width=400px; float:Right;}
    div.clearer {clear: both;}
    [/HTML]

    In TV mappst Du dann die leeren DIVs und erhälst somit ein Layoutgerüst für ein 2-Spalten-Layout (ein umschließendes verpackendes DIV 2column und die beiden Spalten leftColumns, rightColumn). Und speicherst es in TV als FCE (template type: content element).
    Du fügst dann die FCEs als Inhaltselemnte ein, und den eigentlichen Content dann sozusagen in diese Hilfs-DIVs. Evtl. muss Du das CSS anpassen (em statt px bei relativen Angaben oder Ränder zwischen den Spalten hinzufügen).

    Ich hoffe, ich konnte dir kurz&knapp die Idee vermitteln. Falls Du noch Fragen hast, melde Dich;-)

  • caomhan caomhan
    Jedi-Ritter
    0 x
    133 Beiträge
    1 Hilfreiche Beiträge
    04. 02. 2010, 16:26

    Ja, danke!

    Ich hatte diese FCE einfach nicht gefunden.
    Hab's jetzt aber endlich. Geile sache.

    Kenne mich übrigens sehr gut mit CSS aus :)
    Aber danke für die Code Schnipsel. Wobei es "width:" heißt, nicht "width=".

    Wie ist das denn, wenn ich jetzt noch den Inhalt der ersten Box anders aussehen lassen möchte als den zweiten?
    Einfach per CSS?!

    .leftColumn h1 { ... ?

    Oder kann ich jetzt dem Inhalt den ich in die linke Spalte packe sagen: Nimm dieses Layout und der rechten Spalte nimm das andere Layout? Wäre natürlich ziemlich geil :) Möchte nämlich unterschiedlich Formatierte "Boxen" in den Spalten haben.

    Edit:
    Ein Box-Style soll z.B. so aussehen:
    http://webshare.kleaserarts.com/downloads/kleaserarts/1.png

    Ein anderer Box-Style z.B. so:
    http://webshare.kleaserarts.com/downloads/kleaserarts/2.png

    Wie kann ich das umsetzen?

    Speziell Box-Style #1?
    Wie bekomme ich Headline, Einleitungstext und Bodytext so untereinander - mit welchem Inhaltselement?

    Box-Style #2 wäre mir klar.

    Edit:
    Also ich habe nun das Ergebnis genau so wie ich es mir vorgestellt habe.
    Wahrscheinlich eine sehr umständliche vorgehensweise. Habe mir für alle möglichen Objekte neue FCEs angelegt und diese eben mit unterschiedlichen wrap-divs umschlossen, sodass ich die verschiedenen (gleichen) Inhalte unterschiedlich Formatieren kann. Ist das so gang und gebe?

    Das Ergebnis kann sich hier angeschaut werden:
    http://katypo.kleaserarts.com

  • 1