TYPO3 - Gridelements: Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
 
(21 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
== Links ==
 
== Links ==
https://www.youtube.com/watch?v=cuEKyaOtAEY
+
* https://www.youtube.com/watch?v=cuEKyaOtAEY
 +
* http://www.marmalade.de/magazin/2013/09/typo3-fluid-und-grid-elements-gemeinsam-verwenden/
 +
* https://networkteam.com/blog/gridelements-professionell-nutzen.html
 +
 
 +
== Downloads ==
 +
[[Datei:Typo3-bootstrap3-gridelements.zip|mini]]
  
 
== Einführung ==
 
== Einführung ==
Zeile 8: Zeile 13:
 
* '''Extension''' gridelements installieren
 
* '''Extension''' gridelements installieren
 
* '''Ordner''' für gridelements anlegen
 
* '''Ordner''' für gridelements anlegen
* '''Grids erstellen'''
+
* '''Grid Layout Raster''' erstellen
* Rendering der Grids definieren
+
* '''Rendering der Grids''' definieren (TypoScript)
 +
* '''Template''' anpassen
 +
 
 +
=== Raster erstellen ===
 +
Mit dem Assistenten. Das sieht nachher z.B. so aus:
 +
<syntaxhighlight lang="typoscript">
 +
backend_layout {
 +
  colCount = 2
 +
  rowCount = 1
 +
    rows {
 +
      1 {
 +
        columns {
 +
          1 {
 +
            name = Links
 +
            colPos = 10
 +
          }
 +
          2 {
 +
            name = Rechts
 +
            colPos = 20
 +
          }
 +
        }
 +
      }
 +
  }
 +
}
 +
 
 +
</syntaxhighlight>
 +
Achtung: Aufpassen die Nummern der Spalten (colPos) teilt sich Gridelements mit den Standardspalten (0 bis 4) aber auch den Backendlayouts.
  
 
=== Grid Rendering definieren ===
 
=== Grid Rendering definieren ===
 
<syntaxhighlight lang="typoscript">
 
<syntaxhighlight lang="typoscript">
 
tt_content.gridelements_pi1.20.10.setup{
 
tt_content.gridelements_pi1.20.10.setup{
   # ID des ge
+
   # ID des gridelement
   1 > lib.gridelements.defaultGridSetup
+
   1 < lib.gridelements.defaultGridSetup
 +
  # oder mit dem Alias Namen: MY_ALIAS < lib.gridelements.defaultGridSetup
 
   1{
 
   1{
 
     columns{
 
     columns{
Zeile 28: Zeile 60:
 
   }
 
   }
 
}
 
}
 +
 +
# if you want to provide your own templating, just insert a cObject here
 +
# this will prevent the collected content from being rendered directly
 +
# i.e. cObject = TEMPLATE or cObject = FLUIDTEMPLATE will be available from the core
 +
# the content will be available via fieldnames like
 +
# tx_gridelements_view_columns (an array containing each column)
 +
# or tx_gridelements_view_children (an array containing each child)
 +
# tx_gridelements_view_column_123 (123 is the number of the column)
 +
# or tx_gridelements_view_child_123 (123 is the UID of the child)
 
</syntaxhighlight>
 
</syntaxhighlight>
  
== Gridelements und Fluid Styled Content ==
+
=== Template anpassen ===
In TYPO3 v7 wird das alte css-styled-content durch fluid-styled-content ersetzt. Damit kann man das Rendering der Inhalte in Fluid-Templates überschreiben anstatt TypoScript zu benutzen. Siehe auch: [[http://wiki.zone30.info/wikizone/index.php/TYPO3_-_fluid_styled_content|TYPO3_-_fluid_styled_content]]. Das eröffnet neue Möglichkeiten.
+
==== ohne Fluid ====
 +
Hier reicht die Standardzuordnung der Spalten im TypoScript:
 +
<syntaxhighlight lang="typoscript">
  
=== Beispiel 1: Bootstrap mit Gridelements und Fluid Styled Content ===
+
</syntaxhighlight>
In diesem Beispiel möchten wir über das Layout-Feld im Backend Bootstrap Klassen setzen und die Fluid Styled Content Templates so überscheiben, daß sie dementsprechend gesetzt werden.
 
  
==== 1. Layoutfeld mit Bootstrap Klassen ausstatten ====
+
== Gridelements mit Fluid ==
 
+
Hier muß man folgendes anpassen:
TSconfig
+
* Im TypoScript des GE kann man es einem Fluidtemplate zuweisen
 +
* Im Fluidtemplate bindet man die Inhalte über den data Viewhelper ein.
 +
=== Gridrendering ===
 
<syntaxhighlight lang="typoscript">
 
<syntaxhighlight lang="typoscript">
TCEFORM.tt_content {
+
# Fluid-Template zuweisen
   layout {
+
tt_content.gridelements_pi1.20.10.setup {
    altLabels {
+
   # 1 ist die ID des entsprechenden Gridelements
      1 = 1 Spalte
+
  1 < lib.gridelements.defaultGridSetup
      2 = 2 Spalten
+
  1 {
      3 = 3 Spalten
+
    cObject = FLUIDTEMPLATE
     }
+
     cObject {
    addItems{
+
       file = fileadmin/tmpl/gridelements/2col_1-1.html
       4 = 4 Spalten
 
      5 = 5 Spalten
 
      6 = 6 Spalten
 
      7 = 7 Spalten
 
      8 = 8 Spalten
 
      9 = 9 Spalten
 
      10 = 10 Spalten
 
      11 = 11 Spalten
 
      12 = 12 Spalten
 
 
     }
 
     }
 
   }
 
   }
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
==== 2. Templates aus Fluid Styled Content bearbeiten ====
+
 
Um die Ausgabe von FSC zu verändern kopiert man die Originaldateien, ändert die Pfade zu den Templates in den Constants und ändert diese dann.
+
=== Fluid Template ===
* Kopieren aus typo3/sysext/fluid_styled_content
+
<syntaxhighlight lang="html5">
* an neuen Ort z.B. in einer Distribution oder in den fileadmin ordner
+
<div class="row">
* TypoScript Konstanten überschreiben, wenn nicht alle Dateien kopiert wurden arbeitet TYPO3 mit den alten Dateien als Fallback
+
  <div class="col-md-6 col-xs-12">
<syntaxhighlight lang="typoscript">
+
    <f:format.raw>
# Fluid Styled Content Templates neu zuweisen
+
      {data.tx_gridelements_view_column_10->f:format.raw()}
styles.templates {
+
    </f:format.raw>
templateRootPath = {$resourceDir}/FluidStyledContent/Templates
+
  </div>
partialRootPath = {$resourceDir}/FluidStyledContent/Partials
+
  <div class="col-md-6 col-xs-12">
layoutRootPath = {$resourceDir}/FluidStyledContent/Layouts
+
    <f:format.raw>
}
+
      {data.tx_gridelements_view_column_20->f:format.raw()}
 +
    </f:format.raw>
 +
  </div>
 +
</div>
 
</syntaxhighlight>
 
</syntaxhighlight>
* Templates anpassen
+
 
 +
== Gridelements und Fluid Styled Content ==
 +
In TYPO3 v7 wird das alte css-styled-content durch fluid-styled-content ersetzt. Damit kann man das Rendering der Inhalte in Fluid-Templates überschreiben anstatt TypoScript zu benutzen. Siehe auch: [[http://wiki.zone30.info/wikizone/index.php/TYPO3_-_fluid_styled_content|TYPO3_-_fluid_styled_content]]. Das eröffnet neue Möglichkeiten.
 +
=== Beispiel: Gridelements und Bootstrap ===
 +
Siehe auch: http://wiki.zone30.info/wikizone/index.php/TYPO3_-_fluid_styled_content#Beispiel:_Layoutfeld_mit_Bootstrap_Klassen_f.C3.BCr_Fluid_Styled_Content für den Einsatz von Bootstrap ohne Gridelements nur mit Basis TYPO3.
 +
 
 +
Gridelements bieten sich für Gridbasierte CSS-Frameworks an, da die Grundidee der Spalten ähnlich ist. Mit Gridelements kann man auf dem vorhandenen Raster verschiedene Spaltensetups erzeugen.
 +
 
 +
* 1. Grids erstellen.
 +
== Überschriften der Content Elemente in Gridelements ==
 +
Im TypoScript
 +
tt_content.gridelements_pi1.10 =< lib.stdheader
 +
Im Fluid Template (mehr Kontrolle):
 +
<f:cObject data=“{data}“ typoscriptObjectPath=“lib.stdheader“/>

Aktuelle Version vom 26. Juli 2016, 05:30 Uhr

Links[Bearbeiten]

Downloads[Bearbeiten]

Datei:Typo3-bootstrap3-gridelements.zip

Einführung[Bearbeiten]

Ähnlich wie im Backend Layout Editor werden Raster definiert, die man dann einsetzen kann. Das Rendering wird über TypoScript definiert.

Quickstart[Bearbeiten]

  • Extension gridelements installieren
  • Ordner für gridelements anlegen
  • Grid Layout Raster erstellen
  • Rendering der Grids definieren (TypoScript)
  • Template anpassen

Raster erstellen[Bearbeiten]

Mit dem Assistenten. Das sieht nachher z.B. so aus:

backend_layout {
  colCount = 2
  rowCount = 1
    rows {
      1 {
        columns {
          1 {
            name = Links
            colPos = 10
          }
          2 {
            name = Rechts
            colPos = 20
          }
        }
      }
   }
}

Achtung: Aufpassen die Nummern der Spalten (colPos) teilt sich Gridelements mit den Standardspalten (0 bis 4) aber auch den Backendlayouts.

Grid Rendering definieren[Bearbeiten]

tt_content.gridelements_pi1.20.10.setup{
  # ID des gridelement
  1 < lib.gridelements.defaultGridSetup
  # oder mit dem Alias Namen: MY_ALIAS < lib.gridelements.defaultGridSetup
  1{
    columns{
      # colPos ID
      10 < .default
      10.wrap = <div class="s12 m8">|</div>
      # colPos ID
      20 < .default
      20.wrap = <div class="s12 m4">|</div>
    }
    wrap = <div class="row">|</div>
  }
}

# if you want to provide your own templating, just insert a cObject here
# this will prevent the collected content from being rendered directly
# i.e. cObject = TEMPLATE or cObject = FLUIDTEMPLATE will be available from the core
# the content will be available via fieldnames like
# tx_gridelements_view_columns (an array containing each column)
# or tx_gridelements_view_children (an array containing each child)
# tx_gridelements_view_column_123 (123 is the number of the column)
# or tx_gridelements_view_child_123 (123 is the UID of the child)

Template anpassen[Bearbeiten]

ohne Fluid[Bearbeiten]

Hier reicht die Standardzuordnung der Spalten im TypoScript:

Gridelements mit Fluid[Bearbeiten]

Hier muß man folgendes anpassen:

  • Im TypoScript des GE kann man es einem Fluidtemplate zuweisen
  • Im Fluidtemplate bindet man die Inhalte über den data Viewhelper ein.

Gridrendering[Bearbeiten]

# Fluid-Template zuweisen
tt_content.gridelements_pi1.20.10.setup {
  # 1 ist die ID des entsprechenden Gridelements
  1 < lib.gridelements.defaultGridSetup
  1 {
    cObject = FLUIDTEMPLATE
    cObject {
      file = fileadmin/tmpl/gridelements/2col_1-1.html
    }
  }
}

Fluid Template[Bearbeiten]

<div class="row">
  <div class="col-md-6 col-xs-12">
    <f:format.raw>
      {data.tx_gridelements_view_column_10->f:format.raw()}
    </f:format.raw>
  </div>
  <div class="col-md-6 col-xs-12">
    <f:format.raw>
      {data.tx_gridelements_view_column_20->f:format.raw()}
    </f:format.raw>
  </div>
</div>

Gridelements und Fluid Styled Content[Bearbeiten]

In TYPO3 v7 wird das alte css-styled-content durch fluid-styled-content ersetzt. Damit kann man das Rendering der Inhalte in Fluid-Templates überschreiben anstatt TypoScript zu benutzen. Siehe auch: [[1]]. Das eröffnet neue Möglichkeiten.

Beispiel: Gridelements und Bootstrap[Bearbeiten]

Siehe auch: http://wiki.zone30.info/wikizone/index.php/TYPO3_-_fluid_styled_content#Beispiel:_Layoutfeld_mit_Bootstrap_Klassen_f.C3.BCr_Fluid_Styled_Content für den Einsatz von Bootstrap ohne Gridelements nur mit Basis TYPO3.

Gridelements bieten sich für Gridbasierte CSS-Frameworks an, da die Grundidee der Spalten ähnlich ist. Mit Gridelements kann man auf dem vorhandenen Raster verschiedene Spaltensetups erzeugen.

  • 1. Grids erstellen.

Überschriften der Content Elemente in Gridelements[Bearbeiten]

Im TypoScript

tt_content.gridelements_pi1.10 =< lib.stdheader

Im Fluid Template (mehr Kontrolle):

<f:cObject data=“{data}“ typoscriptObjectPath=“lib.stdheader“/>