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 …“)
 
(Der Seiteninhalt wurde durch einen anderen Text ersetzt: „Siehe: Fluid - Snippets“)
 
(2 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
−
Unix Timestamp for Humans
+
Siehe: [[Fluid - Snippets]]
−
<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 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>
 
−
.......
 
−
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:&nbsp;<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: '&nbsp;Frau')} XY, <br />
 
−
  wir m&ouml;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>&nbsp;&nbsp;&nbsp;&nbsp;|</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>&nbsp;&nbsp;&nbsp;&nbsp;|</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 <li> 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&nbsp;&nbsp;&nbsp;&nbsp;|</li> || <li>B&nbsp;&nbsp;&nbsp;&nbsp;</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
 
−
diesese 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&nbsp;&nbsp;&nbsp;&nbsp;|</li> || <li>B&nbsp;&nbsp;&nbsp;&nbsp;</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/
 

Aktuelle Version vom 11. Dezember 2014, 10:30 Uhr