TYPO3 Fluid - Snippets: Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „Unix Timestamp for Humans <f:format.date = format="d.m.Y - H:i:s">@1362784580</f:format.date> Corp Text Text auf eine gewisse Länge abschneiden append wird dem …“)
 
Zeile 1: Zeile 1:
Unix Timestamp for Humans
+
Quellen:
<f:format.date = format="d.m.Y - H:i:s">@1362784580</f:format.date>
 
  
Corp Text
+
http://itype3.blogspot.de/2013/03/fluid-template.html
Text auf eine gewisse Länge abschneiden
+
 
 +
 
 +
'''Unix Timestamp for Humans'''
 +
<f:format.date = format="d.m.Y - H:i:s">@1362784580</f:format.date>
 +
 
 +
'''Text auf eine gewisse Länge abschneiden'''
 
append wird dem abgekürztem Text am Ende eingefügt, wie z.B. ein Leerzeichen und drei Punkte um zu symbolisieren, dass der Text abgekürzt wurde.
 
append wird dem abgekürztem Text am Ende eingefügt, wie z.B. ein Leerzeichen und drei Punkte um zu symbolisieren, dass der Text abgekürzt wurde.
<f:format.corp maxCharacters="50" append="&nbsp; ...">Hier folgt der TEXT</f:format.corp>
+
<f:format.corp maxCharacters="50" append="&nbsp; ...">Hier folgt der TEXT</f:format.corp>
.......
+
 
Texte direkt aus dem TypoScript Objekt holen
+
'''Texte direkt aus dem TypoScript Objekt holen'''
 
TypoScript
 
TypoScript
inhaltSpalteNormal < styles.content.get
+
inhaltSpalteNormal < styles.content.get
 
 
 
HTML
 
HTML
<f:cObject typoscriptObjectPath="inhaltSpalteNormal" />
+
<f:cObject typoscriptObjectPath="inhaltSpalteNormal" />
  
 
Texte direkt aus dem TypoScript Objekt holen kombiniert
 
Texte direkt aus dem TypoScript Objekt holen kombiniert
 
TypoScript
 
TypoScript
 +
<pre>
 
meinText = TEXT
 
meinText = TEXT
 
meinText {
 
meinText {
Zeile 23: Zeile 27:
 
   current = 1
 
   current = 1
 
}
 
}
 
+
</pre>
  
 
Template (View-Helper)
 
Template (View-Helper)
 
Hier gibt es zwei Varianten. Die eine per data-Attribut den Text übergeben und die Andere
 
Hier gibt es zwei Varianten. Die eine per data-Attribut den Text übergeben und die Andere
 
zwischen den f:cObject-Tags.
 
zwischen den f:cObject-Tags.
<f:cObject typoscriptObjectPath="meinText" data="Das ist der Text aus dem Template"/>
+
<f:cObject typoscriptObjectPath="meinText" data="Das ist der Text aus dem Template"/>
  
 
oder
 
oder
 
+
<pre>
 
<f:cObject typoscriptObjectPath="meinText">
 
<f:cObject typoscriptObjectPath="meinText">
 
   Das ist der Text aus dem Template
 
   Das ist der Text aus dem Template
 
</f:cObject>
 
</f:cObject>
 
+
</pre>
  
 
Querverweise auf interne Seiten, externe Adressen, E-Mail-Adressen oder Anchor
 
Querverweise auf interne Seiten, externe Adressen, E-Mail-Adressen oder Anchor
Zeile 41: Zeile 45:
 
Springen zu einem Anchor-Punkt
 
Springen zu einem Anchor-Punkt
 
Section entspricht der ID eines Divs
 
Section entspricht der ID eines Divs
<f:link.page section="frame">Top</f:link.page>
+
<f:link.page section="frame">Top</f:link.page>
  
 
Link auf eine interne Seite
 
Link auf eine interne Seite
<f:link.page pageUid="3">Kontakt</f:link.page>
+
<f:link.page pageUid="3">Kontakt</f:link.page>
  
 
...wir können auch Parameter übergeben:
 
...wir können auch Parameter übergeben:
<f:link.page pageUid="3"  additionalParams="{name: 'wert'}">Kontakt</f:link.page>
+
<f:link.page pageUid="3"  additionalParams="{name: 'wert'}">Kontakt</f:link.page>
  
 
Link auf eine externe Adresse
 
Link auf eine externe Adresse
<f:link.external url="http://www.typo3.org" target="_blank">Link zy TYPO3</f:link.external>
+
<f:link.external url="http://www.typo3.org" target="_blank">Link zy TYPO3</f:link.external>
  
 
Link auf eine E-Mail-Adresse
 
Link auf eine E-Mail-Adresse
<f:link.email email="adresse@domain.com" />
+
<f:link.email email="adresse@domain.com" />
  
  
Zeile 59: Zeile 63:
  
 
TypoScript
 
TypoScript
 +
<pre>
 
partialAuswahl = TEXT
 
partialAuswahl = TEXT
 
partialAuswahl.value = 1
 
partialAuswahl.value = 1
Zeile 65: Zeile 70:
 
fluidTemplate = FLUIDTEMPLATE
 
fluidTemplate = FLUIDTEMPLATE
 
fluidTemplate {
 
fluidTemplate {
 
 
   ...
 
   ...
 
 
   variables {
 
   variables {
 
     partial < partialAuswahl
 
     partial < partialAuswahl
 
   }
 
   }
 
}
 
}
 
+
</pre>
 
Template (view-helper)
 
Template (view-helper)
 
Fluid kann im Moment nur nummerische Werte überprüfen, deswegen partialAuswahl.value = 1 und {partial} == 1
 
Fluid kann im Moment nur nummerische Werte überprüfen, deswegen partialAuswahl.value = 1 und {partial} == 1
  
 
+
<pre>
 
<f:if condition="{partial} == 1">
 
<f:if condition="{partial} == 1">
 
     <f:then>
 
     <f:then>
Zeile 86: Zeile 89:
 
     </f:else>
 
     </f:else>
 
</f:if>
 
</f:if>
 
+
</pre>
  
 
Comment-View-Helper
 
Comment-View-Helper
 
Man kann im Fluid-Template Kommentare hinterlassen, ohne dass diese im Frontend ausgegeben werden.
 
Man kann im Fluid-Template Kommentare hinterlassen, ohne dass diese im Frontend ausgegeben werden.
 
+
<pre>
 
<f:comment>
 
<f:comment>
 
     Das ist ein Comment für den Entwickler, der im Quelltext
 
     Das ist ein Comment für den Entwickler, der im Quelltext
 
     im Gegensatz zum HTML-Comment nicht zu sehen ist
 
     im Gegensatz zum HTML-Comment nicht zu sehen ist
 
</f:comment>
 
</f:comment>
 
+
</pre>
  
 
Inline Notation
 
Inline Notation
  
 
TypoScript
 
TypoScript
 
+
<pre>
 
anredeHerr = TEXT
 
anredeHerr = TEXT
 
anredeHerr.value = 1
 
anredeHerr.value = 1
Zeile 112: Zeile 115:
 
   }
 
   }
 
}
 
}
 
+
</pre>
 
Template (View-Helper)
 
Template (View-Helper)
 
+
<pre>
 
<p>
 
<p>
 
   Sehr geehrte{f:if(condition: '{anredeHerr}', then: 'r Herr', else: '&nbsp;Frau')} XY, <br />
 
   Sehr geehrte{f:if(condition: '{anredeHerr}', then: 'r Herr', else: '&nbsp;Frau')} XY, <br />
 
   wir m&ouml;chten Ihnen mitteilen, dass...
 
   wir m&ouml;chten Ihnen mitteilen, dass...
 
</p>
 
</p>
 
+
</pre>
 
Doctype auf HTML 5 umstellen
 
Doctype auf HTML 5 umstellen
 
+
<pre>
 
page = PAGE
 
page = PAGE
 
page {
 
page {
Zeile 129: Zeile 132:
 
   }
 
   }
 
}
 
}
 
+
</pre>
  
 
TEXT Object
 
TEXT Object
 
 
  
 
Naviagtion 2. Stufe direkt anzeigen
 
Naviagtion 2. Stufe direkt anzeigen
 
+
<pre>
 
# Navigation als Content Object Array (COA)
 
# Navigation als Content Object Array (COA)
 
nav = COA
 
nav = COA
Zeile 198: Zeile 199:
 
    
 
    
 
}
 
}
 
+
</pre>
  
  
Zeile 208: Zeile 209:
 
Das hat eine Auswirkung dass im Ersten Link der zweiten Stufe ein A vor dem Link angehängt wird
 
Das hat eine Auswirkung dass im Ersten Link der zweiten Stufe ein A vor dem Link angehängt wird
 
und jedem weiteren ein B
 
und jedem weiteren ein B
 
+
<pre>
 
     # Untermenü 2. Stufe
 
     # Untermenü 2. Stufe
 
     2 = TMENU
 
     2 = TMENU
Zeile 220: Zeile 221:
 
     }
 
     }
 
   }
 
   }
 
+
</pre>
 
Navigation
 
Navigation
 
So würde dann die Navigation im Frontend aussehen
 
So würde dann die Navigation im Frontend aussehen
 
+
<pre>
 
Home
 
Home
 
Über uns
 
Über uns
Zeile 230: Zeile 231:
 
   B Seite 2
 
   B Seite 2
 
   B Seite 3
 
   B Seite 3
 
+
</pre>
  
 
TypoScript
 
TypoScript
Zeile 236: Zeile 237:
 
Hier noch ein Beispiel wie man nur die ersten zwei Links berücksichtigen kann.
 
Hier noch ein Beispiel wie man nur die ersten zwei Links berücksichtigen kann.
 
Nach dem 2. LI-Tag folgen nochmals zwei Pipe Zeichen, welche den 3 und die folgende Links anspricht
 
Nach dem 2. LI-Tag folgen nochmals zwei Pipe Zeichen, welche den 3 und die folgende Links anspricht
diesese werden nicht formatiert nur der 1. und 2.
+
diese werden nicht formatiert nur der 1. und 2.
 
 
  
 +
<pre>
 
     # Untermenü 2. Stufe
 
     # Untermenü 2. Stufe
 
     2 = TMENU
 
     2 = TMENU
Zeile 250: Zeile 251:
 
     }
 
     }
 
   }
 
   }
 
+
</pre>
  
 
Navigation
 
Navigation
 
Das sind nun die Auswirkungen der Navigation im Frontend
 
Das sind nun die Auswirkungen der Navigation im Frontend
  
 
+
<pre>
 
Home
 
Home
 
Über uns
 
Über uns
Zeile 262: Zeile 263:
 
   B Seite 2
 
   B Seite 2
 
   Seite 3
 
   Seite 3
 
+
</pre>
 
Weitere Informationen sind unter der Typo3 Referenz nachlesbar
 
Weitere Informationen sind unter der Typo3 Referenz nachlesbar
 
http://wiki.typo3.org/De:TSref/optionSplit
 
http://wiki.typo3.org/De:TSref/optionSplit
Zeile 274: Zeile 275:
 
Oberhalb der des Templates > setup klikt man auf Kostanten, darin definiert man:
 
Oberhalb der des Templates > setup klikt man auf Kostanten, darin definiert man:
  
logoDatei = logo.png
+
logoDatei = logo.png
  
  
 
Im Template (setup) greift man wie folgt auf die Konstanten zu
 
Im Template (setup) greift man wie folgt auf die Konstanten zu
  
file = fileadmin/template_fluid/public/img/{$logoDatei}
+
file = fileadmin/template_fluid/public/img/{$logoDatei}
  
  

Version vom 23. Januar 2014, 17:00 Uhr

Quellen:

http://itype3.blogspot.de/2013/03/fluid-template.html


Unix Timestamp for Humans

<f:format.date = format="d.m.Y - H:i:s">@1362784580</f:format.date>

Text auf eine gewisse Länge abschneiden append wird dem abgekürztem Text am Ende eingefügt, wie z.B. ein Leerzeichen und drei Punkte um zu symbolisieren, dass der Text abgekürzt wurde.

<f:format.corp maxCharacters="50" append="  ...">Hier folgt der TEXT</f:format.corp>

Texte direkt aus dem TypoScript Objekt holen TypoScript

inhaltSpalteNormal < styles.content.get

HTML

<f:cObject typoscriptObjectPath="inhaltSpalteNormal" />

Texte direkt aus dem TypoScript Objekt holen kombiniert TypoScript

meinText = TEXT
meinText {
  wrap = <p>Hier steht der Text aus dem Template: <b>"|"</b></p>
  # Ohne diese Einstellung würde die | nicht
  # mit dem Text aus dem Template ersezt werden
  current = 1
}

Template (View-Helper) Hier gibt es zwei Varianten. Die eine per data-Attribut den Text übergeben und die Andere zwischen den f:cObject-Tags.

<f:cObject typoscriptObjectPath="meinText" data="Das ist der Text aus dem Template"/>

oder

<f:cObject typoscriptObjectPath="meinText">
  Das ist der Text aus dem Template
</f:cObject>

Querverweise auf interne Seiten, externe Adressen, E-Mail-Adressen oder Anchor

Springen zu einem Anchor-Punkt Section entspricht der ID eines Divs

<f:link.page section="frame">Top</f:link.page>

Link auf eine interne Seite

<f:link.page pageUid="3">Kontakt</f:link.page>

...wir können auch Parameter übergeben:

<f:link.page pageUid="3"  additionalParams="{name: 'wert'}">Kontakt</f:link.page>

Link auf eine externe Adresse

<f:link.external url="http://www.typo3.org" target="_blank">Link zy TYPO3</f:link.external>

Link auf eine E-Mail-Adresse

<f:link.email email="adresse@domain.com" />


Conditions

TypoScript

 
partialAuswahl = TEXT
partialAuswahl.value = 1

# FLUID Template definieren
fluidTemplate = FLUIDTEMPLATE
fluidTemplate {
  ...
  variables {
    partial < partialAuswahl
  }
}

Template (view-helper) Fluid kann im Moment nur nummerische Werte überprüfen, deswegen partialAuswahl.value = 1 und {partial} == 1

<f:if condition="{partial} == 1">
    <f:then>
      Partial {partial} ausgegeben.
    </f:then>
  
    <f:else>
        Keine Partial-Angabe gefunden
    </f:else>
</f:if>

Comment-View-Helper Man kann im Fluid-Template Kommentare hinterlassen, ohne dass diese im Frontend ausgegeben werden.

<f:comment>
    Das ist ein Comment für den Entwickler, der im Quelltext
    im Gegensatz zum HTML-Comment nicht zu sehen ist
</f:comment>

Inline Notation

TypoScript

anredeHerr = TEXT
anredeHerr.value = 1

# FLUID Template definieren
fluidTemplate = FLUIDTEMPLATE
fluidTemplate {
  ...
  variables {
    anredeHerr < anredeHerr
  }
}

Template (View-Helper)

<p>
  Sehr geehrte{f:if(condition: '{anredeHerr}', then: 'r Herr', else: ' Frau')} XY, <br />
  wir möchten Ihnen mitteilen, dass...
</p>

Doctype auf HTML 5 umstellen

page = PAGE
page {
  config{
    # HTML 5
    doctype = <!DOCTYPE html>
  }
}

TEXT Object

Naviagtion 2. Stufe direkt anzeigen

# Navigation als Content Object Array (COA)
nav = COA
nav {
  
  wrap = <ul>|</ul>
  
  10 = TEXT
  10 {
    value = Home
    stdWrap.typolink.parameter = 1
    wrap = <li>|</li> 
  }
  
  20 = HMENU
  20 {    
    1 = TMENU
    # Hauptmenü 1. Stufe
    1 {
      NO = 1
      # stdwrap wendet die Eigenschaften auf den Text and
      # stdWrap2 wendet die Eigenschaften auf den kompletten a-Tag an
      NO.stdWrap2.wrap = <li>|</li>
      CUR = 1
      CUR < .NO
      CUR.ATagParams = class="active"
      ACT = 1
      ACT < .CUR
    }
    
    # Untermenü 2. Stufe
    /*
    2 = TMENU
    # Alle Eigenschaften der Normal und Current Zustände übernommen
    2 < .1
    2 {
      NO.stdWrap2.wrap = <li>    |</li>
      ACT < .NO
      CUR.ATagParams = class="active"
      CUR < .ACT
    }
    */
  }
  # Wenn die 2. Stufe direkt angezeigt werden soll
  # ohne dass man zuerst auf den parent (1. Stufe) klikt
  
  30 = HMENU
  30 {
    special = directory
    value = 26
    1 = TMENU
    1 {
      NO = 1
      NO.stdWrap2.wrap = <li>    |</li>
      ACT < .NO
      ACT.ATagParams = class="act"
      CUR < .ACT
    }
  }
  
  
}


OPTION SPLIT

Im folgenden sehen wir mit dem Option Split jedem Link noch einen Parameter übergeben

Dem ersten hängen wir den Buchstaben A vorne , dann folgen zwei Pipe zeichen || gefolgt von noch einem

  • Tag welcher mit eine Kopie des ersten ist, jedoch mit einem B anfängt. Das hat eine Auswirkung dass im Ersten Link der zweiten Stufe ein A vor dem Link angehängt wird und jedem weiteren ein B
        # Untermenü 2. Stufe
        2 = TMENU
        # Alle Eigenschaften der Normal und Current Zustände übernommen
        2 < .1
        2 {
          NO.stdWrap2.wrap = <li>A    |</li> || <li>B    </li>
          ACT < .NO
          CUR.ATagParams = class="active"
          CUR < .ACT
        }
      }
    

    Navigation So würde dann die Navigation im Frontend aussehen

    Home
    Über uns
    Kontakt
      A Seite 1
      B Seite 2
      B Seite 3
    

    TypoScript

    Hier noch ein Beispiel wie man nur die ersten zwei Links berücksichtigen kann. Nach dem 2. LI-Tag folgen nochmals zwei Pipe Zeichen, welche den 3 und die folgende Links anspricht diese werden nicht formatiert nur der 1. und 2.

        # Untermenü 2. Stufe
        2 = TMENU
        # Alle Eigenschaften der Normal und Current Zustände übernommen
        2 < .1
        2 {
          NO.stdWrap2.wrap = <li>A    |</li> || <li>B    </li> ||
          ACT < .NO
          CUR.ATagParams = class="active"
          CUR < .ACT
        }
      }
    

    Navigation Das sind nun die Auswirkungen der Navigation im Frontend

    Home
    Über uns
    Kontakt
      A Seite 1
      B Seite 2
      Seite 3
    

    Weitere Informationen sind unter der Typo3 Referenz nachlesbar http://wiki.typo3.org/De:TSref/optionSplit


    Konstanten

    Für wiederkehrende Bezeichner wie Grafiken oder Textpassagen verwendet man im TypoScript am besten Konstanten

    Oberhalb der des Templates > setup klikt man auf Kostanten, darin definiert man:

    logoDatei = logo.png
    


    Im Template (setup) greift man wie folgt auf die Konstanten zu

    file = fileadmin/template_fluid/public/img/{$logoDatei}
    


    TypoScript Refferenz

    http://www.tsref.de/ http://typo3.org/documentation/document-library/core-documentation/doc_core_tsref/current/view/